Expand my Community achievements bar.

Submissions are now open for the 2026 Adobe Experience Maker Awards
SOLVED

Pass table (rows) data into Adobe Analytics

Avatar

Level 3

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.

SubjectUT1UT2UT3UT4
Sub110203040
Sub210203040
Sub310203040
Sub410203040
Sub510203040

 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor and Adobe Champion

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:

  • sub1:10:20:30:40
  • sub2:10:20:30:40
  • sub3:10:20:30:40

 

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

 

View solution in original post

6 Replies

Avatar

Community Advisor and Adobe Champion

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

Avatar

Community Advisor

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" />

 
  • list1 → Subject + UT1 values (Sub1:10|Sub2:10|...)
  • list2 → UT2 values (20|20|...)
  • list3 → UT3 values (30|30|...)
  • list4 → UT4 values (40|40|...)
  • c1 / v1 → Just examples (custom prop/eVar for context like “Table Data Capture”)
For 20 rows, you just keep appending values with the delimiter |.
Example
 
&list1=Sub1:10|Sub2:10|...|Sub20:XX
 
List vars support ~250K characters, so 20 rows is fine.
If your reporting needs row-level metrics inside Adobe Workspace, it’s better to send 20 separate beacons (1 per row).
 
Thanks.
Pradnya

Avatar

Community Advisor and Adobe Champion

@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... 

Avatar

Correct answer by
Community Advisor and Adobe Champion

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:

  • sub1:10:20:30:40
  • sub2:10:20:30:40
  • sub3:10:20:30:40

 

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

 

Avatar

Level 3

Thank you soo much for neat & clear explanation... 

Avatar

Community Advisor and Adobe Champion

You're welcome. I hope that one of these solutions will work for you.