Implementations that populate many variables with long values can sometimes run into truncated image requests. All versions of Internet Explorer impose a 2083-character limit on image request URLs. Therefore, Adobe recommends that you keep all image requests under this number to prevent data loss. The following are recommended if your organization faces overly long image requests:
Use Marketing Cloud Visitor ID Service: AppMeasurement libraries 1.4.1 (released September 2014) and later automatically send image requests using HTTP POST if they are too long for traditional image requests. Data sent using this method is not truncated regardless of length. This method requires having the Marketing Cloud Visitor ID Service implemented.
Use processing rules: As an alternative to using Dynamic Variables, Processing Rules can easily be created in the Admin Console. Once created, all image requests can copy/override the value of any variable. For example, create the following processing rule to copy eVar1 into each variable:
Overwrite value of prop1 with eVar1
Overwrite value of eVar2 with eVar1
Overwrite value of prop2 with eVar1
And simply define eVar1 within your implementation:
s.eVar1="The quick brown fox jumps over the lazy dog";
Use Dynamic Variables: If image requests are populated with many of the same values, using dynamic variables can greatly shorten image request length. Dynamic variables can potentially shorten URLs by thousands of characters. For example, populating several variables with the current URL:
s.eVar1="D=g"; s.prop1="D=g"; s.eVar2="D=g"; s.prop2="D=g";
s.eVar1="The quick brown fox jumps over the lazy dog"; s.prop1="D=v1"; s.eVar2="D=v1"; s.prop2="D=v1";
Create abbreviations: Abbreviations are useful in situations where the products variable takes up most of the image request. For example, if you have the products variable defined to the following:
s.products = "Exotic pets;Scarlet Macaw;2;2700,Domestic pets;Golden Retriever;1;700,Exotic pets;Fennec Fox;1;1400"
Instead using a code for products and categories can greatly shorten an image request, especially with many products or long product names. Classifying these values can then match up a detailed name to the abbreviated variable value.
s.products = "EP;SM;2;2700,DP;GR;1;700,EP;FF;1;1400";
Use the Dynamic Compression plug-in: This plug-in automatically rewrites variables using dynamic assignment to make beacon requests smaller. Dynamic assignments are made if they result in a smaller beacon request size. Props, eVars, and built-in variables are considered for dynamic assignment if a substring of a variable matches another.
The Dynamic Compression plug-in is owned by Adobe Marketing Cloud Consulting; to implement code for use, contact your organization's Account Manager.
If long image requests are not avoidable, they are truncated in the following order:
- Custom variables: Starting from the highest eVars and Props (eVar250 and prop250), custom variables are truncated from highest to lowest.
- Core variables: Variables that define the image request, such as charSet and referrer, are placed first. These variables are vital to many Analytics reports, and are guaranteed to not be truncated on an image request level.
Individual variables also have their own character limit (255 bytes for eVars and 100 bytes for Props). These limits are independent from the 2083-character limit Internet Explorer imposes.