Visitor id from native app to webview

serenaferrin

22-11-2018

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.

Accepted Solutions (1)

Accepted Solutions (1)

Gigazelle

Employee

17-12-2018

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

Answers (9)

Answers (9)

serenaferrin

12-12-2018

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

.

Gigazelle

Employee

10-09-2019

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

AlexisCazes

MVP

12-12-2018

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?

serenaferrin

11-12-2018

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.

AlexisCazes

MVP

11-12-2018

  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 )

serenaferrin

10-12-2018

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.

AlexisCazes

MVP

10-12-2018

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

Gigazelle

Employee

06-12-2018

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.