Expand my Community achievements bar.

Join us for the next Community Q&A Coffee Break on Tuesday April 23, 2024 with Eric Matisoff, Principal Evangelist, Analytics & Data Science, who will join us to discuss all the big news and announcements from Summit 2024!
SOLVED

Build a Segment Based off Visitors' Most Recent eVar Value

Avatar

Level 3

Hello,

 

My team recently enabled eVars that track cookie opt-in/out information for three cookie categories. For each of these, if a visitor opts out of a category and then opts in, we'd like to be able to segment visitors by their most recent selection. Do you know how to build a segment based off visitors' most recently defined eVar value?

 

Thank you,

Ben

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

So this solution might seem a bit crazy.. but you have 2 values "opt-in" and "opt-out", and the user can change their value at any time.. so if you want to pull back UVs where the last value collected was "opt-in", you can do so with a calculated metric:

 

Using the IF function, you can use custom attribution on the "eVarX Instance" for "Last Touch | 30 Days" (or whatever period you need)

and a segment looking at eVarX equals "opt-in", if true, then return UVs metric, otherwise, return a static value of 0:

 

Jennifer_Dungan_0-1689702190934.png

 

You can change the attribution of the metric here by clicking on the gear:

Jennifer_Dungan_1-1689702255350.png




This way you can get the last touch for a specific value (i.e. opt-in)

 

 

If you just use the attribution model directly in the freeform, depending on your breakdown dimension, you could still be getting previous values as they were the "last value set on that dimension"... so you need to be careful that you aren't getting inflated values...

 

Those last touch attributions are great when you are looking at things like purchase conversions... but you are trying to get a sense of the current opt-in rate, and that complicates matters.

View solution in original post

22 Replies

Avatar

Correct answer by
Community Advisor

So this solution might seem a bit crazy.. but you have 2 values "opt-in" and "opt-out", and the user can change their value at any time.. so if you want to pull back UVs where the last value collected was "opt-in", you can do so with a calculated metric:

 

Using the IF function, you can use custom attribution on the "eVarX Instance" for "Last Touch | 30 Days" (or whatever period you need)

and a segment looking at eVarX equals "opt-in", if true, then return UVs metric, otherwise, return a static value of 0:

 

Jennifer_Dungan_0-1689702190934.png

 

You can change the attribution of the metric here by clicking on the gear:

Jennifer_Dungan_1-1689702255350.png




This way you can get the last touch for a specific value (i.e. opt-in)

 

 

If you just use the attribution model directly in the freeform, depending on your breakdown dimension, you could still be getting previous values as they were the "last value set on that dimension"... so you need to be careful that you aren't getting inflated values...

 

Those last touch attributions are great when you are looking at things like purchase conversions... but you are trying to get a sense of the current opt-in rate, and that complicates matters.

Avatar

Level 3

Thank you for your reply! I successfully replicated this technique and it will definitely come in handy. That being said, a segment would still be useful so that we can apply it to AAM audiences, etc. for compliance purposes. Do you know if expressing these visitors as a segment would be possible?

Avatar

Community Advisor

Segments don't seem to have the same custom attribution modelling available inside them.. but you should be able to create a segment using your calculated metric?

 

Whether it will be compatible with AAM is the next question...  I don't have Audience Manager so I can't really test.... 

Avatar

Level 3

I don't seem to be able to use calculated metrics when creating segments. I saw this old thread that suggested it's not possible. Is this correct?

Avatar

Community Advisor

Ah.. it seems not...

 

Sorry about that... 

 

 I will keep trying to think about how to create a segment for this... I might have an idea....

Avatar

Level 3

Thank you for the continued effort. Also, I was just comparing the calculated metric to total unique visitors, and they have the same value. It appears to me that the metric tests if any visitor's last selection is opt-in, and then returns all unique visitors, whereas we want the sum of currently opted-in visitors.

bhutton_2-1689704825612.png

 

bhutton_1-1689704725064.png

 

Avatar

Community Advisor

I am not testing with an Opt-In Dimension, but a push notification id (something I know will potentially change as new pushes go out.).. For me the values don't match.

 

How long have you had your Opt-In data? Maybe you haven't had a lot of opt-outs after opting in?

 

This is definitely something you should test in an isolated test environment... try opting in, then opting out.. check data at various times to ensure the UV count is reflected the expected values... that a user is counted when the last value was opt-in, and then that afterwards, if they opt-out, the UV drops to reflect that change....

Avatar

Community Advisor

So far I am running into some issues... I was trying to create a sequential segment to look at where a specific value was set, then exclude visitors that had an instance of setting another value after that.. but doesn't look like I am getting realistic values back yet.. I think it needs some tweaking....

Avatar

Level 3

We've had the cookie category eVars for a little more than a month - there should be at least a handful of visitors who have opted in and out, even if they're members of my team. I also tried @jeff_bloomer's second suggestion (Attribution panel), but I'm not sure that I'm setting it up or interpreting the data properly. The amount of last touch | visitor cookie instances is greater than the amount of unique visitors; ideally they'd be matching or close to matching. I may have to try Jeff's first suggestion (reconfiguring the eVar), though I'll have to convince some team members, so I'd prefer to exhaust other methods first.

bhutton_1-1689715079860.png

 

Avatar

Community Advisor

I did mention that I didn't think the normal attribution modeling was going to work.. 

 

The problem is that Adobe's not really designed to look at the "last value" in this way... Last Touch is used in conjunction with things like conversions... and each purchase would have a last touch value, but each user can have multiple purchases, and multiple "Last Touch" values per context.

 

Before you change your eVar attribution, I hate to say it, but I don't even know if that will yield the results you need... since you are still looking at values from a UV perspective... 

 

All of this, mine, or anyone's ideas need to be tested in a test environment to make sure you are really reporting exactly what you think you are.

 

If you want to try Jeff's idea, please set up some isolated eVars in a test environment and try it.. if you go and change all your tracking and it doesn't work, all that effort would be for nothing, and you might break something in the process... 

Avatar

Community Advisor

I believe that's correct.  I've only seen it that you can use segments in calculated metrics, but not the other way around.

Jeff Bloomer

Avatar

Community Advisor

We should be able to.. but yeah... looks like only standard metrics are accepted.

Avatar

Community Advisor

Hi @bhutton!
This is definitely a fun question, and I mean that honestly.  I believe this can be tackled in a number of ways.

First off, you could have your eVar expiration for the cookie variable categories tied into a secondary variable, which would happen each time the customer updated their opt-in/opt-out status.
Second, you could then use ATTRIBUTION, to then manage your your reporting against said eVars to then understand how these values are being set. 

https://experienceleague.adobe.com/docs/analytics-learn/tutorials/analysis-workspace/using-panels/un... 

Jeff Bloomer

Avatar

Community Advisor

AH!  Looks like my post got delayed in the page load earlier.  All of a sudden I'm seeing 8 responses from Jen above mine.  This is what happens when your computer decides to lag way behind in between policy updates and security patches.  I should know better than to try and do this when all that is going on behind the scenes. 

 

Jeff Bloomer

Avatar

Community Advisor

I didn't think it was possible for someone's computer to lag worse than mine!

Avatar

Level 2

Try a sequential "visitor" segment using non-repeating instances your dimension (with "Only after sequence" applied to the segment). Most* of the data in the dimension report should be the "last one in" in the date range you have selected.

philschmidt_0-1689722056956.png

*It's "most" but not "all" because any additional opt-in/out selections made after the first opt-out>opt-in pair will all be returned for that visitor in this segment, but I can't imagine that very many people would do that.

Avatar

Community Advisor

Yeah, this is close... but anyone who switches back to opt-out again will also be included

 

opt-out > opt-in > opt-out

 

Since it matches the first two parts (bolded) of this flow....

 

So it's not quite there.. 

 

 

The non-repeating instance, according to the documentation is "consecutive" hits.. so if a user did:

 

A > A > B > A

 

The 1st and 4th value would be returned when looking for non-repeating instance of "A", since the B in the middle breaks the consecutive repetition.

 

But you can try it... but again, given the complex nature of this requirement make sure to test and ensure it's working the way you expect it to work.... 

Avatar

Level 2

Yep, I agree my original segment is imperfect. As I mentioned, additional opt-in/out selections made after the first opt-out>opt-in pair will all be returned for that visitor in my original segment. @bhutton here's an updated segment that I think will give you what you're looking for:

Change the segment to a "hit" segment and add two "visitor" containers (with an "AND" between the two containers).

  1. The first container is an "only after sequence" visitor container containing "Onetrust Function Cookies equals 'functional cookies = off'" THEN "Onetrust Function Cookies equals 'functional cookies = on'". This container in the segment matches the underlined portion of this sequence: A > A > B > B  > B > A > A
    • Note: The "non-repeating" portion of my original segment wasn't actually needed, so I've removed that setting in this updated segment.
  2. The second container is an "only before sequence" visitor "Exclude" container containing "Day exists" THEN "Onetrust Function Cookies exists". This container in the segment matches and excludes all but the last "Onetrust Function Cookies exists" hit for the visitor: A > A > B > B  > B > A > A

The combination of these two containers in a "hit" segment should return the last "Onetrust Function Cookies" value within visitors that selected opt-out then opt-in at any time within your selected date range.

philschmidt_0-1689783288134.jpeg

For me, the key to understanding how each of these sequential segment containers work is the fact that the "only after sequence" and "only before sequence" settings names are a bit misleading (at best) because they also return one of the hits within the matching sequence.

  • The "only after sequence" setting actually returns data starting with and including the last hit in the FIRST sequence match and all the data after that hit (including any other matching sequences after the first sequence match)
  • The "only before sequence" setting actually returns data starting with and including the first hit in the LAST sequence match and all the data before that hit (including any other matching sequences before the last sequence match)

 

 

Avatar

Level 3

This looks promising! I set up a segment according to your instructions but won't be able to thoroughly test it right now. I'll send an update by tomorrow at the latest.

 

Thank you!

Avatar

Level 3

@philschmidt @Jennifer_Dungan I've tried troubleshooting this and I think it more accurately describes "Visitors formerly opted out and currently opted in". In order to test it, I created another segment with the order reversed - "Visitors formerly opted in and currently opted out". They unfortunately have 12 visitors in common, so I have a some more tweaking to try.

 

bhutton_0-1689890071862.png

bhutton_1-1689890094253.pngbhutton_2-1689890163484.png

 

Another point of confusion is that some of the VisIDs showing up in common between the segments only have an opt-in or opt-out on record, not both.

 

After these are squared away, I should be able to use them with [OR (Currently Opted In AND Never Opted Out)] to get the original ask of the whole Currently Opted In segment, and then iterate for opt-out and the other categories.