Uno degli strumenti di marketing più efficaci è sicuramente il passaparola. La prova sociale è uno stimolo molto potente quando si tratta di prendere decisioni. Mentre la gente ignora facilmente la pubblicità tradizionale, poche persone tendono a ignorare i consigli di una fonte attendibile, come un amico.
Nel 2011, Google e Ipsos OTX hanno condotto un sondaggio che ha rivelato risultati interessanti. Se le raccomandazioni sono integrate da buoni sconto che i destinatari possono riscattare, la probabilità che essi scarichino l'app o inizieranno a utilizzarli nuovamente è molto più alta. Questo è qualcosa che gli sviluppatori e gli editori di app potrebbero voler tenere a mente.
La verità è che pochissimi editori e sviluppatori di app per dispositivi mobili utilizzano un sistema di riferimento basato su raccomandazioni. Il motivo è quasi sempre tecnico. Tenere traccia dei codici di sconto, implementare il deep linking nelle app e impostare un back-end sono alcuni degli ostacoli che gli sviluppatori devono prendere per farlo funzionare. Di conseguenza, la maggior parte delle persone non si preoccupa o si arrende.
Fortunatamente, Google ha sviluppato un sistema che supera questi ostacoli, App invita. Con App Invites, Google offre una potente interfaccia attraverso la quale gli sviluppatori possono far crescere il pubblico della propria app mobile consentendo agli utenti esistenti di invitare i propri contatti a provare l'app.
App invita è inclusa nei servizi di Google Play ed è disponibile anche su iOS. Ottimizza le tariffe di installazione dell'app riducendo l'attrito e fornendo un contesto, ad esempio le informazioni generali dell'app e la relativa valutazione sull'app store, in ogni fase del flusso di invito degli utenti.
In questo tutorial, ti mostrerò come implementare questo potente strumento nella tua applicazione Android.
Utilizzerò un progetto molto semplice per mostrarti come condividere gli inviti per la tua app. La prima cosa che devi fare è creare un nuovo progetto. In Android Studio, scegli File> Nuovo> Nuovo progetto. Assegna un nome alla tua app e imposta il dominio web della tua azienda per consentire a Android Studio di definire il nome del pacchetto della tua app.
La versione minima dell'SDK supportata dall'app può essere pari a quella di Android Gingerbread (livello API 9). Ciò significa che puoi scegliere come target quasi tutti i dispositivi con Android, il 99,97% al momento della scrittura. Tuttavia, tieni presente che gli inviti alle app funzionano solo su dispositivi che includono il Play Store di Google poiché si basa sul plug-in dei servizi di Google Play.
Genera uno spazio vuoto Attività
e nominalo MainActivity.java.
Con il nuovo progetto aperto in Android Studio, apri il Progetto scheda a sinistra ed espandi Script Gradle. Contiene due file con lo stesso nome, build.gradle. Il primo file è il build.gradle di primo livello. Il secondo file è il build.gradle a livello di app.
Apri il livello superiore build.gradle e aggiungi il seguente classpath
per i servizi di Google Play.
classpath "com.google.gms: google-services: 1.5.0-beta2"
Apri il livello dell'app build.gradle e aggiungere le seguenti dipendenze di compilazione ad esso.
compile 'com.android.support:support-v4:23.1.1' compila 'com.android.support:design:23.1.1' compila 'com.google.android.gms: play-services: 8.3.0'
Per abilitare il plug-in per i servizi di Google Play, aggiungi la seguente riga di seguito applica il plugin: "com.android.application"
.
applica il plug-in: "com.google.gms.google-services"
Android Studio ti chiederà di sincronizzare i file di progetto. Prima di te, comunque, apri AndroidManifest.xml e aggiungi la versione dei servizi di Google Play all'interno di applicazione
etichetta.
Salva le modifiche e clicca Sincronizza ora. Non abbiamo ancora finito. Android Studio genera un errore che ti informa che il plug-in per i servizi di Google Play richiede un file di configurazione, google-services.json. Risolviamolo ora.
Devi prima visitare il sito web di Google Developers per abilitare i servizi Google per la tua app. Il progetto viene quindi aggiunto alla tua console per sviluppatori personale, il che significa che devi essere autenticato come utente Google prima di procedere.
Inserisci il nome che hai scelto per la tua app e specifica il nome del pacchetto. Se non ricordi il nome del pacchetto dell'app, quindi apri il livello dell'app build.gradle. Puoi trovarlo sotto defaultConfig> applicationId.
Compila il resto del modulo e fai clic sul pulsante in basso con l'etichetta Scegli e configura i servizi.
La parte successiva è un po 'più complicata. Google ti chiederà l'impronta digitale del certificato. Per ottenere l'impronta digitale del certificato, è necessario aprire la riga di comando ed eseguire il seguente comando.
keytool -exportcert -list -v \ -alias-keystore
Ci sono due possibili scenari:
Se stai testando la tua app in locale, il nome della chiave è androiddebugekey
e la sua posizione predefinita è % USERPROFILE% \. Android \ debug.keystore
su Windows e ~ / .Android / debug.keystore
su sistemi Unix, come OS X e Linux. Questo è l'aspetto del comando per il test locale.
keytool -exportcert -list -v \ -alias androiddebugkey -keystore ~ / .android / debug.keystore
Il keytool l'utility ti chiederà di inserire una password. La password predefinita per il keystore di debug è androide. Questo produrrà l'impronta digitale SHA1 del tuo certificato di debug, che assomiglia a qualcosa del genere.
Impronta digitale certificato: SHA1: DA: 39: A3: EE: 5E: 6B: 4B: 0D: 32: 55: BF: EF: 95: 60: 1H: 90: AF: D8: 07: 09.
Tuttavia, se hai bisogno del certificato di rilascio impronta digitale, quindi è necessario specificare il nome del certificato, la posizione e la password.
Dopo aver inserito l'impronta digitale del certificato, è possibile abilitare App Invites facendo clic su Abilita inviti alle app pulsante in basso. Ora dovresti essere in grado di scaricare il file di configurazione facendo clic Scarica google-services.json.
Per completare questo passaggio, copia il file scaricato su app / o mobile/ directory del tuo progetto.
Con il progetto configurato, siamo pronti per il prossimo passo. Per il launcher Attività
, definire un layout semplice come quello mostrato di seguito. Contiene un pulsante e un'etichetta.
Il risultato dovrebbe essere simile a questo.
Nel onCreate
metodo il Attività principale
classe, aggiungi un onCreateListener
al pulsante.
button = findViewById (R.id.invite); button.setOnClickListener (new View.OnClickListener () @Override public void onClick (View v) // fai qualcosa, vero?);
L'invito verrà inviato come un Intento
. È possibile specificare un messaggio che gli utenti possono personalizzare prima di inviare gli inviti ai propri amici. Puoi anche impostare un invito all'azione, un'immagine di sfondo e un link diretto che l'app può gestire una volta ricevuto l'invito. È anche possibile definire la versione minima dell'SDK (setAndroidMinimumVersionCode
) e un ID applicazione di destinazione per altre piattaforme, come iOS (setOtherPlatformsTargetApplication
).
Crea il Intento
nel corpo del al clic
metodo.
Intent intent = new AppInviteInvitation.IntentBuilder (INVITATION_TITLE) .setMessage (INVITATION_MESSAGE) .setCallToActionText (INVITATION_CALL_TO_ACTION) .build (); startActivityForResult (intent, REQUEST_INVITE);
Aggiungi le seguenti stringhe per far funzionare tutto questo.
private static final String INVITATION_TITLE = "Chiama i tuoi amici", INVITATION_MESSAGE = "Ehi, vorresti ottenere uno sconto del 50% per questa fantastica app? :)", INVITATION_CALL_TO_ACTION = "Condividi";
Questo è tutto ciò che c'è da fare. Quando il Intento
è iniziato, una consuetudine Attività
mostra che consente all'utente di scegliere come desidera inviare l'invito (e-mail o messaggio di testo), il messaggio dell'invito e i destinatari.
L'intento è iniziato chiamando startSubActivity
. È possibile recuperare il risultato dell'intento. Una volta che l'utente ha premuto il pulsante di invio, vengono riportati all'attività che ha avviato l'intento. In quel momento, puoi fare tutto il necessario in onActivityResult
, come nascondere il pulsante o tracciare gli inviti attraverso l'analisi.
@Override protetto void onActivityResult (int requestCode, int resultCode, Intent data) super.onActivityResult (requestCode, resultCode, data); if (requestCode == REQUEST_INVITE) if (resultCode == RESULT_OK) // Hai inviato correttamente l'invito, // possiamo chiudere il pulsante. button.setVisibility (View.GONE); String [] ids = AppInviteInvitation.getInvitationIds (resultCode, data); StringBuilder sb = new StringBuilder (); sb.append ("Inviato") .append (Integer.toString (ids.length)). append ("inviti:"); for (ID stringa: ids) sb.append ("["). append (id) .append ("]"); Log.d (getString (R.string.app_name), sb.toString ()); else // L'invio non è riuscito o è stato annullato utilizzando il pulsante indietro showMessage ("Mi dispiace, non sono stato in grado di inviare gli inviti");
Quando un utente riceve l'invito e fa clic sul collegamento incluso, il flusso di invito si dirama in base al fatto che l'app sia già installata o meno sullo smartphone del destinatario. Se l'app è già presente, riceverà automaticamente un Intento
contenente i dati del link diretto facoltativo.
Tuttavia, se il destinatario non ha installata l'app, gli viene data la possibilità di farlo. Quando l'app viene avviata per la prima volta, l'app riceverà un Intento
contenente i dati del deep link. In questo modo, lo sconto che potresti voler fornire sarà sempre a disposizione del destinatario. Questo supera i problemi di cui abbiamo parlato prima.
Esploriamo il collegamento profondo in modo più dettagliato. Impostare il collegamento profondo del Intento
abbiamo creato nel onCreate
metodo.
Intent intent = new AppInviteInvitation.IntentBuilder (INVITATION_TITLE) .setMessage (INVITATION_MESSAGE) .setDeepLink (Uri.parse ("tutsplus: //code.coupon/50")) .setCallToActionText (INVITATION_CALL_TO_ACTION) .build ();
La prima cosa che devi fare per gestire i link diretti personalizzati è comunicare alla tua app come sono fatti e quali Attività
dovrebbe prendersi cura di loro. Aggiungi un nuovo Attività
al tuo progetto e nominalo DetailsActivity.
Aperto AndroidManifest.xml e aggiungi il seguente snippet al
etichetta.
Stiamo dicendo al sistema quanto segue. Se invoca l'azione VISTA su un URL il cui schema è tutsplus e il cui ospite è code.coupon, la tua app può gestirla usando il DetailsActivity
classe.
Per ricevere e analizzare l'URL personalizzato, devi prima creare una gestione automatica GoogleApiClient
con accesso ad App Invites. Lo facciamo nel onCreate
metodo del Attività principale
classe.
GoogleApiClient googleApiClient = new GoogleApiClient.Builder (this) .addApi (AppInvite.API) .enableAutoManage (questo, nuovo GoogleApiClient.OnConnectionFailedListener () @Override public void onConnectionFailed (ConnectionResult connectionResult) Log.d (getString (R.string.app_name ), "onConnectionFailed:" + connectionResult); showMessage ("Mi dispiace, la connessione non è riuscita.");) .build ();
Per verificare gli inviti e avviare il link diretto Attività
, puoi usare il getInvitation
metodo, che è stato introdotto nei servizi di Google Play 8.3. Aggiungi il seguente snippet di codice al file onCreate
metodo del Attività principale
classe.
AppInvite.AppInviteApi.getInvitation (googleApiClient, this, true) .setResultCallback (nuovo ResultCallback() @Override public void onResult (risultato AppInviteInvitationResult) );
Impostazione dell'ultimo parametro del metodo su vero
dice al plugin di chiamare automaticamente l'attività responsabile della gestione del deep link, il DetailsActivity
classe nel nostro esempio. Questo è il motivo per cui il corpo del onResult
il metodo è vuoto.
Aperto activity_details.xml e aggiungi due TextView
oggetti come mostrato di seguito.
Avanti, aperto DetailsActivity
e scavalcare il onStart
metodo. Per verificare se il Intento
contiene dati di link profondi, devi fare affidamento sul hasReferral
metodo. L'analisi dell'URL è molto semplice, come puoi vedere qui sotto.
@Override protected void onStart () super.onStart (); Intento intent = getIntent (); if (AppInviteReferral.hasReferral (intent)) // Estrai le informazioni dalla Intent String deepLink = AppInviteReferral.getDeepLink (intent); Log.d (getString (R.string.app_name), "Found Referral:" + AppInviteReferral.getInvitationId (intent) + ":" + deepLink); String [] array = deepLink.split ("/"); if (array.length> 0) TextView tv = (TextView) findViewById (R.id.discount); tv.setText (String.format (tv.getText (). toString (), array [array.length-1]));
In questo articolo, hai imparato come implementare gli App Invites di Google nella tua app, utilizzando il plug-in dei servizi di Google Play. Questo strumento ti consente di aumentare il pubblico della tua app consentendo agli utenti di inviare inviti ai propri contatti Google. Ora dovresti essere in grado di sviluppare un sistema di riferimento sfruttando App Invites, consentendo agli utenti di consigliare la tua app ai propri amici utilizzando inviti contestuali personalizzati.