Skip to main content

Client-Side Tag FAQs


See below for answers to some common FAQs about Client-Side Tags.

See below for answers to some common FAQs about Client-Side Tags.

How can I URL encode values in custom data (pdata) strings?

Make sure that the entire string after pdata= is URL-encoded in a GET implementation so that non-alphanumeric characters such as / can be properly parsed. This includes both the equals sign (=) separating the keys and values and the commas (,) separating the key-value pairs, as well as any non-alphanumeric characters in the keys and values themselves. For example, something like "pdata=visitor=new" will not work because it is not URL-encoded.

All letters (a-z, A-Z), numbers (0-9), dashes (-), underscores (_), dots (.), and tildes (~) can remain as is. Other symbols should be changed to their associated three-character string in the second row of the table below.







































Can LiveRamp provide the macros for the various partners I work with that pull device IDs or custom data values?

LiveRamp works with over 500 destination platform partners and each of them implement these workflows differently. LiveRamp does not hold a repository of these various partner macros. You should work with the third-party partner who is trafficking your creatives as they’ll generally have both macros and setup documentation for third-party tracking tags on their websites.

Why might our impression volume numbers be different from LiveRamp's?

There will always be some discrepancy between the number of calls that you send versus the number of calls that LiveRamp's pixel server receives. There are multiple reasons this could be the case.

  • You might be serving impressions in an uncookieable environment. In this case, you are probably counting all impressions, whereas we are only counting the cookieable impressions.

  • If no cache buster is implemented, then a user's browser may cache our tag. In these cases, it may look to you like the tag was called, but the request was fulfilled locally by the user's browser and never actually reached our pixel server.

  • Something on the user's device or network, such as an ad blocker or firewall, prevented some requests from reaching our pixel server.

  • Users who have opted out will not be logged, but you will still see impressions for them.

  • You might be using a different time zone from LiveRamp, which uses UTC. If you are using any other time zone, your count of impressions for a particular date will be based on a different time frame from ours.

What's the best way to implement the tag?

There is no definitive answer to this question as it depends entirely on your technology stack, other partners you're working with, the outcome you're trying to accomplish, and so on. There are a large number of ways to implement a tag, and you should use the one that will work best for your use case. When in doubt, you should implement the CST or eCST as an image tag that uses GET requests.

Can LiveRamp remove some of the default fields or pdata from the output file?

Yes. Work with your LiveRamp representative to configure your file to remove the fields that you don't want to be included.

Why do some impressions have strange or missing Ref-URLs?

It's important to note that LiveRamp does not set the Ref-URL. We simply read the value of the Referer HTTP header in the request that's made to our tag. This can be influenced by the Referrer-Policy that the website sets when it instructs the browser to make a request to our pixel server.

There are also Chrome extensions that allow users to obfuscate the Referer HTTP header with empty or confusing values. These extensions can also be set to spoof the Referer with a fake value, such as the address of the target server. In that case, we might see populated as the Referer in requests to our pixel server.

Why am I seeing a 451 error status when I try to call the tag?

LiveRamp's pixel server returns a 451 status code when a request is made from a country on the country exclusion list for that tag. If you are serving traffic from the EU, there will be special paperwork required, so work with your LiveRamp account team to determine where you are allowed to use your tag if you believe this is necessary.

Why are some of the columns and rows in my file misaligned?

If some of the columns and rows in your output Measurement file are misaligned, make sure that you aren’t sending URLs, equal signs (“=”), or commas (“,”)  as that tells our system that a new key/value pair is being sent to LiveRamp. URLs especially usually contain characters that will cause key/value pairs to separate unexpectedly, causing misalignment when your FBR file is delivered.

Why are my Identity Envelopes or LiveRamp cookies not matching to RampIDs?

If your ATS Identity Envelopes or LiveRamp cookies are not matching to RampIDs for your Activation or Measurement use cases, this generally points to an implementation issue:

  • Identity Envelopes: This generally means that your Identity Envelopes are not being base64 decoded before being placed in the eCST request. For more information, see "Collecting Identity Envelopes in eCST Requests".

  • LiveRamp cookies: Check that your eCST implementation is sending through the “rlas3” cookie in the eCST’s request header. Without the LiveRamp cookie being sent in the request header, LiveRamp generates a placeholder cookie value for the request that does not match to a RampID.

Can the eCST handle multiple “iv”/”it” pairs in a single request?

Yes, however sometimes this doesn’t make sense such as sending both an IDFA and AAID in the same request. You may want to implement your eCST with multiple “it”/”iv” pairs if you are implementing the eCST through a creative as each “iv” may have its own macro. The absence of a value for an “iv” will not cause the pixel to error, so you can safely implement it with multiple “it”/”iv” pairs if you wish. 

Pairing a device-based identifier, such as a LiveRamp cookie or a MAID, with an ATS envelope is generally when you’d see multiple devices being passed on the same request. LiveRamp cookies are not included in the “it”/”iv” pairs as they are automatically collected in the request header.

Can log files be generated on a weekly or monthly basis?

No, eCST and CST log files can only be generated on a daily basis. Check with your LiveRamp representative to find a solution that works for you if this is necessary. This may require re-engaging with your Solutions contact as this is not an intended feature of the pixel.

Does the eCST support CID-based use cases?

At this time, the eCST does not support CID-based use cases.

Can LiveRamp change the firing conditions of the eCST?

No, LiveRamp does not control the firing conditions of the eCST. That is done through either your Tag Manager (the most common way of controlling firing conditions) or through a custom partner-created JavaScript module.

Can we use the eCST for an opt out workflow?

No, eCST should not be used as an opt out pipeline. You should use the existing LiveRamp opt out pipelines (for more information, see “Processing Data Subject Rights Requests”). In addition to LiveRamp’s existing opt out pipeline, you can explore if integrating with LiveRamp’s CMP, Privacy Manager, is a fit for you.

Can LiveRamp help with creating custom javascript to configure firing conditions?

For standard implementations, LiveRamp does not provide custom javaScript to configure custom firing conditions for a CST or eCST implementation. You will need to either set firing conditions through your tag manager or create custom JavaScript yourself.

Is any data returned immediately when the tag fires?

No. Data from the tag is gathered by LiveRamp daily and either ingested in Connect or delivered back to you or your measurement partner.

The only response to the tag firing is a status code (either 2xx or 3xx).

When should I use the “dynamic identifier” identifier type?

Use the “dynamic identifier” identifier type when eCST code is placed within an ad and macros are used in the iv parameter to capture more than one identifier type. An example of this would be a mixed mobile macro that could return an AAID or an IDFA, depending on where the ad is run. Using the “dynamic identifier” identifier type can reduce the number of tags to implement, but you must capture raw mobile device IDs.


If the mobile device IDs are SHA1 hashed, you will need to create separate it/iv pairs for identifier type 5 and 6.

Can LiveRamp help me with custom macros?

LiveRamp works with over 500+ destination platform partners and each of them implements these workflows differently. LiveRamp does not hold a repository of these various partner macros. You should work with the third-party partner who is trafficking your creatives as they’ll generally have both macros and setup documentation for third-party tracking tags on their websites.