Expand my Community achievements bar.

Webinar: Adobe Customer Journey Analytics Product Innovations: A Quarterly Overview. Come learn for the Adobe Analytics Product team who will be covering AJO reporting, Graph-based Stitching, guided analysis for CJA, and more!
SOLVED

Marketing Channel Detail not set on virtual page views

Avatar

Level 2

We currently run the following set of rules:

1. Standard Variables are set, including s.campaign

2. If virtual page view event is pushed to the dataLayer, additional variables are set

3. s.t() beacon gets send

 

What I see in my data is that the visit is correctly attributed for both Marketing Channel and Marketing Channel Detail (=s.campaign), but the virtual page views within the visit get Marketing Channel Detail "None". Interestingly, s.campaign seems to be available in the virtual page views and I also see "Marketing Channel Instances". (see attached screenshot)

 

My expectation would be that everything happening within a visit (30 minutes time frame) should have the last known Marketing Channel AND Marketing Channel Detail.

 

What can be reasons why the latter might change during a visit? And even if it changes, why would the simple rule Marketing Channel Detail = s.campaign result in "none" when s.campaign is available?

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Oh, one more thought... if this is just a small inset SPA in a larger transitional website.. let's say a purchase flow:

 

www.domain.com/purchase

 

Where this actually represents multiple pages in the flow... a selection, a make payment and a purchase complete (for instance)

 

In this case, the URL technically doesn't need to be updated, since the user should never be trying to load the second or third step directly..

 

But a trick here is to have one rule for actual "Page Loads", and a separate rule for the virtual page progression..  on these separate rules, you can modify the the URL to not include the UTMs (strip them), not track s.campaign at all (let the attribution do its thing), and you can modify a few other things into these "virtual page loads" for these specific pages....

View solution in original post

13 Replies

Avatar

Community Advisor

Can you show us your Marketing Channel Management, or at least confirm that you aren't overriding your Marketing Channels in subsequent hits in your visit?

Avatar

Level 2

Hello Jennifer,

thank you for taking the time.

 

The Marketing Channel stays "Display" throughout the Visit. The processing rule for Display is either an eVar with the full URL contains "display" or s.campaign contains "display". Only the Marketing Channel Details are missing from the virtual page view hits. Interestingly, when I look at the metric "exits" Marketing Channel Detail is correctly attributed. I would take that as an indicator that the original marketing information is not overruled.

 

I have also looked at this discussion in detail but I am looking at events that happen within one visit exclusively, so expiration should not interfer. We set s.campaign = s.getValOnce(campaign, 's_campaign', 0); with the data element "Campaign" refering to utm parameters.

 

My understanding was that Adobe stitches all events in one visit to the last known Marketing Channel and I do not understand why that would not be the case for Marketing Channel Detail as well. 

 

 

 

 

 

Avatar

Community Advisor

My understanding was that Adobe stitches all events in one visit to the last known Marketing Channel and I do not understand why that would not be the case for Marketing Channel Detail as well. 


Technically that's not correct, there can be multiple Marketing Channels within the same visit... if I come to the Site from a Paid Search, then 5 mins later open a Marketing Email, I will have Paid Search for the first few pages of my visit, then Marketing Email for the rest... all in the same Visit. However, the Marketing Channel and Marketing Channel Details should be in "lock-step" with one another.

 

It sounds like you have a bit of a mix between traditional site and some in-set SPA pages? In theory, this shouldn't cause issues, but this is a delicate balance and there are lots of potential impacts.

 

I think the first thing is to actually dig into the tracking that occurs as the user transitions between the sections of your sites.... usually the "Show Post-Processed Data" in the Experience Debugger will show this, right now it's not working for me on my sites.. it seems to be stuck infinitely loading..  you can try on your side and see if you have better luck...

 

What is happening may require a deep dive into your tracking and your rules to really understand what is happening

Avatar

Level 2

Thanks for pointing out the post process data option!

I guess that means more debugging for me

Avatar

Community Advisor

Unfortunately, Marketing Channels can be one of the harder things to debug...  

Avatar

Community Advisor

It might be helpful to use a flow diagram on marketing channel detail, including repeat instances. 

 

Here's an example from our sandbox.  Start with Display channel, then pathing by detail.  (Scope is visit, with Repeats turned on).  Could be helpful to add segment to the panel for the pages you're having issues with as well.

 

And wouldn't it be nice if there was a Marketing Channel Rule Test feature, similar to the Classification Rules?

Josh_KC_0-1703184267615.png

 

Avatar

Level 2

Almost there...

I think the problem comes from the combination of s.campaign being set as s.getValOnce and our Marketing Channel Processing Rules relaying on the URL parameters.

 

On entry the URL contains utm parameter. S.campaign is set correctly and saved to a session cookie. Marketing Channel Processing Rules identify the channel thanks to the utm parameters and Marketing Channel Detail is set as s.campaign.

 

On virtual page view or reload on this initial URL, there are still utm parameters present in the URL. Based on s.getValOnce the campaign information from the URL is compared with the information from the session campaign cookie. To prevent identical campaign information from being recorded multiple times in the same session, s.campaign is not set again. For this second page view s.campaign is undefined!

 

The second page view runs through the Marketing Channel Processing Rules again and based on the still present UTM parameters the second page view is attributed to the same Marketing Channel as the first page view. Marketing Channel Detail is set as s.campaign which at this moment is undefined -> "None"!?

 

Domain.com/utm_source=google&utm_medium=search

 

1st page view

s.campaign based on URL = google|search

s.campaign cookie = google|search

final s.campaign = google|search

Marketing Channel based on URL= Paid Search

Marketing Channel Detail based on s.campaign = google|search

 

Reload or Virtual Page View

s.campaign based on URL = google|search

s.campaign cookie = google|search

final s.campaign = undefined, because of s.getValOnce

Marketing Channel based on URL = Paid Search

Marketing Channel Detail based on s.campaign = NONE

 

My takeaway from this would be that on SPAs s.getValOnce should not be used. I wonder if I'm missing something obvious here, as I cannot find any articles or best practices on this and I would think I’m not the first person to run into this problem.

 

Avatar

Community Advisor

Oh, is the whole site an SPA? Or just those pages?

Regardless, your developers should be updating the URL of the site on each page, the UTMs shouldn't remain on the next page, and the path of the URL and Browser History should be updated...

 

If they don't do that, then the normal site navigation doesn't work:

  • Browser back and forward buttons won't navigate the site, even if you are 20 pages in, using back will take you right out of the site
  • Bookmarking pages won't work, the user tries to bookmark Page E but instead will bookmark the entry page Page A
  • This is bad for SEO and for Accessibility

 

Unless I am misunderstanding.. but it sounds like the way the SPA is designed is a fundamental hurdle right now... 

 

 

 

Avatar

Correct answer by
Community Advisor

Oh, one more thought... if this is just a small inset SPA in a larger transitional website.. let's say a purchase flow:

 

www.domain.com/purchase

 

Where this actually represents multiple pages in the flow... a selection, a make payment and a purchase complete (for instance)

 

In this case, the URL technically doesn't need to be updated, since the user should never be trying to load the second or third step directly..

 

But a trick here is to have one rule for actual "Page Loads", and a separate rule for the virtual page progression..  on these separate rules, you can modify the the URL to not include the UTMs (strip them), not track s.campaign at all (let the attribution do its thing), and you can modify a few other things into these "virtual page loads" for these specific pages....

Avatar

Level 2

I think that's it.

While we set a new page name and URL path for virtual page views, we do not update the eVar which captures the query string parameters based on window.location.search.

If a user enters the application with tracking parameters in the URL, with each virtual page view these query string parameters are set again. Marketing Channel Processing Rules will set the Marketing Channel accordingly on each step, but Marketing Channel Detail will be undefined as s.campaign is not set repeatedly to the same value due to s.getValOnce.

 

I added a condition to only set the eVar for query string parameters on regular page views and will monitor the incoming data closely.

 

Thanks again for your help!

Avatar

Community Advisor

You're welcome.. we have a few of these "in-set" behaviours... I had to get creative to fix the same issues that you are experiencing.

Hello, it's me again

The first couple of days show an improvement of the data. None share went down for Email from 67% to 24%, for Social Cmapaigns 52% to 39% and for Display 41% to 23%.

 

BUT it stays more or less the same for marketing channels, that either use the automated detection rules provided by Adobe and/or the referrer info. Document.referrer stays the same throughout the SPA, so I'm wondering: Is it recommended to update the document.referrer for virtual page views? After the initial page view the document.referrer should be an internal URL and therefore not trigger the processing rules.

Avatar

Community Advisor

Yes.. you should do that...

 

For both scenarios:

(Scenario 1: coming from an internal page, standard web to the SPA inset)

  • Page A
    • Referrer: none, or maybe an external
  • Page B
    • Referrer: Page A
  • Page C (inset SPA - first load - should be standard PV load)
    • Referrer: Page B (correct)
  • Page C
    • Referrer: Page B (incorrect, should be Page C)
  • Page C
    • Referrer: Page B (incorrect, should be Page C)

 

You can see here that Page B is always listed as the referrer, but the second and third loads, using the SPA should now reference itself (Page C)

 

(Scenario 2: coming from an external page)

  • Page C (inset SPA - first load - should be standard PV load)
    • Referrer: external site (correct)
  • Page C
    • Referrer: external site (incorrect, should be Page C)
  • Page C
    • Referrer: external site (incorrect, should be Page C)

Here the External Referrer is carried forward from the initial page load...

 

 

If on your SPA Load Rule, you set the referrer to the "current" URL, you should get:

 

(Scenario 1)

  • Page A
    • Referrer: none, or maybe an external
  • Page B
    • Referrer: Page A
  • Page C (inset SPA - first load - should be standard PV load)
    • Referrer: Page B
  • Page C
    • Referrer: Page C
  • Page C
    • Referrer: Page C

 

(Scenario 2)

  • Page C (inset SPA - first load - should be standard PV load)
    • Referrer: external site
  • Page C
    • Referrer: Page C
  • Page C
    • Referrer: Page C

 

I hope this helps