Hi All, how can we pass below table data into Adobe analytics in single image beacon. Assuming row count is 20. I am thinking about using list variable, not sure will it work or not.
Subject | UT1 | UT2 | UT3 | UT4 |
Sub1 | 10 | 20 | 30 | 40 |
Sub2 | 10 | 20 | 30 | 40 |
Sub3 | 10 | 20 | 30 | 40 |
Sub4 | 10 | 20 | 30 | 40 |
Sub5 | 10 | 20 | 30 | 40 |
Solved! Go to Solution.
Views
Replies
Total Likes
Hi @DineshRkumar,
I suppose the final usage of the data will help drive the solution... I have solutions that use the s.products variable, and I have solutions that use Lists.
First, in your samples, I see you have a lot of your data showing numeric values (i.e. 10 or 20)... are these values that you need a dimension (i.e. text value of "10"), or do they need to be actual numeric values, where you need to use custom events?
If these are all good as dimension values, then you can use lists... passing each row as a list item, then using "sub-delimiters" and setting up classifications.
So for instance:
s.list1 = "sub1:10:20:30:40,sub2:10:20:30:40,sub3:10:20:30:40";
Your list would be set to delimit on comma (,) so you would then end up with data in Adobe that looks like:
Next, you would need to configure 5 classifications (Subject, UT1, UT2, UT3 and UT4)
Using Regex, you can then split the content into each of your classifications, something like:
/(.*):(.*):(.*):(.*):(.*)/g
And setting your Subject classification to $1, and your UT1 classification to $2, etc
This also assumes that ALL values are passed on each instance.
Unfortunately, Adobe Analytics doesn't support flat tables, so you would need to do breakdowns to get the correlation between the Subject and each UT classification.
Now, if you need those values to be numeric values, and I assume the values will change per item (they won't all be 10 or 20, etc... that was just a simple copy/paste example; then the only solution is to use s.products and numeric merchandising events, so that each item can maintain it's own counter correlation.
So, in my examples, I use Products for like 20 different things, so I like to use the Product Category to denote the usage. Products notation would look something like:
s.products = "table;sub1;;;event1=10|event2=20|event3=30|event4=40,table;sub2;;;event1=10|event2=20|event3=30|event4=40,table;sub3;;;event1=10|event2=20|event3=30|event4=40";
s.events = "event1,event2,event3,event4";
Events 1-4 need to be configured to be "numeric" instead of counter (even if you only ever passing 1, if you don't make it numeric, then the correlations get mucked up).
You don't need classifications in this scenario... all your "table" category products will have an isolated metric per product, and you can build out a table in Adobe like so:
Event 1 | Event 2 | Event 3 | Event 4 | ||
Category | 30 | 60 | 90 | 120 | |
table | 30 | 60 | 90 | 120 | |
Products | 30 | 60 | 90 | 120 | |
Sub1 | 10 | 20 | 30 | 40 | |
Sub2 | 10 | 20 | 30 | 40 | |
Sub3 | 10 | 20 | 30 | 40 |
Hi @DineshRkumar ,
Sharing my thoughts on this -
List vars can work if you would concatenate each row into one field object using a delimiter and then passing the individual fields in listVar using a separate delimiter. You can then run classification on it.
Also, are you using products variable in your current implementation? I think using that could be a potential solution. You can pass each row as different fields of product variable and go from there. I haven't done it myself but I remember reading about some implementation where s.products variable was being used in non-commerce context like this one.
Best,
Isha
Hi @DineshRkumar ,
Adobe Analytics beacons (image requests) have limitations - you can only pass key-value pairs in query strings. So trying to pass a whole table (20 rows × 4 columns) in one beacon.
A list variable can work if you just need to capture all values together (not row-by-row reporting).
If you need row-level granularity in reporting, then multiple beacons are the only scalable solution.
Image Beacon Example (list var approach)
<img src="https://yourcompany.sc.omtrdc.net/b/ss/yourRSID/1?pe=lnk_o
&pev2=tableData
&list1=Sub1:10|Sub2:10|Sub3:10|Sub4:10|Sub5:10
&list2=20|20|20|20|20
&list3=30|30|30|30|30
&list4=40|40|40|40|40
&c1=WebsiteTableCapture
&v1=TableTrackingExample
" width="1" height="1" border="0" />
@pradnya_balvir there are only 3 list variables, so your suggestion won't actually work... (there is no s.list4) and the suggestion to send 20 different beacons is inefficient and is going to get really expensive, since our contracts are all based on number of server calls...
If you look at my list example, you will see that it's actually possible to send the data in a single list, using Classifications to split up the data...
You are right that there are limits to how much data can be sent at a time... I know I've probably sent over 2K characters without issue (as long as each list item itself is under 255 characters, I haven't had a problem)... but this use, depending on the size could be huge depending on a lot of factors...
Hi @DineshRkumar,
I suppose the final usage of the data will help drive the solution... I have solutions that use the s.products variable, and I have solutions that use Lists.
First, in your samples, I see you have a lot of your data showing numeric values (i.e. 10 or 20)... are these values that you need a dimension (i.e. text value of "10"), or do they need to be actual numeric values, where you need to use custom events?
If these are all good as dimension values, then you can use lists... passing each row as a list item, then using "sub-delimiters" and setting up classifications.
So for instance:
s.list1 = "sub1:10:20:30:40,sub2:10:20:30:40,sub3:10:20:30:40";
Your list would be set to delimit on comma (,) so you would then end up with data in Adobe that looks like:
Next, you would need to configure 5 classifications (Subject, UT1, UT2, UT3 and UT4)
Using Regex, you can then split the content into each of your classifications, something like:
/(.*):(.*):(.*):(.*):(.*)/g
And setting your Subject classification to $1, and your UT1 classification to $2, etc
This also assumes that ALL values are passed on each instance.
Unfortunately, Adobe Analytics doesn't support flat tables, so you would need to do breakdowns to get the correlation between the Subject and each UT classification.
Now, if you need those values to be numeric values, and I assume the values will change per item (they won't all be 10 or 20, etc... that was just a simple copy/paste example; then the only solution is to use s.products and numeric merchandising events, so that each item can maintain it's own counter correlation.
So, in my examples, I use Products for like 20 different things, so I like to use the Product Category to denote the usage. Products notation would look something like:
s.products = "table;sub1;;;event1=10|event2=20|event3=30|event4=40,table;sub2;;;event1=10|event2=20|event3=30|event4=40,table;sub3;;;event1=10|event2=20|event3=30|event4=40";
s.events = "event1,event2,event3,event4";
Events 1-4 need to be configured to be "numeric" instead of counter (even if you only ever passing 1, if you don't make it numeric, then the correlations get mucked up).
You don't need classifications in this scenario... all your "table" category products will have an isolated metric per product, and you can build out a table in Adobe like so:
Event 1 | Event 2 | Event 3 | Event 4 | ||
Category | 30 | 60 | 90 | 120 | |
table | 30 | 60 | 90 | 120 | |
Products | 30 | 60 | 90 | 120 | |
Sub1 | 10 | 20 | 30 | 40 | |
Sub2 | 10 | 20 | 30 | 40 | |
Sub3 | 10 | 20 | 30 | 40 |
Thank you soo much for neat & clear explanation...
You're welcome. I hope that one of these solutions will work for you.
Views
Replies
Total Likes
Views
Likes
Replies