7

Ich habe Google Analytics Kampagne Messung nach this guide implementiert. Dann möchte ich testen, ob alles gut funktioniert, indem Sie this guide folgen.Android - Mit Google Analytics v4 Kampagne Messung

Ich habe diese auf AndroidManifest.xml hinzugefügt:

<meta-data android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 
<meta-data android:name="com.google.android.gms.analytics.globalConfigResource" 
     android:resource="@xml/global_tracker" /> 

<!-- Used for Google Play Store Campaign Measurement-->; 
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" /> 
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver" 
    android:exported="true"> 
    <intent-filter> 
     <action android:name="com.android.vending.INSTALL_REFERRER" /> 
    </intent-filter> 
</receiver> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

Und diese MainActivity.java auf setzen:

public enum TrackerName { 
    APP_TRACKER, // Tracker used only in this app. 
    GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking. 
    ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company. 
} 

HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); 

synchronized Tracker getTracker(TrackerName trackerId) { 
    if (!mTrackers.containsKey(trackerId)) { 
     GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
     Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker("UA-xxxxxxxx-1") 
       : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker) 
       : analytics.newTracker("UA-xxxxxxxx-1"); 
     mTrackers.put(trackerId, t); 
    } return mTrackers.get(trackerId); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    GoogleAnalytics.getInstance(this).getLogger().setLogLevel(Logger.LogLevel.VERBOSE); 

    // Get tracker. 
    Tracker t = getTracker(TrackerName.APP_TRACKER); 

    // Set screen name. 
    t.setScreenName("Test Track"); 

    // Send a screen view. 
    t.send(new HitBuilders.AppViewBuilder().build()); 
} 

Wenn ich unter Befehl ausführen:

adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n com.example.gatestapp/com.google.android.gms.analytics.CampaignTrackingReceiver --es "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign" 

Ich habe diese Antwort:

Broadcast completed: result=0 

und diese auf meinem Logcat:

I/GAV4﹕ Thread[GAThread,5,main]: Campaign found: utm_source=testSource 

Aber ich habe keine Ahnung, wie die utm_source in einen String zu sammeln, so Ich kann den Wert "testSource" haben.

So habe ich versucht, Individuellen Empfänger mit:

public class CustomReceiver extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     handleIntent(context, intent); 
     Log.d("YES", "IT WORKS!!"); 
     new CampaignTrackingReceiver().onReceive(context, intent); 
    } 

    // Handle the intent data 
    public void handleIntent(Context context, Intent intent) { 
     String referrer = intent.getStringExtra("referrer"); 
     Log.d("YEES", "IT WORKS!!!"); 
    } 
} 

auf AndroidManifest.xml dazu meinen den Empfänger-Tag geändert:

<receiver android:name=".app.service.CustomReceiver" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="com.android.vending.INSTALL_REFERRER" /> 
     </intent-filter> 
</receiver> 

und den Befehl adb shell mit diesem ändern:

adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n com.example.gatestapp/.app.service.CustomReceiver --es "referrer" "utm_source=testSource&utm_medium=testMedium&utm_term=testTerm&utm_content=testContent&utm_campaign=testCampaign" 

Die Sendung war Erfolg, aber meine CustomReceiver fängt nichts! Keine von "JA" oder "JA" auf Logcat. Außerdem wurde in Google Analytics kein Treffer gefunden. Ist irgendetwas mit meiner Methode nicht in Ordnung? Wie sammle ich die Referrer Extras?

EDIT:

Ich habe erfolgreich sammeln die Referrer Extras von SharedPreferences verwenden. Jedoch, wenn ich meine App im Play Store veröffentliche, scheint Referrer Extrasfehlt. Ich bin mir sicher, dass ich alles richtig gemacht habe, da ich URL Builder benutzt habe. Ich habe auch einige App-Demo wie die in this tutorial versucht, aber es funktioniert nicht. Mein Gerät erhält keine Extras.

Mache ich einen falschen Ansatz? Oder habe ich etwas verpasst?

Antwort

3

Erstens, war Ihr Paketname "com.example.gatestapp"? weil das, was du im adb-Befehl geschrieben hast. Zweitens, haben Sie Ihren "app.service.CustomReceiver" vor den "CampaignTrackingReceiver" im Manifest gestellt?Vielleicht wird die Absicht von CampaignTrackingReceiver abgefangen und nicht von Ihrem Empfänger.

I secceeded die refferels in benutzerdefinierten von Broadcast zu bekommen:

Bundle extras = intent.getExtras(); 
String referrerString = extras.getString("referrer"); 
1

ich Ihnen sehr nützlich Frage finden für diese Funktion zu replizieren.

Das Problem scheint auf den Namen des Pakets zu sein, ich folgte genau dem gleichen Verfahren.

android_manifest.xml

<receiver 
     android:name="co.tpaga.poc.referer.poc_installreferer.CustomInstallRefererReceiver" 
     android:enabled="true" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="com.android.vending.INSTALL_REFERRER" /> 
     </intent-filter> 
    </receiver> 

Der adb Befehl lautet:

echo 'am broadcast \ 
-a com.android.vending.INSTALL_REFERRER \ 
-n "co.tpaga.poc.referer.poc_installreferer/co.tpaga.poc.referer.poc_installreferer.CustomInstallRefererReceiver" \ 
--es "referrer" \ 
    "utm_source=test_source&utm_medium=test_medium&utm_term=test_term&utm_content=test_content&utm_campaign=test_name&tappsi_uuid=04442-123123-213213-2323"; \          
exit' | ./adb shell 

Und die logcat Ausfahrt ist:

03-22 21:58:04.469 22340-22340/co.tpaga.poc.referer.poc_installreferer D/YEES: IT WORKS!!!utm_source=test_source&utm_medium=test_medium&utm_term=test_term&utm_content=test_content&utm_campaign=test_name 
03-22 21:58:04.469 22340-22340/co.tpaga.poc.referer.poc_installreferer D/YES: IT WORKS!! 
03-22 21:58:04.477 22340-22394/co.tpaga.poc.referer.poc_installreferer D/GAv4: Received installation campaign: content=test_content, keyword=test_term, medium=test_medium, name=test_name, source=test_source 
Verwandte Themen