Defining Product Interest based on Pages Visited

Michael_Oslin
Level 3

Defining Product Interest based on Pages Visited

I am trying to define a user persona based on what pages on our site they might be visiting.

For example, we sell 4 products (A, B, C, D) and we have 5 pages that might speak to any given product.

As a user navigates through a subset of these 20 webpages they might lean towards one product or another based on digital indicators.

But the tricky part is that they might go to 4 pages for product A, 2 for product C, and 1 page for product D. So on that alone -and as a simplistic solution- I would determine their interest as primarily A, and secondary C.

Over time, say measured in last 30 days, that may change and their primary might evolve to D, and the secondary to A.

How would I go about creating an indicator in Marketo that will allow me to flag a person as "Leans A, secondarily B", but changes as the person goes about their regular browsing of our site over time?

I realize that this is a simplistic approach cause one could argue that in the example above the reason they went to 4 product A pages was because they couldn't find what they were looking for, but when they got to D they didn't have to go any further since they found what they wanted.

In this case, D would be the primary interest, and perhaps A the secondary interest.

This brings some other elements that I don't know that we capture in Marketo such as time spent on a page which could help determine the weighting.

*I'm already going through and tagging all my pages to a particular product interest so that I have a key.*

Any thoughts on how one might accomplish this?

Thank you-

4 REPLIES 4
Mark_Price
Level 7

Re: Defining Product Interest based on Pages Visited

In my opinion, Marketo isn't very strong with logic like this. You could build smart campaigns / smart lists or score fields to maybe get something kinda close but I don't think that would be optimal.

This seems like a good use case for AI or a data model external to the system. I have a few campaigns that work this way and they call a webhook to get product recommendations in ways you just can't do from the UI.

hope it helps!

Michael_Oslin
Level 3

Re: Defining Product Interest based on Pages Visited

Thank you for your suggestion.

Do you mind elaborating on what the external logic looks like?

I was trying to figure out how to weigh each visit. For instance; if they visited X pages and # of viewed pages is > than visits to Y pages, then "Primary Interest = X".

If I could only distill it down to IF this THEN that type functionality.

Thank you again-

SanfordWhiteman
Level 10 - Community Moderator

Re: Defining Product Interest based on Pages Visited

Any such business logic can be implemented on the webhook side. But the language implementation depends on the webhook service; I could show you the JS implementation but that wouldn't necessarily apply.

Jay_Jiang
Level 10

Re: Defining Product Interest based on Pages Visited

More than one way to do this. One way is using marketo smart campaigns to keep track of product scores and use a webhook to compare and evaluate the scores.

Create custom score fields for each product. Create a custom text field to save the highest scoring product

Create smart campaigns to increment scores based on product pages visited. If you organised your website by products (e.g. domain.com/productA/ ; domain.com/productB/ ; domain.com/productC/ ), this will be easy:

pastedImage_3.png

pastedImage_4.png

Write a handler to compare and evaluate the highest score product, create a webhook with each product score in the payload, save the response to the custom text field, create a smart campaign to call the webhook (you may want to limit the webhook calls to once per hour)

webhook example in php

<?php

$scores = [];

foreach($_POST as $key=>$value)

{

$scores[$key] = $value;

}

arsort($scores);

reset($scores);

if( $scores[key($scores)] == 0){

echo json_encode(['response'=>'']);

} else {

echo json_encode(['response'=>key($scores)]);

}

?>