I would like to send campaign data to my Google Analytics (GA) server,
This is my AndroidManifext.xml file.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.samples.quickstart.analytics">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:name=".AnalyticsApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<service android:name="com.google.android.gms.analytics.CampaignTrackingService"
android:permission="android.permission.WAKE_LOCK"
android:enabled="true"
android:exported="true">
</service>
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:exported="true"
android:permission="android.permission.INSTALL_PACKAGES">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false"/>
</application>
</manifest>
I am trying to send a broadcast on the command line using:
adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n "com.google.samples.quickstart.analytics/com.google.android.gms.analytics.CampaignTrackingReceiver" --es referrer "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign"
And I get the answer on the command line:
Broadcasting: Intent { act=com.android.vending.INSTALL_REFERRER cmp=com.google.samples.quickstart.analytics/com.google.android.gms.analytics.CampaignTrackingReceiver (has extras) }
Broadcast completed: result=0
But I get an error log on logcat below:
02-22 16:34:45.304 7134-7134/com.google.samples.quickstart.analytics W/GAv4: CampaignTrackingService service at risk of not starting. For more reliable installation campaign reports, add the WAKE_LOCK permission to your manifest. See http://goo.gl/8Rd3yj for instructions.
02-22 16:34:45.321 7134-7169/com.google.samples.quickstart.analytics W/GAv4: Ignoring duplicate install campaign
And I'm trying to send my campaign data using the section code below:
private void sendCampaignData() {
String name = getCurrentImageTitle();
switch(name) {
case "A":
{
Log.i(TAG, "Campaign Data A ----------------------");
String campaignData = "http://examplepetstore.com/index.html?" +
"utm_source=email&utm_medium=email_marketing&utm_campaign=summerA" +
"&utm_content=email_variation_A";
Log.i(TAG, "Campaign Data: " + campaignData);
mTracker.send(new HitBuilders.ScreenViewBuilder()
.setCampaignParamsFromUrl(campaignData)
.build()
);
break;
}
case "B":
{
Log.i(TAG, "Campaign Data B ----------------------");
String campaignData = "http://examplepetstore.com/index.html?" +
"utm_source=cpc&utm_medium=cpc_video&utm_campaign=springB" +
"&utm_content=email_variation_B";
Log.i(TAG, "Campaign Data: " + campaignData);
mTracker.send(new HitBuilders.ScreenViewBuilder()
.setCampaignParamsFromUrl(campaignData)
.build()
);
break;
}
case "C":
{
Log.i(TAG, "Campaign Data C ----------------------");
String campaignData = "http://examplepetstore.com/index.html?" +
"utm_source=banner&utm_medium=banner_activity&utm_campaign=winterC" +
"&utm_content=email_variation_C";
Log.i(TAG, "Campaign Data: " + campaignData);
mTracker.send(new HitBuilders.ScreenViewBuilder()
.setCampaignParamsFromUrl(campaignData)
.build()
);
break;
}
case "D":
{
Log.i(TAG, "Campaign Data D ----------------------");
String campaignData = "http://examplepetstore.com/index.html?" +
"utm_source=google&utm_medium=google_link&utm_campaign=fallD" +
"&utm_content=email_variation_D";
Log.i(TAG, "Campaign Data: " + campaignData);
mTracker.send(new HitBuilders.ScreenViewBuilder()
.setCampaignParamsFromUrl(campaignData)
.build()
);
break;
}
case "E":
{
Log.i(TAG, "Campaign Data E ----------------------");
String campaignData = "http://examplepetstore.com/index.html?" +
"utm_source=google&utm_medium=google_link&utm_campaign=allE" +
"&utm_content=email_variation_E";
Log.i(TAG, "Campaign Data: " + campaignData);
mTracker.send(new HitBuilders.ScreenViewBuilder()
.setCampaignParamsFromUrl(campaignData)
.build()
);
break;
}
default:
Log.i(TAG, "Campaign Data: Default");
}
But I could not see the campaign information on the GA website: https://www.google.com/analytics/web
It should be on Acquisition-> Campaigns-> All Campaigns But my site did not have the Campaigns category.
Can anyone find out what happened?
Thanks for your kind help.
BR Brian