Obtenez l'étiquette de référence Google Analytics Android

Nous envisageons d'utiliser Google Analytics pour suivre les références de diffusion d'annonces, via Android Market, à notre application.

Selon la documentation de Google, la balise de référence se manifeste par une intention et est automatiquement enregistrée par la bibliothèque Google Analytics.

C'est génial, mais nous devons extraire cette étiquette de référence pour nos propres analyses internes. La documentation est timide sur les détails sur la façon de l'extraire de l'intention de lancement initiale, et des instructions sur la façon de simuler cela avant de se lancer.

Est-ce que quelqu'un a de l'expérience avec ça?

  • Android Lien vers le marché à partir d'une autre application
  • Dans l'arrière-plan, vérifiez le Play Store pour déterminer si une application est disponible pour téléchargement sur l'appareil
  • Qu'est-ce que la publicité promotionnelle et graphique dans Android Market / Play Store?
  • Comment puis-je transférer une de mes applications Android vers un autre compte Android Developer (pas le mien)
  • "Cette application est disponible pour plus de 0 périphériques".
  • Recherche de morceaux de musique de Google Play Store via une API
  • Graphique de tailles d'écran mises à jour
  • Impossible de télécharger un nouveau fichier APK sur Android Play Store
  • 3 Solutions collect form web for “Obtenez l'étiquette de référence Google Analytics Android”

    Je suis allé de l'avant et j'ai publié une application de recherche de pixels morts pour jouer avec l'intuition sur l'intention. Pour une raison quelconque, lorsque j'ai enregistré deux récepteurs de diffusion différents (c'est-à-dire com.google.android.apps.analytics.AnalyticsReceiver et le mien), je ne l'ai jamais reçu seul.

    Donc, je n'ai enregistré que mon propre destinataire, je traite les informations et je l'ai transmis à Google Analytics. Je ne sais pas comment c'est kosher, mais ça marche. Le code suit.

    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); } } 

    Ensuite, lorsque votre application est effectivement lancée, vous pouvez retirer la valeur des préférences partagées et les transmettre avec l'inscription de l'utilisateur ou autre. J'ai utilisé la balise de campagne pour mes besoins, mais vous pouvez saisir tous les paramètres que vous voulez de la chaîne de références créée avec cet outil .

    La réponse @DougW a été mise à jour pour SDK 4 d'Analytics

    https://developers.google.com/analytics/devguides/collection/android/v4/campaigns

     import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import com.google.android.gms.analytics.CampaignTrackingReceiver; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.LinkedHashMap; import java.util.Map; /** * Created by dave on 15-05-05. */ public class ReferrerReceiver extends BroadcastReceiver { public static final String REFERRER = "REF"; public static final String UTM_CAMPAIGN = "utm_campaign"; public static final String UTM_SOURCE = "utm_source"; public static final String UTM_MEDIUM = "utm_medium"; public static final String UTM_TERM = "utm_term"; public static final String UTM_CONTENT = "utm_content"; private final String[] sources = { UTM_CAMPAIGN, UTM_SOURCE, UTM_MEDIUM, UTM_TERM, UTM_CONTENT }; @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); String referrerString = extras.getString("referrer"); try { Map<String, String> getParams = getHashMapFromQuery(referrerString); SharedPreferences preferences = context .getSharedPreferences(REFERRER, Context.MODE_PRIVATE); SharedPreferences.Editor preferencesEditor = preferences.edit(); for (String sourceType : sources) { String source = getParams.get(sourceType); if (source != null) { preferencesEditor.putString(sourceType, source); } } preferencesEditor.commit(); } catch (UnsupportedEncodingException e) { Log.e("Referrer Error", e.getMessage()); } finally { // Pass along to google CampaignTrackingReceiver receiver = new CampaignTrackingReceiver(); receiver.onReceive(context, intent); } } public static Map<String, String> getHashMapFromQuery(String query) throws UnsupportedEncodingException { Map<String, String> query_pairs = new LinkedHashMap<String, String>(); String[] pairs = query.split("&"); for (String pair : pairs) { int idx = pair.indexOf("="); query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8")); } return query_pairs; } } 

    Dans votre fichier manifeste:

      <service android:name="com.google.android.gms.analytics.CampaignTrackingService" /> <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver" /> <!-- Make sure this points to the location of Referrer Receiver in your package --> <receiver android:name=".ReferrerReceiver" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver> 

    Vérifiez à:

    Obtenir un référent après l'installation d'une application depuis Android Market

    Pour les solutions.

    Tobia

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.