Expand my Community achievements bar.

SOLVED

Auto Update of data tables using personalization

Avatar

Community Advisor

I have a data table on a page and works like backend code reads the product data.. and throws it in page. the product data lying in AEM

 

jsvasu_1-1692741259325.png

We have activity map in analytics that counts automatically the number of clicks happening on each category type. I want to create an experience in Target where the most clicked category automatically rolls on top of the column Is it possible via target?

 

 

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

Step 3 for token replacement is so that the top row of your table will dynamically display the most clicked category. So when you create your offer in Target, the top row of the table will reference ${user.categoryAffinity}. 

For example:

<table>
  <tr>
    <th>Product</th>
  </tr>
  <tr>
    <td>${user.categoryAffinity}</td>
  </tr>
  <tr>
    <td>Shoes</td>
  </tr>
  <tr>
    <td>Hats</td>
  </tr>
</table>

 

In terms of how Target reads what is clicked the most - you will need some sort of event handler, so each time someone clicks, you would send a request to Target that includes that user.categoryId parameter with the value of the product clicked on. Target then automatically stores all of these clicks and calculates the favourite product, 2nd favourite etc etc

View solution in original post

9 Replies

Avatar

Employee Advisor

Yes, if you implement Category Affinity then you can create your Experience in Target where the top item in the table is a dynamic reference to "favourite category", the second item references "second category" etc etc 

Avatar

Community Advisor

@alexbishop you mean the data table will get automatically updated even without any code logic?

 

Questions:

  1. I also have a question about user.categoryId, a mbox parameter assigned on a product page. Is this something automatically available or do I have to pass it on the page like a page param, & how can I do that? Can you pls elaborate on this?
  2. This paragraph from the documentation is bit confusing:  You can also record category information by passing it as the mbox parameter user.categoryId in any mbox (including a nested mbox), as a URL parameter user.categoryId, or in Target page parameters with a global mbox. See your account representative for more details.  WHAT does that mean? How to do that?
  3.  I understand the category affinity algorithm and how it works.  But need to understand how to implement this user.category parameter? Also, is creating a category affinity audience enough or do I need to have user.category parameter also created and passed?

  4. jsvasu_1-1692814567464.png

    Also, tell me what kind of Target activity it would be and what would be goal metrics?

Thanks

 

Avatar

Community Advisor

 

@Gaureshk_Kodag as per your response here https://experienceleaguecommunities.adobe.com/t5/adobe-target-questions/category-affinity/m-p/559314...  on old thread of me ""you'll first need to pass category as a mbox param inside user.categoryId parameter" How this will be implemented? Is it via Adobe Launch and how? 

 

Because we usually pass the global mbox parameter on page load via logic "adding params to all request" in launch and inside that we pass the param name and map it to data element. 

jsvasu_0-1692818107249.png

 

 

jsvasu_1-1692818107250.png

 

 

Can you explain how user.category thing will be implemented?

 

Thanks in advance

Avatar

Employee Advisor

Questions:

  1. Yes, you need to pass user.categoryId as an mbox parameter, same process that you would use for any other mbox parameter. 
  2. Same answer as above
  3. You need to use "token replacement" when you create the offer, as explained here. So for example, the content in the first row of your table would reference ${user.categoryAffinity}. 

  4. Typically will be an XT activity where you have different experiences depending on their favourite category

Avatar

Community Advisor

Hi @alexbishop thanks for your thoughts, To your first answer

1) I got it how to pass user.categoryId as a mbox parameter but it should get mapped to who? 

jsvasu_0-1692934100421.png

 

 

I would like to tell you that I have product pages in a hierarchy like below 

                                      level1              level2                     level3                  level4

https://www.abc.com/Product-Line/Product-Category/Product-Family/Part-Number

 

For example:

  1. Product Line - Shirt, Boots, Cups...
  2. Product Category - {Slim Fit, Regular Fit}, {Wide Cut Boots, Cow Boy Boots}, {Sippie Cups, Straw Cups} .....
  3. Product Family - {Slim Fit - Chinese Collar, Regular Fit- Chinese Collar} .....
  4. Product Family Part Number - {Slim Fit - Chinese Collar (S, M, L, XL, XXL), Regular Fit- Chinese Collar (S, M, L, XL, XXL)} ..... 

when a user navigates from level 1 to level 4 the product tag in digital data layers keeps updating with info for the product tag:

 

jsvasu_1-1692934525334.png

 

And, I want to run a generic XT activity that can work on all the levels of pages as mentioned above. I don't want to run on a specific page. Is that possible? I am asking this because the URL differed for every product line and down the pages till level 4 product pages but the data layer has a product tag that gets automatically filled up when you flow down the line from Product Line to Part number.

 

However, my question remains the same How can I update the data table as per the analytics web clicks on items of the table using category affinity. For reference again, the backend code reads the product data from AEM.. and throws it in the page.

jsvasu_3-1692934887434.png

 

 

 

@PratheepArunRaj what are your thoughts on this?

Avatar

Employee Advisor

For the first part, if it's Product Lines that you want to display, then you will need to create a data element that takes the value of productInfo.productLine, and then map that data element to user.categoryId in Tags. 

What I've suggested so far will allow you to update the table dynamically based on the behaviour of each user. It won't update the table based on the combined behaviour of all users. 

Avatar

Community Advisor

Thank you for the explanation that makes total sense. Can you tell me what that means how this be implemented in my case?

  1. You need to use "token replacement" when you create the offer, as explained here. So for example, the content in the first row of your table would reference ${user.categoryAffinity}. 

I am following like below steps"

  1.  In Launch I created a rule where I am passing user.CategoryId as an mbox parameter and mapping it to data element that reads the product category of the page for eg. Slim Fit shirt, Regular Fit shirt, etc.jsvasu_1-1692990887949.png

     

  2. Then I went to Target and created a category affinity audience jsvasu_2-1692990972165.pngAdditionally, I also created a profile script with category affinity like the one below which I guess will also work the same as my audience but not sure

     

  3. jsvasu_3-1692991052738.png

    The next step you mentioned is Token Replacement, I am not sure where & how to use it. where this steps is needed and why? Unfortunately, there are no video tutorials of Target in this case. 

 

One thing I want to highlight here is my data tables exists on

Product Category Pages (with rows telling Product family type) 

jsvasu_4-1692991760193.png  

and Product Family Pages (showing product family part numbers) for precise navigation of userS.

jsvasu_5-1692992062158.png

 

I am not sure how the target will read which is getting clicked most in the table and do the affinity thing. Can you elaborate on that? I understand it's individual user based but then what is the role of table autoupdate then?

 

Avatar

Correct answer by
Employee Advisor

Step 3 for token replacement is so that the top row of your table will dynamically display the most clicked category. So when you create your offer in Target, the top row of the table will reference ${user.categoryAffinity}. 

For example:

<table>
  <tr>
    <th>Product</th>
  </tr>
  <tr>
    <td>${user.categoryAffinity}</td>
  </tr>
  <tr>
    <td>Shoes</td>
  </tr>
  <tr>
    <td>Hats</td>
  </tr>
</table>

 

In terms of how Target reads what is clicked the most - you will need some sort of event handler, so each time someone clicks, you would send a request to Target that includes that user.categoryId parameter with the value of the product clicked on. Target then automatically stores all of these clicks and calculates the favourite product, 2nd favourite etc etc