A macro is a short command or shorthand for an instruction and usually follows the format ${MACRO_NAME}
. Macros included in creative code or click-through URLs expand into a longer code string that the ad server can understand. The DSP ad server executes macros when the ad is served or clicked.
Ad server macros are useful for passing important information to DSP or to third-party ad servers. Macros are most commonly used during trafficking of third-party and custom creative code or metadata (such as third-party pixels).
You can manually insert a macro anywhere, such as in a VAST tag, in any URL, or in a DSP or third-party event pixel. However, each DSP client and partner has a different ad tag format, and the macros should be inserted in different spots in the tag accordingly. Each time you work with a new client or partner, ask them for documentation on where to insert the macros in their ad tags that DSP traffics.
Use general tracking macros across all ad and tag types to pass back specific data, as required.
Macro | Replacement Description | Type |
---|---|---|
${TM_ACCOUNT_ID} |
The account ID. | integer |
${TM_AD_ID} |
The ad key (adKey). | string |
${TM_AD_ID_NUM} |
The ad ID. | integer |
${TM_ADVERTISER_ID} |
The advertiser ID. | integer |
${TM_CAMPAIGN_ID} |
The campaign key. | string |
${TM_CAMPAIGN_ID_NUM} |
The campaign ID. | integer |
${TM_CLICK_URL} |
The redirect URL, which enables ad servers to track and count ad clicks. When the ad is served, if the user clicks it, the macro is activated and the click is recorded and counted for reporting purposes. | string |
${TM_CLICK_URL_URLENC} |
The encoded redirect URL, which enables ad servers to track and count ad clicks. When the ad is served, if the user clicks it, the macro is activated and the click is recorded and counted for reporting purposes. Don’t use this macro unless you are creating third-party ads and your vendor requires URL encoding. | string |
${TM_FEED_ID} |
The key for the media placement (feedKey). | string |
${TM_FEED_ID_NUM} |
The ID for the media placement. | integer |
${TM_MACRO_PLACEMENT_SITE_KEY |
The site key for the placement. Required for AppsFlyer click trackers for mobile app install ads. | string |
${TM_PLACEMENT_ID} |
The placement key (cpKey). | string |
${TM_PLACEMENT_ID_NUM} |
The placement ID. | integer |
${TM_RANDOM} |
Cachebuster: a random number between 1 and 1000000. | long |
${TM_SESSION_ID} |
The ID of the session, which corresponds to a single retrieval of the ad tag. | string |
${TM_SITE_DOMAIN_URLENC} |
The page subdomain parsed from the URL in the bid request; URL-encoded. Not supported for in-banner, click-to-play ads. | string |
${TM_SITE_NAME} |
The site name for the placement. | string |
${TM_SITE_URL_URLENC} |
The URL passed in the bid request; URL-encoded. Not supported for in-banner, click-to-play ads. | string |
${TM_SITE_ID_NUM} |
The site ID for the placement. | integer |
${TM_TIMESTAMP} |
The Unix timestamp indicating the number of seconds elapsed since midnight (00:00 UTC) on 1 January 1970. | long |
${TM_VIDEO_DURATION} |
The duration of the ad video in seconds. | integer |
Macro | Replacement Description | Type |
---|---|---|
${CS_PLATFORM_ID} |
(ComScore) The platform ID, which corresponds to the device’s operating system:
|
varchar(50) |
${CS_DEVICE_MODEL} |
(ComScore) The device model name, URL-encoded. | string |
${CS_IMPLEMENTATION_TYPE} |
(ComScore) The environment in which the ad was served:
|
string (a or b ) |
${NS_PLATFORM_ID} |
(Nielsen) The platform ID, which corresponds to the device’s operating system:
|
string |
${NS_DEVICE_GROUPING} |
(Nielsen) The the device type on which the ad was viewer:
|
string |
${UOO} |
(Nielsen) Whether or not the user has opted out of ad tracking:
|
integer (0 or 1 ) |
${TM_BUNDLE} |
The iOS or Android app store bundle ID. Examples: com.zynga.wwf2.free or id804379658 | string |
gdpr=${GDPR_ENFORCED}&gdpr_consent=${GDPR_CONSENT} |
gdpr=${GDPR_ENFORCED} indicates if the bidder determines that the bid request comes from the European Union origin and requires GDPR enforcement:
gdpr_consent=${GDPR_CONSENT} is the consent value passed from the supply partner in the inbound bid request:
|
daisybit or integer |
To accurately track clicks for ads using third-party display tags, DSP requires a display click macro. Only one version of the macro is required; the relevant macro depends on the type of tag.
Macro | Replacement Description | Type |
---|---|---|
${TM_CLICK_URL} |
The redirect URL that enables ad servers to track and count ad clicks in the platform. | string |
${TM_CLICK_URL_URLENC} |
The redirect URL that enables ad servers that require URL encoding to track and count ad clicks in the platform. | string |
DSP automatically inserts display click macros in a third-party display tag when you:
If a click macro is missing when you build a display ad, DSP displays a warning message, which prompts you to manually insert the appropriate display click macro in the correct area of the tag.
For additional macros available specifically for Analytics for Advertising customers, see “Append Analytics for Advertising Macros to Flashtalking Ad Tags” and “Append Analytics for Advertising Macros to Google Campaign Manager 360 Ad Tags.”
When you add macros to your code, make sure you use the exact syntax of the macro. When validating the macros, DSP checks that the macro exactly matches one of the valid macros.
Errors are generated if characters are missing from the beginning or end of the macro name. For example, you will see an error message if:
${
. If you don’t include the full syntax, the entry isn’t recognized as a valid macro.}
.