Ottieni referrer dopo l'installazione di app da Android Market

Sto provando a registrare una ricevente di trasmissione che cattura gli intenti "com.android.vending.INSTALL_REFERRER" lanciati da Android dopo l'installazione di un'applicazione dal Mercato.

Sto seguendo i dettagli qui: http://code.google.com/mobile/analytics/docs/android/#referrals

  • La connessione a adb è scesa e si è verificato un grave errore
  • Android: Disegna Bitmap in posizione specifica, rifiuto di disegnare
  • onKeyDown () o onBackPressed ()
  • UnsatisfiedLinkError su Android 5.0 Lollipop
  • Comportmento strano con sensore di orientamento android
  • VideoView all'interno del frammento causa sfumatura dello schermo nero
  • Tuttavia, non posso utilizzare Google Analytics per cui ho creato la mia soluzione. Ho aggiunto quanto segue al mio file manifesto:

    <receiver android:name="com.test.Receiver" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver> 

    e ha creato una class Basic BroadcastReceiver:

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

    Tuttavia, quando l'applicazione è installata, il ricevitore non sembra catturare l'intento (se l'intento è anche trasmesso?) E non ottengo alcuna output di logging.

    Mi sto andando male o è il Mercato che non lancia più questi intenti quando viene installata un'applicazione?

  • Imansible creare un collegamento dinamico Firebase dinamico -> Errore collegamento dinamico 7: Proibito
  • Come gestire la notifica quando app in background in Firebase
  • Phonegap / Cordova whitelisted cross domain SSL non funzionava dopo l'esportzione di APK
  • Uso di Android Youtube API per riprodurre i flussi in diretta
  • Come risolvere un conflitto di libreria (apache commons-codec)
  • Le impostazioni dello sviluppatore di Android 4.2 non sono ancora disponibili
  • 7 Solutions collect form web for “Ottieni referrer dopo l'installazione di app da Android Market”

    Cercherò di aiutare chi, come me, non riesce a fare il lavoro di install_referrer e che non trova alcuna informazione utile su queste funzionalità.

    Gli appunti:

    1. L'intento com.android.vending.INSTALL_REFERRER verrà intercettato durante il process di installazione, non quando l'applicazione viene avviata per la prima volta.
    2. Il referrer … extras.getString("referrer") .. è fisso ma il contenuto può essere qualsiasi valore di string che rispetti la syntax http get … referrer=thatsthevalue&thisisnot=xxx

    Il codice di cui sopra è giusto, solo alcune spiegazioni per completare le informazioni:

    1. Manifesto Android. I tag <receiver> devono trovarsi all'interno dei tag <application> .
    2. L'URL corretto per colbind il mercato non è il risultato delle famose forms google in sdk

    ma questo

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

    Ovviamente, è necessario seguire il collegamento dal dispositivo mobile e l'unico modo per un test completo è quello di pubblicare un'applicazione di prova sul mercato.

    E una nota finale e personale.

    Non capisco perché queste informazioni sono completamente omesse e spero che Google agisca per averne dettagliato.

    Questo potrebbe essere un po 'in ritardo, ma puoi testare il referrer di installazione senza utilizzare Google Play, basta utilizzare ADB 🙂

    Esegui questo da adb.exe

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

    Se si dispone dell'installazione di logging nel BroadcastReceiver, lo vedrai in popup in LogCat.

    Spero che questo ti aiuti!

    Okay quindi ho trovato il motivo per cui l'intento non è stato lanciato. A quanto pare è necessario utilizzare gli stessi nomi dei parametri descritti qui: http://code.google.com/mobile/analytics/docs/android/#referrals

    Non puoi usare i nomi dei tuoi parametri come stavo facendo: S

    Penso che queste risposte debbano essere state scritte pre-Android 3.1 – perché le cose sono cambiate in un modo importto.

    Il sistema ora riconosce l'applicazione come intriggers quando sono installati – non riceveranno INSTALL_REFERRER o qualsiasi altra trasmissione finché l'utente non esegua l'applicazione in modo esplicito eseguendolo (o inserendo widget).

    Accetto che la documentazione di Google non sia la migliore. Tuttavia, ho solo potuto get l'intenzione di sparare effettivamente caricando l'applicazione sul Market Place e poi scaricandola / installandola. L'intento viene avviato immediatamente dopo il download / installazione – l'utente non deve avviare l'applicazione. Sto usando questo per avviare anche un servizio di background.

    Si prega di notare che questo non è la prima intenzione di iniziare ma solo un intento di mercato Android che viene inviato il mio google android mercato. Se si installa l'applicazione attraverso una risorsa diversa rispetto al mercato Android non verrà sparato.

    Utilizza il link che puoi build lì: http://code.google.com/mobile/analytics/docs/android/#android-market-tracking ottieni il referente dall'intento e lo distingui per get i diversi parametri

     referrer = intent.getStringExtra("referrer"); Map<String, String> params = Toolbox.getQueryMap(referrer); 

    PS Non è necessario leggere per leggere il deviceid / IMEI per farlo, come fanno alcune applicazioni. Non dovresti voler spiegare i tuoi utenti.

    In realtà ci potrebbero essere dei collegamenti come il mercato: // … o http: // market … o funzionano bene. Inoltre non import quali tipi di parametri saranno nel field referrer. Funziona bene con qualsiasi text in esso.

    Il problema principale che questo tipo di evento "com.android.vending.INSTALL_REFERRER" non invia per trasmissione. Questo evento va SOLO nell'applicazione appena installata.

    UPD: E c'è solo un modo per testarlo – distribuire l'applicazione nel Market e installarla sul telefono.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.