Expand my Community achievements bar.

SOLVED

Adobe Target sending wrong experience to mobile app

Avatar

Level 2

Hi everyone,

 

we are trying to integrate Adobe Target with our native Android app which uses the Adobe AEP Mobile SDK.

Apart from the fact that documentation for this kind of integration is not really clear, there are tutorials and demos related to old version of the Adobe Target SDK, which use functions deprecated from the current version.
The only documentation available seems to be this one: https://developer.adobe.com/client-sdks/documentation/adobe-target/

 

That said, coming back to the question, we managed to integrate the Adobe Target extension in our app, and we are testing a simple retrieval of an HTML according to the user which uses the app.
We created a Target Activity with two experiences.
Experience A contains an HTML for an Audience which contains only our test consumer.
Experience B contains a different HTML for the "All visitors" audience.

 

We tried to enable the Mobile Preview mode and we have checked that visually both experiences work correctly.

The issue is that when we disable the Mobile Preview mode, and we use the app with the test consumer that should be receiving Experience A, it actually receives the fallback expereince B, as if the user of the app was not recognized.

We did not pass the ECID to the Target request call in any custom way, assuming that is dealt with automatically with the integration.

And it seems to be correct, since from the Android Studio logs, we see that the calls to/from Target contain the correct "marketingCloudVisitorId"/ECID.

 

We do not understand why the user qualifies for the wrong experience though.

We tried with both an AB test and XT activity.


Any help woul be appreciated.

Many thanks!

Alberto

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

For i) the typical approach involves using Adobe Tags (fka Launch) & the extension; this is effectively generating a config file, so if you don't want to use Tags for some reason, you can either programatically set config options or use your own config file

ii) Yes, that extension is necessary; however, you don't need "Edge Segmentation" or "Offer Decisioning" enabled at the datastream level, you just need Adobe Target enabled 

View solution in original post

11 Replies

Avatar

Employee Advisor

Could you explain/share a screenshot of how you've defined the "test consumer" audience?

Avatar

Level 2

Sure, basically my test audience contains just a couple of ECID as a fixed rule. These are the ECID of my android emulators, where I'd expect to receive Experience A. I'm doing this just for testing purposes.

alben_0-1698328598657.png

This audience is activated to the Target Destination.
In Target this audience is connected to Experience A.
The All visitor "audience" to Experience B.
I always receive experience B even if my ECID is inside the audience for Experience A.

In this example you see a batch audience, but I also tested with Streaming and Edge audiences with the same result.


Thanks!

Avatar

Employee Advisor

Ah ok so it's a CDP audience being shared to the Target destination. In that case I'm wondering how you have implemented Target in the Mobile App. You'd need to use the Platform Edge and Journey Decisioning extensions in order to utilise that CDP audience; I'm wondering if you've implemented the Target library instead? 

 

In case you haven't seen it before, there is a tutorial here that explains the different steps & also provides a sample application which includes that Journey Decisioning implementation

Avatar

Level 2

Exactly, I setup a CDP audience being shared to the Target destination.

The Target implementation is the native implementation for Mobile SDK.
I followed this documentation: https://developer.adobe.com/client-sdks/solution/adobe-target/


We have a Mobile data collaction tag property dedicated to our app, and there we have enabled all the extensions you mentioned:

alben_0-1698673230189.png


That said, I think what I need in this case are Edge network and Target, right?

Why are you mentioning Journey Decision extension for my issue?
I mean, I have Journey Decisioning extension installed as well, but I don't think it matters for the issue at hand.
Just to be on the same page, the Target activity I configured is this one:

alben_0-1698679158137.png

And I always get Experience B.
But I don't think this scenario is using journey decisioning, right? AJO is never used at this stage.

 

Many thanks!

Avatar

Employee Advisor

I understand the confusion, given the name of the extension, but the way to implement Target in Mobile App via Edge is by using the Decisioning Extension - see full details here

alexbishop_0-1698683198387.png

 

Avatar

Level 2

Thanks for pointing out this. I admit it is a bit confusing an uncexpected.
Nevertheless, I've tried implementing what the page you linked suggested.

 

First, I don't understand how to read back data that Target sends back to the app.
I mean, when using the retrieveLocationContent function (https://developer.adobe.com/client-sdks/solution/adobe-target/api-reference/#retrievelocationcontent... I can read the response from Target. I don't understand how to do the same while following the AJO decisioning method (https://developer.adobe.com/client-sdks/edge/adobe-journey-optimizer-decisioning/#target-parameters). I need to read the content of the experience that Target sent me to personalize the app accordingly (an image is shown basically).

Second point is that I get this error when I run the app:
"AdobeExperienceSDK com...shnotification_adobe_activity W Optimize/OptimizeExtension - handleEdgeErrorResponse - Decisioning Service error! Error type: (https://ns.adobe.com/aep/errors/EXEG-0203-502), detail: (An error occurred while calling the 'com.adobe.experience_platform.edge_segmentation' service for this request. Try again.)"

 

Many thanks!

Avatar

Employee Advisor

In case you haven't seen it already, this tutorial walks through the steps to fetch & track Target offers using the AJO Decisioning (also known as Optimize Mobile SDK) implementation

Avatar

Level 2

Hi again,
I've studied that tutorial, but honestly it does not walk you throught the use of the Optimize Mobile SDK.
It walks you through the setup of the extension, of the datastream, tag property etc.
But the part I was mostly interested in, the functions used in the mobile app to interact with target, unfortunately thas has not been much helpful.
This is because there is no real explanation of the functions being used. 

It looks like a demo project one can use to test some functionalities once you have prepared your sandbox with all the assets.

Furthermore, I am working on an Andorid application, and having a iOS tutorial does not help much.
Do you happen to know if there is an equivalent Android tutorial?

 

Many thanks!

Avatar

Employee Advisor

There isn't an Android equivalent of that tutorial currently; did you manage to make progress with the Android implementation?

Avatar

Level 2

Hi

I'm also trying to implement Adobe Target using the Mobile SDK (via Edge), and I have some questions:

 

1) To implement Adobe Target for mobile (using Mobile SDK) is it necessary to install the Target extension? When we implemented Analytics using the Mobile SDK it was not necessary to install the Analytics extension. Same for our Web SDK Analytics & Target implementation.

2) The Journey Decisioning extension is really mandatory for implementing Target mobile using SDK (via Edge)? In my environment I cannot select the "Offer Decisioning" and "Edge Segmentation" options in the Datastream configuration (https://developer.adobe.com/client-sdks/edge/adobe-journey-optimizer-decisioning/)

 

Thanks

 

Avatar

Correct answer by
Employee Advisor

For i) the typical approach involves using Adobe Tags (fka Launch) & the extension; this is effectively generating a config file, so if you don't want to use Tags for some reason, you can either programatically set config options or use your own config file

ii) Yes, that extension is necessary; however, you don't need "Edge Segmentation" or "Offer Decisioning" enabled at the datastream level, you just need Adobe Target enabled