Obtenir des références après l’installation de l’application depuis Android Market

J’essaie d’enregistrer un récepteur de diffusion qui capte les intentions “com.android.vending.INSTALL_REFERRER” lancées par Android après l’installation d’une application depuis le marché.

Je suis les détails ici: http://code.google.com/mobile/analytics/docs/android/#referrals

Cependant, je ne peux pas utiliser Google Analytics et j’ai donc créé ma propre solution. J’ai ajouté les éléments suivants à mon fichier manifeste:

     

et créé une classe BroadcastReceiver de base:

 public class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); Ssortingng referrerSsortingng = extras.getSsortingng("referrer"); Log.w("TEST", "Referrer is: " + referrerSsortingng); } } 

Cependant, lorsque l’application est installée, le récepteur ne semble pas comprendre l’intention (si même l’intention est diffusée?) Et je n’obtiens aucune sortie de journalisation.

Est-ce que je me trompe quelque part ou est-ce que le marché ne lance plus ces intentions lorsqu’une application est installée?

Je voudrais essayer d’aider qui, comme moi, ne parvient pas à faire fonctionner install_referrer et qui ne trouve AUCUNE information utile sur ces fonctionnalités.

Remarques:

  1. L’intention com.android.vending.INSTALL_REFERRER sera com.android.vending.INSTALL_REFERRER lors du processus d’installation, et non lors du premier démarrage de l’application.
  2. Le referrer … extras.getSsortingng("referrer") .. est corrigé mais le contenu peut être n’importe quelle valeur de chaîne qui respecte la syntaxe http get … referrer=thatsthevalue&thisisnot=xxx

Le code ci-dessus est correct, juste quelques explications pour compléter les informations:

  1. Manifeste Android Les balises doivent être à l’intérieur des balises .
  2. L’URL correcte pour relier le marché n’est pas le résultat des fameux formulaires google dans sdk

mais celui-ci

http://market.android.com/details?id=your.application.package.name&referrer=my_referrer_finally_works_fine

De toute évidence, vous devez suivre le lien à partir de l’appareil mobile et la seule façon de procéder à un test complet est de publier une application de test sur le marché.

Et une note finale et personnelle.

Je ne comprends pas pourquoi ces informations sont omises complètement et j’espère que Google agira pour le détailler.

Cela pourrait être un peu tard, mais vous POUVEZ tester le référent d’installation sans utiliser Google Play, utilisez simplement ADB 🙂

Exécutez ceci depuis adb.exe

 adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n your.package/path.to.your.BroadcastReceiver --es "referrer" "test_referrer=test" 

Si vous avez configuré la journalisation dans votre BroadcastReceiver, vous le verrez apparaître dans LogCat.

J’espère que cela t’aides!

Bon alors j’ai trouvé la raison pour laquelle l’intention n’était pas lancée. Apparemment, vous DEVEZ utiliser les mêmes noms de parameters que ceux décrits ici: http://code.google.com/mobile/analytics/docs/android/#referrals

Vous ne pouvez pas utiliser vos propres noms de parameters comme je le faisais: S

Je pense que ces réponses doivent avoir été écrites avant Android 3.1 – parce que les choses ont changé de la même manière.

Le système marque désormais l’application comme étant inactive lorsqu’elle est installée – elle ne recevra ni INSTALL_REFERRER ni aucune autre diffusion tant que l’utilisateur n’activera pas l’application en l’exécutant (ou en plaçant un widget).

Je suis d’accord que la documentation de Google n’est pas la meilleure. Cependant, je n’ai pu que déclencher l’intention en téléchargeant l’application sur le Market Place, puis en la téléchargeant / installant. L’intention est lancée immédiatement après le téléchargement / instal – l’utilisateur n’a pas à démarrer l’application. Je l’utilise également pour démarrer un service d’arrière-plan.

S’il vous plaît noter que ce n’est pas la première intention de départ, mais seulement une intention liée au marché Android qui est envoyé mon Google Android Market. Si vous installez l’application via une ressource différente de celle du marché Android, elle ne se déclenche pas.

Utilisez le lien que vous pouvez créer ici: http://code.google.com/mobile/analytics/docs/android/#android-market-tracking obtenez le référent de l’intention et démontez-le pour obtenir les différents parameters

 referrer = intent.getSsortingngExtra("referrer"); Map params = Toolbox.getQueryMap(referrer); 

PS Vous n’avez pas besoin de lire pour lire le deviceid / IMEI pour ce faire, comme le font certaines applications. Vous ne devriez pas vouloir espionner vos utilisateurs.

En fait, il pourrait y avoir des liens comme market: // … ou http: // market … ou bien fonctionnent bien. De plus, peu importe le type de parameters qui se trouvera dans le champ référent. Cela fonctionne bien avec n’importe quel texte là.

Le problème principal que ce type d’événement “com.android.vending.INSTALL_REFERRER” n’envoie pas par diffusion. Cet événement ne concerne que l’application installée.

UPD: Et il n’y a qu’une seule façon de le tester: déployez votre application sur le marché, puis installez-la sur le téléphone.

Utilisez l’ API de référence de Google Play (à partir du 20 novembre 2017) très facilement et en toute sécurité