Ich ging voran und veröffentlichte eine tote Pixel-Finder-App, um mit Snooping auf die Absicht zu spielen. Aus irgendeinem Grund, als ich zwei verschiedene Rundfunkempfänger (zB com.google.android.apps.analytics.AnalyticsReceiver und meine eigenen) registriert habe, habe ich sie nie alleine empfangen.
Also habe ich nur meinen eigenen Empfänger registriert, verarbeitet die Informationen und übergibt sie an Google Analytics. Ich weiß nicht, wie koscher das ist, aber es funktioniert. Code folgt.
public class ZSGoogleInterceptor extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String referrerString = extras.getString("referrer");
// Next line uses my helper function to parse a query (eg "a=b&c=d") into key-value pairs
HashMap<String, String> getParams = Utility.getHashMapFromQuery(referrerString);
String source = getParams.get("utm_campaign");
if (source != null) {
SharedPreferences preferences = context.getSharedPreferences("my_prefs", Context.MODE_PRIVATE);
Editor preferencesEditor = preferences.edit();
preferencesEditor.putString("ga_campaign", source);
preferencesEditor.commit();
}
// Pass along to google
AnalyticsReceiver receiver = new AnalyticsReceiver();
receiver.onReceive(context, intent);
}
}
Dann, wenn Ihre Anwendung tatsächlich gestartet wird, können Sie den Wert wieder aus den gemeinsam genutzten Präferenzen ziehen und zusammen mit Benutzern Anmeldungen oder was auch immer passieren. Ich habe das Kampagnen-Tag für meine Zwecke verwendet, aber Sie können alle Parameter, die Sie möchten, aus der Referrer-Zeichenfolge abrufen, die erstellt wurde with this tool.
Der Grund mehr als einen Empfänger doesn' t Arbeit ist, dass Sie nicht mehr als einen Empfänger für denselben Intent-Filter registrieren können. Dies ist der Punkt der verwirrenden Dokumentation hier - http://code.google.com/apis/analytics/docs/mobile/android.html#google-play-tracking - die besagt, dass Sie nicht mehr haben können als eine von * jeder * Art von BroadcastReceiver in einer Anwendung, was natürlich nicht wahr ist. –
@DaveSims - Ja, sie haben diese Notiz hinzugefügt, lange nachdem ich diesen Beitrag gemacht habe. Nicht besonders klar, aber stimme ich zu. – DougW
@DougW meine que ist, wie ich kann ich von diesem Link "http://market.android.com/details?id=com.lifestreet.android.TestInstallationIntent&refrer=bb%3DAAAAAAAAAA&feature=search_result" referre = bb nehme an, ich habe hinzufügen in der Menifest-Code vier Zeilen von Standard-google dieser com.google.android.apps.analytics.AnalyticsReceiver ich brauche extra in meinem Code – Khan