Expand my Community achievements bar.

Join us at Adobe Summit 2024 for the Coffee Break Q&A Live series, a unique opportunity to network with and learn from expert users, the Adobe product team, and Adobe partners in a small group, 30 minute AMA conversations.
SOLVED

Visitor id from native app to webview

Avatar

Level 2

I have a hybrid application, one part is native and the other part in webview.

As I told them, developers set the adobe_mc parameter in the url to track the VisitorID.

The problem is that the eVar where VisitorID is stored loses its persistence once user does the transition from native to webview app or vice versa.

Specific funnel example:

1 - the designed eVar is valorized (as a certain VisitorID number) in the native app;

2 - user goes to webview, than the eVar appears not to be valorized (eVarXX = "Unspecified");

3 - user finally comes back to native part and that eVar is valorized again as it was at the very start.

Could you help me?

Thanks in advance.

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

I think the issue is that visitor ID in Launch is the s.visitorID override variable, which does not play nicely with the Experience Cloud ID Service. The docs you linked to are for legacy visitor identification (before the ID service). I'll pass that feedback to our doc team to make it clearer.

The bottom line is that you'll want to make sure both your mobile app and web page have the same aid or mid query string. Once you have that, you'll be golden.

More information on how Adobe sets the Experience Cloud ID can be found here: How It Works

View solution in original post

10 Replies

Avatar

Employee Advisor

I'm assuming this is because the native app and web view are occurring in separate browsers? If you're mitigating this by including adobe_mc in the URL, you will want to make sure the code you're using for that logic is correctly grabbing the query string parameter and putting it in the visitor ID cookie.

Avatar

Community Advisor

Which visitorID are you talking about ?

  • Legacy visitor ID (using s_vi cookie or aid in server calls)
  • Experience Cloud visitor ID (mid in servers calls or AMCV_ cookies)
  • Custom Visitor ID (set via s.visitorID or or vid in server calls)

You need to make same visitor ID type in native app and webview.

Lets say you are using experience cloud visitor ID then use this method:

IOS: Visitor Tracking Between an App and Mobile Web

ANDROID: Visitor Tracking Between an App and Mobile Web

Make sure you have the minimum version of SDK and AppMeasurement.js

Avatar

Level 2

I'm talking about Experience Cloud visitor ID, I followed the steps you indicated me for the implementation, and the adobe_mc parameters are correctly displayed during the navigation.

But during transition from native environment to web view the eVar, where our Custom ID (visitor based configuration) is stored, it does not keep the value during web view navigation and I can't see any webview data with a breakdown in our report suite.

Thanks in advance.

Avatar

Community Advisor
  1. You need to check that the server call from the mobile app and from the webview contain both the same mid value.
  2. What is the expiration of your eVar?
    • Do you set in both the mobile and webview server call ? Is it the same value ?
  3. Examples of server calls would help us here I think (make sure there no sensitive data in the requests )

Avatar

Level 2

1 & 3. In the following screens you can see the server calls of the native environment and of the webview environment.

     The first one is the native app server call, the second one is the webview call and the last one is a native server call.

    - native server call:

1644272_pastedImage_2.png

- web view server call:

1644273_pastedImage_3.png

- native server call:

03---Server-Call-native.jpg

      The mid parameter appears only in the webview server call (the second screen).

2. I set the value of the eVar only in the login in the native environment.

   In the Report Suite Manager I set the option "expire after" with the value never.

Thanks in advance.

Avatar

Community Advisor

1. Read this to understand how a unique visitor is counted: Identifying Visitors

Especially this part:

Analytics Visitor IDs

There are several ways a visitor can be identified in Analytics (listed in the following table in order of preference):

Order Used Query Parameter (collection method) post_visid_type column value Present When
  vid (s.visitorID) 0 s.visitorID is set.
aid (s_vi cookie) 3 Visitor had an existing s_vi cookie before you deployed the Visitor ID service, or you have a Visitor ID grace period configured.
mid (AMCV_ cookie set by Experience Cloud ID service) 5 Visitor's browser accepts cookies (first-party), and the Experience Cloud ID service is deployed.
fid (fallback cookie on H.25.3 or newer, or AppMeasurement for JavaScript) 4 Visitor's browser accepts cookies (first-party).
HTTP Mobile Subscriber header 2 Device is recognized as a mobile device.
IP Address, User Agent, Gateway IP Address 1 Visitor's browser does not accept cookies.

In many scenarios you might see 2 or 3 different IDs on a call, but Analytics will use the first ID present from that list as the official visitor ID, and split that value across the post_visid_high and post_visid_low columns. For example, if you are setting a custom visitor ID (included in the "vid" query parameter), that ID will be used before other IDs that might be present on that same hit.

2. In your native app you see aid which correspond to #2 on the table above which means that you should have same aid on webview side.

In the webview we can see a vid and mid. vid will prevail over mid. The problem here I think is that you have the full string of query param adobe_mc in vid where you should only have the value of MCAID.

Which version of mobile SDK do you have ?

Which version of Appmeasurement.js do you have?

Do you have any custom code in the webview to set s.visitorId?

Avatar

Level 2

Hi,

our SDK version is 4.17.1

our AppMeasurement version 2.10.0.

No, we don’t have any custom code to set te s.visitorId. We have just a Query String Parameter Data Element set on "adobe_mc" (Storage duration as Visitor). This Data Element is set as Visitor ID in the cookie settings of the Adobe Analytics Extension in Launch.

We followed these instruction to track the visitor between App and Mobile view:
Android: https://marketing.adobe.com/resources/help/en_US/mobile/android/hybrid_app.html

iOS: https://marketing.adobe.com/resources/help/en_US/mobile/ios/hybrid_app.html

.

Avatar

Correct answer by
Employee Advisor

I think the issue is that visitor ID in Launch is the s.visitorID override variable, which does not play nicely with the Experience Cloud ID Service. The docs you linked to are for legacy visitor identification (before the ID service). I'll pass that feedback to our doc team to make it clearer.

The bottom line is that you'll want to make sure both your mobile app and web page have the same aid or mid query string. Once you have that, you'll be golden.

More information on how Adobe sets the Experience Cloud ID can be found here: How It Works

Avatar

Level 1

Did you ever figure out if you needed to add custom code to set the visitor ID based on the values in adobe_mc param?

Avatar

Employee Advisor

Adobe is actually releasing a feature tomorrow labeled Cross-Device Analytics, which covers this exact use case. More information on the feature can be found here: Cross-Device Analytics Overview