12-05-2017 09:11 AM - edited 12-05-2017 09:27 AM
Something that you won't find in the UDH (Collect Tag) documentation (at least we didn't find it back then) is that all variables are limited to a length of 1000 characters.
That is generous for string variables, as we all know about limitations by Adobe (100 for props, 255 for eVars) and similar tools to custom variables.
But it is devastating for Arrays where it is quite common to have many elements inside that quickly outgrow 1000 characters.
And this is also why neither Adobe (list vars, product vars, exception list props) nor Google limits its Arrays in such a way (Google only by the total request length which is not a problem for UDH's post requests). They sensibly limit the length of each array ELEMENT (e.g. <255 characters for product eVars, list vars in Adobe), but they do NOT limit the total length of all Array elements together.
Tealium seems to have forgotten that Arrays are the blood and life of E-Commerce Tracking and such a limit makes no sense at all and creates a multitude of problems (and unpleasant surprises when you find out).
Imagine a product impression tracking (like https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#product-...
where you need to track a search result list with 50 products, each with a name, a brand and a category array. You would have to restrict the length per element to 20 characters (and actually less because the commas between the arrays count as characters too because in essence Audience Stream does not understand what an Array is truly) to not get over the 1000 limit which is impossible.
Imagine trying to do server-side tracking with UDH and trying to build the products variable in Adobe which even on a simple Product Detail page already exceeds 1000 characters.
Example from our website:
"products=Computer & Elektronik/Smartphone & Handy/Smartphone;637933-A;;329.95;event60=1|event58=1;eVar51=1466820-1|eVar52=6190-G|eVar47=329.95|eVar41=mobilezone ag|eVar42=Computer & Elektronik|eVar43=Smartphone & Handy|eVar44=Smartphone|eVar45=Apple|eVar46=Apple iPhone SE|eVar48=1|eVar55=detail|eVar53=M101787|eVar59=#bpr:#pdr:14#spo:#pds:Yes#psh:#bdl:#,Computer & Elektronik/Smartphone & Handy/Smartphone;637933-A;;358.15;event60=1|event58=1;eVar51=1466820-1|eVar52=6190-G|eVar47=358.15|eVar41=siroop trading AG|eVar42=Computer & Elektronik|eVar43=Smartphone & Handy|eVar44=Smartphone|eVar45=Apple|eVar46=Apple iPhone SE|eVar48=2|eVar55=detail|eVar53=M147501|eVar59=#bpr:#pdr:14#spo:#pds:Yes#psh:#bdl:#,Computer & Elektronik/Smartphone & Handy/Smartphone;637933-A;;329.95;event60=1|event58=0;eVar51=1466820-1|eVar52=6190-G|eVar47=329.95|eVar41=mobilezone ag|eVar42=Computer & Elektronik|eVar43=Smartphone & Handy|eVar44=Smartphone|eVar45=Apple|eVar46=Apple iPhone SE|eVar48=3|eVar55=detail|eVar53=M101787|eVar59=#bpr:#pdr:14#spo:#pds:Yes#psh:#bdl:#,Computer & Elektronik/Smartphone & Handy/Smartphone;637933-A;;353.70;event60=1|event58=1;eVar51=1466820-1|eVar52=6190-G|eVar47=353.70|eVar41=microspot.ch|eVar42=Computer & Elektronik|eVar43=Smartphone & Handy|eVar44=Smartphone|eVar45=Apple|eVar46=Apple iPhone SE|eVar48=4|eVar55=detail|eVar53=M163254|eVar59=#bpr:#pdr:14#spo:#pds:Yes#psh:#bdl:#"
Or variables that contain the cart content in an online supermarket where people easily buy 30 and more different products in one purchase.
And and and and... The "solution" that Tealium describes requires slicing such arrays apart (e.g. prod_cat becomes prod_cat0, prod_cat1, prod_cat2 etc... until all characters are filled). Then in Audience Stream, if you want to do anything with that, you have to work with all prod_catX variables separately.
There are more limitations than that, but in general, I BEG Tealium to reconsider this fatal flaw in the UDH architecture. For an E-Commerce site like us it makes everything 123492304 times more complicated.
Solved! Go to Solution.
So after confirming with engineering and also doing some tests, as you said strings are limited to 1000 characters.
However, arrays can be any length of items, and each element of that array can be a maximum of 1000 characters.
So in my test, I used this setup:
An array that had 1002 items, each item at 1000 length. When sent through trace we see this appear in Trace. (See attached video).
I have also tested that the data is able to be sent via webhook to a server. As you can see from the below screenshot all items are sent through each with their 1000 character strings.
The below screenshot comes from my local web server and shows the incoming data from the webhook.