Xamarin and Adobe Mobile Services plugin - alcazes/Adobe-Analytics-from-A-To-Z GitHub Wiki
October 2016 MR: Xamarin, Unity, and PhoneGap plugins are updated to work with iOS and Android SDKs version 4.14.
IMPORTANT: The solution provided below has been developed by Alexis Cazes and is not be supported by Adobe ClientCare and Adobe Engineering as it has not gone through proper validation and testing. This tutorial for Android has been put together to help take advantage of the Latest Adobe Mobile SDK for Android (i.e: Marketing Links). No issues were faced while I was testing this version of the updated plugin for ANDROID
USE THIS PLUGIN WITH CAUTION AFTER TESTING
- Xamarin and ADBMobile plugin
- Install Xamarin
- Adobe Mobile Services
- Generate ADBMobile dll with latest SDK
- Create your Xamarin app
The xamarin plugin is simply a wrapper around the SDK. In order for a xamarin app to use the methods in the SDK, they must be exposed in the wrapper. This means that each version of the Xamarin plugin for ADBMobile has a wrapper that expose methods introduce up to a specific Adobe Mobile Services SDK 4.x.x.
The current distribution of the xamarin plugin includes version 4.4.2 of the SDK - methods up to that version have been exposed. It is perfectly fine to put a newer version of the the SDK into your xamarin app (see below for steps), but the wrapper has not exposed any methods introduced after 4.4.2, and they therefore will not be callable.
Adobe Mobile Services provides several version of link acquisition tracking and each version requires a minimum version of the Adobe Mobile Services SDK to function.
See documentation
SDK Version | Legacy Acquisition Builder | Manual Links Building | Marketing Links Builder |
---|---|---|---|
4.1 to 4.5 | Yes | No | No |
4.6 to 4.9 | Yes | Yes | No |
4.9 or later | Yes | Yes | Yes |
This means that the XAMARIN ADBMobile plugin 4.4.2 can only use Legacy Link Acquisition if you are using the dll provided on Adobe Mobile Services github.
Solution:
Since there aren’t any methods that you need to call to get v3 of acquisition, we think it is possible to use this version of acquisition link in XAMARIN APP, if you update the SDK to the latest one and if you regenerate the dll with this new SDK.
A default referral receiver (com.adobe.mobile.ReferralReceiver) in the Android SDK was added in version 4.5.1 and above of the Adobe Mobile Services see AndroidManifest.
Xamarin is now part of Visual Studio 2015. Once Installed, you should be able to create Android and IOS project based on Xamarin architecture in Visual Studio 2015.
If you have not created and configured an app in Adobe Mobile Services, do it now. Follow the steps in the official documentation.
Once app is fully configured, download the android SDK under Manage App Settings.
Open the zip file and extract the following files in a folder to reuse later:
- ADBMobileConfig.json
- adobeMobileLibrary-4.11.1.jar
You might have a different version of jar downloaded
The steps below will be for ANDROID. For IOS the steps should be similar...
1.] Got to Adobe Mobile Services github and download the zip file
2.] Open the zip file downloaded and extract folder Xamarin
3.]Open Xamarin folder, go to ADBMobile\src\ADBMobile.XamarinAndroidBinding
4.]Open file ADBMobile.XamarinAndroidBinding.csproj and edit the following line of code towards the end of the file:
<ItemGroup>
<EmbeddedJar Include="Jars\adobeMobileLibrary-4.4.2.jar" />
</ItemGroup>
TO
You might have a different version of the jar downloaded so make sure to put correct version
<ItemGroup>
<EmbeddedJar Include="Jars\adobeMobileLibrary-4.11.1.jar" />
</ItemGroup>
5.] Do the same steps in file ADBMobile.XamarinAndroidBinding.csproj.bak
6.] Now go to folder Jars : ADBMobile\src\ADBMobile.XamarinAndroidBinding\Jars Replace the existing adobeMobileLibrary-4.x.x.jar by the one that you have downloaded
7.] Go to the folder: ADBMobile\src and run file AdobeMobileSDKBinding.sln . The project should be opened in Visual Studio 2015
8.] In the solution explorer right click on ADBMobile.XamarinAndroidBinding and click on build Wait that the new build finish
9.] Go to ADBMobile\src\ADBMobile.XamarinAndroidBinding\bin\Debug, you will find the file ADBMobile.XamarinAndroidBinding.dll . Copy this file in the same folder as ADBMobileConfig.json for use in the app.
NOTE: Once the dll is generated for ANDROID BINDING, you should have access to all content of the ADOBE MOBILE SERVICES SDK. IF any of the method that is supposed to be in SDK 4.11.1 is missing, make sure that you referenced the SDK 4.11.1 correctly and rebuild the dll. It means that for the ANDROID BINDING it is not necessary to create specific definition.
1.] Open Visual Studio and click on File >> New >> Project
2.] Select Templates >> Visual C# >> Android >> Blank App (Android)
3.] In Solution Explorer, copy file ADBMobileConfig.json downloaded earlier into the folder Assets
4.]In Solution Explorer, click right on References >> Add Reference >> Browse to the location where you put the dll file generated earlier and click on add >> Select the dll and click OK
5.] You should now see the dll referenced in your References
1.] Open File MainActivity.cs
2.] Android SDK 4.11.1 require that you define an AdobeMediaCallback to capture the different events sent (especially for link acquisition). Place the following code just under your namespace:
namespace TestXamarin
{
//To capture Adobe Event Data
class AdobeMediaCallback : Java.Lang.Object, Config.IAdobeDataCallback
{
//Adobe Analytics variables to use in AdobeMediaCallback
private IDictionary<string, Java.Lang.Object> lifecycleData = null;
private IDictionary<string, Java.Lang.Object> acquisitionData = null;
public void Call(Config.MobileDataEvent p0, IDictionary<string, Java.Lang.Object> p1)
{
//Custom logs: can be removed
string tag = "ADBMobile";
Android.Util.Log.Info(tag, "Alexis : Referrer Received!!! Event : " + p0);
//Code to keep
string adobeEventTag = "ADOBE_CALLBACK_EVENT";
adobeEventTag = p0.ToString();
switch (adobeEventTag) {
case "MOBILE_EVENT_LIFECYCLE":
Android.Util.Log.Info(tag, "Alexis : Event CallBack received: " + p0); //Custom log can be removed
/* this event will fire when the Adobe sdk finishes processing lifecycle information */
lifecycleData = p1;
break;
case "MOBILE_EVENT_ACQUISITION_INSTALL":
Android.Util.Log.Info(tag, "Alexis : Event CallBack received: " + p0); //Custom log can be removed
/* this event will fire on the first launch of the application after install when installed via an Adobe acquisition link */
acquisitionData = p1;
break;
case "MOBILE_EVENT_ACQUISITION_LAUNCH":
Android.Util.Log.Info(tag, "Alexis : Event CallBack received: " + p0); //Custom log can be removed
/* this event will fire on the subsequent launches after the application was installed via an Adobe acquisition link */
acquisitionData = p1;
break;
}
}
}
[...]
}
3.] Add the following code in OnCreate
//Adobe Mobile Services Start
Config.SetContext(Application.Context); //Start lifecycle tracking
Config.DebugLogging = (Java.Lang.Boolean)true; //Set ADB debug
Config.RegisterAdobeDataCallback(new AdobeMediaCallback()); // Register an adobe data callback: i.e. to catch lifecycle data
Analytics.TrackState("XAMARIN MAIN",null); //Default trackState (can be defined in other places like OnResume)
//Adobe Mobile Services End
4.] Add OnResume
protected override void OnResume()
{
base.OnResume();
//Adobe Mobile Services Start
Config.CollectLifecycleData(this); //Resume lifecycle tracking
}
5.] Add OnPause
protected override void OnPause()
{
base.OnPause();
//Adobe Mobile Services Start
Config.PauseCollectingLifecycleData(); //Pause lifecycle tracking
//Adobe Mobile Services End
}
6.] Add using Com.Adobe.Mobile;
7.] Final code
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using System.Collections.Generic;
using Android.OS;
using Com.Adobe.Mobile;
namespace TestXamarin
{
//To capture Adobe Event Data
class AdobeMediaCallback : Java.Lang.Object, Config.IAdobeDataCallback
{
//Adobe Analytics variables to use in AdobeMediaCallback
private IDictionary<string, Java.Lang.Object> lifecycleData = null;
private IDictionary<string, Java.Lang.Object> acquisitionData = null;
public void Call(Config.MobileDataEvent p0, IDictionary<string, Java.Lang.Object> p1)
{
string tag = "ADBMobile";
Android.Util.Log.Info(tag, "Alexis : Referrer Received!!! Event : " + p0);
string adobeEventTag = "ADOBE_CALLBACK_EVENT";
adobeEventTag = p0.ToString();
switch (adobeEventTag) {
case "MOBILE_EVENT_LIFECYCLE":
Android.Util.Log.Info(tag, "Alexis : Event CallBack received: " + p0);
/* this event will fire when the Adobe sdk finishes processing lifecycle information */
lifecycleData = p1;
break;
case "MOBILE_EVENT_ACQUISITION_INSTALL":
Android.Util.Log.Info(tag, "Alexis : Event CallBack received: " + p0);
/* this event will fire on the first launch of the application after install when installed via an Adobe acquisition link */
acquisitionData = p1;
break;
case "MOBILE_EVENT_ACQUISITION_LAUNCH":
Android.Util.Log.Info(tag, "Alexis : Event CallBack received: " + p0);
/* this event will fire on the subsequent launches after the application was installed via an Adobe acquisition link */
acquisitionData = p1;
break;
}
}
}
[Activity(Label = "TestXamarin", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
int count = 1;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
//Adobe Mobile Services Start
Config.SetContext(Application.Context); //Start lifecycle tracking
Config.DebugLogging = (Java.Lang.Boolean)true; //Set ADB debug
Config.RegisterAdobeDataCallback(new AdobeMediaCallback());
Analytics.TrackState("XAMARIN MAIN",null);
//Adobe Mobile Services End
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
Button button = FindViewById<Button>(Resource.Id.MyButton);
button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); Analytics.TrackAction("XAMARIN trackAction button",null); };
}
protected override void OnResume()
{
base.OnResume();
//Adobe Mobile Services Start
Config.CollectLifecycleData(this); //Resume lifecycle tracking
}
protected override void OnPause()
{
base.OnPause();
//Adobe Mobile Services Start
Config.PauseCollectingLifecycleData(); //Pause lifecycle tracking
//Adobe Mobile Services End
}
}
}
A default referral receiver (com.adobe.mobile.ReferralReceiver) in the Android SDK was added in version 4.5.1 and above of the Adobe Mobile Services. Therefore it is possible to simply use it by referencing it in AndroidManifest.xml .
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="TestXamarin.TestXamarin" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="16" />
<application android:label="TestXamarin">
<receiver android:name="com.adobe.mobile.ReferralReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
It is possible that you will need to create a custom BroadcastReceiver if you need to send non-adobe code when a referrer is received.
1.] Create the file ReferralReceiver.cs
2.] Put the following code
using System;
using Android.App;
using Android.Content;
using Com.Adobe.Mobile;
namespace TestXamarin
{
[BroadcastReceiver]
[IntentFilter(new[] { "com.android.vending.INSTALL_REFERRER" })]
public class ReferralReceiverTest : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
//Custom log can be removed
string tag = "ADBMobile";
Android.Util.Log.Info(tag, "Alexis : Custom BroadcastReceiver : Referrer Received!!!");
//Adobe Mobile Services process referrer
Analytics.ProcessReferrer(context, intent);
}
}
}
Note: If you add a custom BroadcastReceiver, you do not need to add it to add it to AndroidManifest.xml manually. Xamarin will do it for you. You can check that it has been added by going to C:\Users\YOUR USERNAME\Documents\Visual Studio 2015\Projects\Project Name\Project Name\obj\Debug\android\AndroidManifest.xml . For me it is C:\Users\acazes\Documents\Visual Studio 2015\Projects\TestXamarin\TestXamarin\obj\Debug\android
1.] Open AndroidManifest.xml
2.] Add the following
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--Only if you have decided to use Adobe Mobile Services BroadCast Receiver-->
<receiver android:name="com.adobe.mobile.ReferralReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
NOTE: You might have to add additional code if you are using additional features like In app messaging
These steps consider that you have an android device to test, otherwise use emulator
1.]Plug in your Android device to your computer
2.]Click on play icon, it should detect your android device automatically and install your app
3.] Check the output logs and you should see Adobe Analytics image request being sent.
08-03 10:03:17.400 D/ADBMobile(26961): ADBMobile Debug : Config - Attempting to load config file from default location
08-03 10:03:17.400 D/ADBMobile(26961): ADBMobile Debug : Marketing Cloud - Not configured locally.
08-03 10:03:17.400 D/ADBMobile(26961): ADBMobile Debug : Cached Files - Directory is empty (/data/data/TestXamarin.TestXamarin/cache/adbdownloadcache).
08-03 10:03:17.400 D/ADBMobile(26961): ADBMobile Debug : Cached Files - Directory is empty (/data/data/TestXamarin.TestXamarin/cache/adbdownloadcache).
08-03 10:03:17.410 D/ADBMobile(26961): ADBMobile Debug : Analytics ID - Sending Analytics ID call(http://edinburghcc.sc.omtrdc.net/id)
08-03 10:03:17.611 D/ADBMobile(26961): ADBMobile Debug : Analytics - Request Queued (ndh=1&ts=1470211397&ce=UTF-8&c.&a.&DeviceName=GT-I9505&OSVersion=Android%205.0.1&RunMode=Application&Resolution=1080x1920&AppID=TestXamarin%201.0%20%281%29&.a&.c&t=00%2F00%2F0000%2000%3A00%3A00%200%20-120&pageName=XAMARIN%20MAIN&aid=2BD0D2A08530B84A-60000303E00233D0)
08-03 10:03:17.641 D/ADBMobile(26961): ADBMobile Debug : Cached Files - Directory is empty (/data/data/TestXamarin.TestXamarin/cache/adbdownloadcache).
08-03 10:03:17.751 D/ADBMobile(26961): ADBMobile Debug : Cached Files - Directory is empty (/data/data/TestXamarin.TestXamarin/cache/adbdownloadcache).
08-03 10:03:17.751 D/ADBMobile(26961): ADBMobile Debug : Analytics - Setting base request URL(http://edinburghcc.sc.omtrdc.net/b/ss/ediccacazes.xamarin.app.test/0/JAVA-4.11.1-AN/s)
08-03 10:03:17.811 D/ADBMobile(26961): ADBMobile Debug : Config - A callback has not been registered for Adobe events.
08-03 10:03:17.811 D/ADBMobile(26961): ADBMobile Debug : Analytics - Request Queued (ndh=1&ts=1470211396&ce=UTF-8&pev2=ADBINTERNAL%3ALifecycle&c.&a.&RunMode=Application&HourOfDay=10&Resolution=1080x1920&MonthlyEngUserEvent=MonthlyEngUserEvent&InstallEvent=InstallEvent&DailyEngUserEvent=DailyEngUserEvent&InstallDate=8%2F3%2F2016&AppID=TestXamarin%201.0%20%281%29&OSVersion=Android%205.0.1&Launches=1&DeviceName=GT-I9505&DayOfWeek=4&LaunchEvent=LaunchEvent&internalaction=Lifecycle&.a&.c&t=00%2F00%2F0000%2000%3A00%3A00%200%20-120&pe=lnk_o&pageName=TestXamarin%201.0%20%281%29&aid=2BD0D2A08530B84A-60000303E00233D0)
08-03 10:03:17.821 D/ADBMobile(26961): ADBMobile Debug : Analytics - Request Sent(ndh=1&ts=1470211397&ce=UTF-8&c.&a.&DeviceName=GT-I9505&OSVersion=Android%205.0.1&RunMode=Application&Resolution=1080x1920&AppID=TestXamarin%201.0%20%281%29&.a&.c&t=00%2F00%2F0000%2000%3A00%3A00%200%20-120&pageName=XAMARIN%20MAIN&aid=2BD0D2A08530B84A-60000303E00233D0)
08-03 10:03:17.841 D/ADBMobile(26961): ADBMobile Debug : Audience Manager - Your config file is not set up to use Audience Manager(missing audience manager server information)
08-03 10:03:17.851 D/ADBMobile(26961): ADBMobile Debug : Analytics - Adjusting out of order hit timestamp(1470211396->1470211398)
08-03 10:03:17.961 D/ADBMobile(26961): ADBMobile Debug : Analytics - Request Sent(ndh=1&ts=1470211398&ce=UTF-8&pev2=ADBINTERNAL%3ALifecycle&c.&a.&RunMode=Application&HourOfDay=10&Resolution=1080x1920&MonthlyEngUserEvent=MonthlyEngUserEvent&InstallEvent=InstallEvent&DailyEngUserEvent=DailyEngUserEvent&InstallDate=8%2F3%2F2016&AppID=TestXamarin%201.0%20%281%29&OSVersion=Android%205.0.1&Launches=1&DeviceName=GT-I9505&DayOfWeek=4&LaunchEvent=LaunchEvent&internalaction=Lifecycle&.a&.c&t=00%2F00%2F0000%2000%3A00%3A00%200%20-120&pe=lnk_o&pageName=TestXamarin%201.0%20%281%29&aid=2BD0D2A08530B84A-60000303E00233D0)
08-03 10:03:18.221 D/ADBMobile(26961): ADBMobile Debug : Cached Files - Caching successful (https://assets.adobedtm.com/b213090c5204bf94318f4ef0539a38b487d10368/scripts/satellite-578f4fb564746d29bc003251.json)
08-03 10:03:18.231 D/ADBMobile(26961): ADBMobile Debug : Messages - Using remote definition for messages
08-03 10:03:18.231 D/ADBMobile(26961): ADBMobile Debug : Cached Files - Caching successful (https://assets.adobedtm.com/b213090c5204bf94318f4ef0539a38b487d10368/scripts/satellite-578f4fb564746d2022002ca2.json)
08-03 10:03:18.231 D/ADBMobile(26961): ADBMobile Debug : Config - Using remote definition for points of interest
08-03 10:03:22.846 D/ADBMobile(26961): ADBMobile Debug : Analytics - Referrer timeout has expired without referrer data
08-03 10:04:18.390 D/ADBMobile(26961): ADBMobile Debug : Analytics - Request Queued (ndh=1&ts=1470211458&ce=UTF-8&pev2=AMACTION%3AXAMARIN%20trackAction%20button&c.&a.&TimeSinceLaunch=61&OSVersion=Android%205.0.1&RunMode=Application&Resolution=1080x1920&action=XAMARIN%20trackAction%20button&DeviceName=GT-I9505&AppID=TestXamarin%201.0%20%281%29&.a&.c&t=00%2F00%2F0000%2000%3A00%3A00%200%20-120&pe=lnk_o&pageName=TestXamarin%201.0%20%281%29&aid=2BD0D2A08530B84A-60000303E00233D0)
08-03 10:04:18.550 D/ADBMobile(26961): ADBMobile Debug : Analytics - Request Sent(ndh=1&ts=1470211458&ce=UTF-8&pev2=AMACTION%3AXAMARIN%20trackAction%20button&c.&a.&TimeSinceLaunch=61&OSVersion=Android%205.0.1&RunMode=Application&Resolution=1080x1920&action=XAMARIN%20trackAction%20button&DeviceName=GT-I9505&AppID=TestXamarin%201.0%20%281%29&.a&.c&t=00%2F00%2F0000%2000%3A00%3A00%200%20-120&pe=lnk_o&pageName=TestXamarin%201.0%20%281%29&aid=2BD0D2A08530B84A-60000303E00233D0)
NOTICE: If you have updated the dll file correctly with the latest SDK, you should see that the latest SDK code version is used : Analytics - Setting base request URL(http://edinburghcc.sc.omtrdc.net/b/ss/ediccacazes.xamarin.app.test/0/JAVA-4.11.1-AN/s)
It is important to understand that it is not possible to use all types of Adobe Mobile Services Link Acquisition depending on the Adobe Mobile Services Android SDK used in the dll.
Please check the minimum SDK requirements : Adobe Mobile Services Link Acquisition Tracking
If you use Xamarin Adobe Mobile Services plugin 4.4.2 then you can only use Legacy Link Acquisition. If you have followed thiss tutorial and updated the SDK to 4.11.1 and generated the new dll then you should be able to use Adobe Mobile Services Marketing Links and all the other types.
It is important that you implement lifecycle data tracking: Add Adobe Mobile Services code
To catch the acquisition link or marketing link data you will need to add a BroadCastReceiver: Add BroadcastReceiver to catch Referrer (Acquisition data)
If you are not using the default XAMARIN plugin 4.4.2 and you have generated a dll based on my steps then you most likely will need to do these steps.
In SDK 4.11.1 you need to create an AdobeMediaCallback and register it using Config.RegisterAdobeDataCallback. See point 2 and 3 of Adobe Mobile Services
Verify that ADBMobileConfig.json contains the required acquisition settings:
"acquisition": {
"server": "c00.adobe.com",
"appid": "0652024f-adcd-49f9-9bd7-2552a4565d2f"
},
"analytics": {
"referrerTimeout": 5,
For testing make sure to change referrerTimeout to 60 in ADBMobileConfig.json to allow you enough time to send the broadcast
Please check the documentation
1.] Open Android Adb Command Prompt
2.] Type in adb shell
3.] In Visual Studio press on play to install the app. Make sure to install the app before doing this.
4.] As soon as the app opens send a broadcast
- If you are using the default com.adobe.mobile.ReferralReceiver use the following command
am broadcast -a com.android.vending.INSTALL_REFERRER -n [XAMARIN PROJECT PATH]/com.adobe.mobile.ReferralReceiver --es "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign&trackingcode=trackingvalue"
In my case I would input:
am broadcast -a com.android.vending.INSTALL_REFERRER -n TestXamarin.TestXamarin/com.adobe.mobile.ReferralReceiver --es "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign&trackingcode=trackingvalue"
- If you are using a custom BroadcastReceiver us the following command
am broadcast -a com.android.vending.INSTALL_REFERRER -n [Xamarin project path]/[Cutom BroadCast receiver] --es "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign&trackingcode=trackingvalue"
In my case I will have:
am broadcast -a com.android.vending.INSTALL_REFERRER -n TestXamarin.TestXamarin/md584502af42de6d7a3ec93f4e51b223d0c.ReferralReceiverTest --es "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign&trackingcode=trackingvalue"
You can find the location of the custom Broadcastreceiver in the AndroidManifest in this location: C:\Users\YOUR USERNAME\Documents\Visual Studio 2015\Projects\Project Name\Project Name\obj\Debug\android\AndroidManifest.xml . For me it is C:\Users\acazes\Documents\Visual Studio 2015\Projects\TestXamarin\TestXamarin\obj\Debug\android
Make sure to update all details about utm_source etc...
5.] You should see the following in the command prompt
6.] For SDK 4.11.1 you should see the following in the logs
08-11 08:13:48.441 D/ADBMobile( 2254): ADBMobile Debug : Analytics - Received referrer information(utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign&trackingcode=trackingvalue)
08-11 08:13:48.451 I/ADBMobile( 2254): Alexis : Referrer Received!!! Event : MOBILE_EVENT_ACQUISITION_INSTALL
08-11 08:13:48.451 I/ADBMobile( 2254): Alexis : Event CallBack received: MOBILE_EVENT_ACQUISITION_INSTALL
08-11 08:13:53.656 D/ADBMobile( 2254): ADBMobile Debug : Analytics - Request Sent(ndh=1&ts=1470896027&ce=UTF-8&pev2=ADBINTERNAL%3ALifecycle&c.&a.&RunMode=Application&HourOfDay=8&Resolution=1080x1920&MonthlyEngUserEvent=MonthlyEngUserEvent&InstallEvent=InstallEvent&referrer.&campaign.&name=testCampaign&trackingcode=trackingvalue&medium=testMedium&source=testSource&content=testContent&term=testTerm&.campaign&.referrer&DailyEngUserEvent=DailyEngUserEvent&InstallDate=8%2F11%2F2016&AppID=TestXamarin%201.0%20%281%29&OSVersion=Android%205.0.1&Launches=1&DeviceName=GT-I9505&DayOfWeek=5&LaunchEvent=LaunchEvent&internalaction=Lifecycle&.a&.c&t=00%2F00%2F0000%2000%3A00%3A00%200%20-120&pe=lnk_o&pageName=TestXamarin%201.0%20%281%29&aid=2BD60BCA0530A949-40000302E000C91A)
Note: acquisition data will be present in the Adobe Analytics image request between c. a. referrer. campaign. .campaign .referrer .a .c
1.]Follow the steps in this documentation
IN PROGRESS