Skip to main content

Placing Client-Side Tags in Advertisements

Placing Client-Side Tags in advertisements to capture ad impressions can sometimes present additional complications. This generally comes up when the owner of the ad (using the Client-Side Tag) references data on the web page for pdata; it's possible that the Client-Side Tag will fire before the appropriate data for the pdata variable has loaded, leading to a "nil" value for that field.


  • LiveRamp's clients do successfully leverage Client-Side Tags in advertisements, but it is important to understand that, depending on when the web page loads, when the ad loads, and when the pixel fires, there is a chance the appropriate data will not yet be available for some number of tag fires. LiveRamp recommends obtaining exposure data directly from the DSP or SSP instead, as this data will be more reliably collected and available.

  • Check with your ad server partner to ensure they have valid device identifier macros to populate the device type (the "it" parameter for the eCST) and your preferred custom data (pdata) points.

A common request is to capture ad server macros in the identifier value fields and in pdata. See below for some examples.

Generic example to capture cookies, AAIDs, IDFAs, and CTV IDs:<AAID_Macro>&it=6&iv=<IDFA_Macro>&it=17&iv=<CTV_Macro>&pdata=AdvertiserID%3D%<AdvertiserID_Macro>%2CCampaignID%3D%<CampaignID_Macro>%2CSiteID%3D%<SiteID_Macro>%2CPlacementID%3D%<PlacementID_Macro>%2CAdID%3D%<AdID_Macro>%2CCreativeID%3D%<CreativeID_Macro>


  • There is no LiveRamp cookie macro because the eCST automatically collects LiveRamp cookies.

  • When using ad server macros to populate pdata "values," connect with your ad server partner to understand what values (if any) will be passed when a macro cannot access the data element associated with the macro. This is important, because if the macro leaves the "value" blank, then the eCST will fail to fire properly and will error (status code: 400). An easy trick to circumnavigate this issue with ad servers is to place an underscore after the macro so that there will always be a value (_) for pdata key/value pairs, even in the event that the macro doesn't populate with the intended value.

Click here for a list of common macros across various platforms.

Here is an example with Google Campaign Manager macros captured in pdata:!%2CCampaignID%3D%ebuy!%2CCreativeID%3D%ecid!%2CPlacementID%3D%epid!%2CSiteDCM%3D%s%2CSiteIDDCM%3D%esid!

LiveRamp has found that "%i" (impression macro) does not work and will throw issues when included in our tag. Other macros should work fine.