Thunder supports impression and click tracking in third party ad served environments, such as when a vendor requires creative to be site-served.

This document outlines Thunder third party impression and click tracking and basic implementation.

Supported Trackers

  • Impression Tracking: img. or js.
  • Click Tracking: redirect url

Macro Replacement and Tracker Formatting

Both Impression and Click Tracking:

  • Placeholder macros, {AUCTIONID}, {PLACEMENT_ID}, {MACRO}, etc... must be substituted with appropriate vendor macros
  • AuctionID Parameter and macro value replacement is critical
  • If vendor does not support macro insertion for the {MACRO}, please delete the placeholder
  • If vendor does not support an auction ID / impression ID / session ID, clicks will not track

Impression Tracking


  • Thunder provides the URL for both IMG and JS based impression tracking
  • Check with the vendor for which they support

Placement and Implementation:

  • Make substitutions for the {PLACEHOLDER} macros
  • Append the impression tracker in the creative adserver
  • Keep in mind the requirement to collect a paired auctionID / session ID / impression ID in both impression and click trackers


Image Impression Tracker:{AUCTIONID}&siteid={SITEID}&lineitem={LINEITEM}&placementid={PLACEMENT_ID}&creativesize=1x1

If vendor supports only:

  • Auction ID = $$IMPRESSIONID$$
  • Placement ID = $$ADGROUPID$$

But does not support:

  • Line Item or Site ID

The implemented impression tracker:$$IMPRESSIONID$$&siteid=&lineitem=&placementid=$$ADGROUPID$$&creativesize=1x1

Click Tracker Implementation


  • Thunder provides a redirecting click tracker
  • Both synchronous / redirecting or asynchronous / parallel tracking implementations are supported

Placement and Implementation:

  • In addition to the {PLACEHOLDER} macro replacements outlined above, the click tracker requires {LANDINGPAGE_URL_ENC} to be replaced
  • Make the replacement with either a vendor macro that expands the encoded landing page url of the creative or the actual encoded landing page URL
  • Thunder click tracker will redirect to the encoded landing page URL in the landingpage= parameter after the click has been tracked in Thunder servers


Click Tracker:{AUCTIONID}&siteid={SITEID}&lineitem={LINEITEM}&placementid={PLACEMENT_ID}&creativesize=1x1&landingpage={LANDINGPAGE_URL_ENC}

If vendor supports only:

  • Auction ID = $$IMPRESSIONID$$
  • Placement ID = $$ADGROUPID$$

But does not support:

  • Line Item or Site ID

And, additionally, because this is the click tracker, the {LANDINGPAGE_URL_ENC} needs to be replaced. If it is defined as:

The implemented click tracker should look like:$$IMPRESSIONID$$&siteid=&lineitem=&placementid=$$ADGROUPID$$&creativesize=1x1&

Streaming Events (VAST and Audio)

In addition to impression and click event tracking, Thunder also supports tracking of the standard IAB streaming events.

  • Start
  • First Quartile
  • Second Quartile
  • Third Quartile
  • Complete
  • Skip
  • Mute
  • Unmute
  • Pause
  • Resume
  • Rewind

Each of these events will also require the macro insertion of an auction ID (or: impression ID, session ID, event ID) to deterministically pair the event with other events and the original Impression event.


Thunder uses the value received in our auctionid= parameter

(or requestid= parameter for IAB Streaming Events) to link a specific impression

event with the subsequent click or streaming events which spawned from that exact impression. This is deterministic event linking. Without this value to link events together, Thunder is not able to report on those subsequent events - we will only be able to report the impression event.

DSPs call this value auction ID or bid ID, creative adservers call it session ID or request ID, other platforms call it Impression ID.

Each of these are acceptable as value to populate as auction id.

This is different than a cachebuster, as a cachebuster may insert a random value each time it is called - inserting different values into the impression, click, and streaming event trackers would not link them together.


For the below impression, click, and streaming start trackers, vendor should replace {AUCTIONID} with their platform’s auctionID/sessionID/impressionID macro

VAST Impression Tracker with Placeholder:{AUCTIONID}

VAST Click Tracker with Placeholder:{AUCTIONID}&

VAST Start Tracker with Placeholder:{AUCTIONID}

Where vendor macro might be: {vendorExternalSessionId}

VAST Impression Tracker replaced:{vendorExternalSessionId}

VAST Click Tracker replaced:{vendorExternalSessionId}&

VAST Start Tracker replaced:{vendorExternalSessionId}

Such that, when these trackers are called for a unique impression event, the same value is inserted into all subsequent trackers, allowing Thunder to deterministically link events.

VAST Impression Tracker replaced:

VAST Click Tracker replaced:

VAST Start Tracker replaced:

Did this answer your question?