Eines der effektivsten Marketinginstrumente ist definitiv Mundpropaganda. Social Proof ist ein sehr starker Anreiz für die Entscheidungsfindung. Während die Leute traditionelle Werbung leicht ignorieren, ignorieren nur wenige Menschen den Rat einer vertrauenswürdigen Quelle, beispielsweise eines Freundes.
Im Jahr 2011 führten Google und Ipsos OTX eine Umfrage durch, die interessante Ergebnisse ergab. Wenn die Empfehlungen durch Rabattgutscheine ergänzt werden, die Empfänger einlösen können, ist die Wahrscheinlichkeit, dass sie die App herunterladen oder wieder verwenden, viel höher. Dies ist etwas, was Entwickler und App-Publisher möglicherweise im Hinterkopf behalten möchten.
Die Wahrheit ist, dass nur sehr wenige Publisher und Entwickler von mobilen Apps ein Empfehlungssystem verwenden, das auf Empfehlungen basiert. Der Grund ist fast immer technischer Natur. Das Nachverfolgen von Rabattcodes, das Implementieren von Deep-Verlinkungen in Apps und das Einrichten eines Backends sind einige der Hürden, die Entwickler ergreifen müssen, um dies zu erreichen. Die meisten Menschen stören sich daher nicht oder geben nicht auf.
Glücklicherweise hat Google ein System entwickelt, das diese Hindernisse überwindet, App lädt ein. Mit App Invites bietet Google eine leistungsstarke Benutzeroberfläche, über die Entwickler die Zielgruppe Ihrer mobilen App erweitern können, indem sie bestehenden Benutzern die Möglichkeit gibt, ihre Kontakte einzuladen, um die App auszuprobieren.
App Invites ist in den Google Play-Diensten enthalten und auch für iOS verfügbar. Es optimiert die Installationsraten Ihrer App, indem es die Reibung verringert und einen Kontext bereitstellt, z. B. die allgemeinen Informationen der App und ihre Bewertung im App Store, und zwar bei jedem Schritt des Benutzereinladungsflusses.
In diesem Tutorial zeige ich Ihnen, wie Sie dieses leistungsstarke Werkzeug in Ihre eigene Android-Anwendung implementieren können.
Ich werde ein sehr einfaches Projekt verwenden, um Ihnen zu zeigen, wie Sie Einladungen für Ihre App freigeben können. Als Erstes müssen Sie ein neues Projekt erstellen. Wählen Sie in Android Studio Datei> Neu> Neues Projekt. Benennen Sie Ihre App und legen Sie die Web-Domain Ihres Unternehmens fest, damit Android Studio den Paketnamen Ihrer App definieren kann.
Die Mindest-SDK-Version, die von der App unterstützt werden kann, kann so niedrig sein wie bei Android Gingerbread (API-Level 9). Dies bedeutet, dass Sie nahezu jedes Gerät mit Android ansprechen können, 99,97% zum Zeitpunkt des Schreibens. Beachten Sie jedoch, dass App Invites nur auf Geräten funktioniert, die den Play Store von Google enthalten, da sie auf dem Google Play-Services-Plugin basieren.
Erzeugen Sie ein Leerzeichen Aktivität
und nennen Sie es MainActivity.java.
Öffnen Sie nach dem Öffnen des neuen Projekts in Android Studio die Projekt Registerkarte links und erweitern Gradle-Skripte. Es enthält zwei Dateien mit demselben Namen, build.gradle. Die erste Datei ist das Build.gradle auf oberster Ebene. Die zweite Datei ist das Build.gradle auf App-Ebene.
Öffnen Sie die oberste Ebene build.gradle und fügen Sie folgendes hinzu Klassenpfad
für Google Play-Dienste.
Klassenpfad "com.google.gms: google-services: 1.5.0-beta2"
Öffnen Sie die App-Ebene build.gradle und fügen Sie die folgenden Abhängigkeiten zum Kompilieren hinzu.
"com.android.support:support-v4:23.1.1" kompilieren "com.android.support:design:23.1.1" kompilieren "com.google.android.gms: play-services: 8.3.0"
Fügen Sie zur Aktivierung des Google Play-Services-Plugins die folgende Zeile hinzu Plugin anwenden: 'com.android.application'
.
Plugin anwenden: "com.google.gms.google-services"
Android Studio fordert Sie auf, die Projektdateien zu synchronisieren. Bevor Sie jedoch öffnen AndroidManifest.xml und fügen Sie die Google Play-Service-Version in der hinzu Anwendung
Etikett.
Speichern Sie die Änderungen und klicken Sie auf Jetzt synchronisieren. Wir sind noch nicht fertig. Android Studio gibt einen Fehler aus, der Sie darauf hinweist, dass für das Google Play-Dienste-Plugin eine Konfigurationsdatei erforderlich ist, google-services.json. Lassen Sie uns das jetzt beheben.
Sie müssen zunächst die Website von Google Developers besuchen, um Google-Services für Ihre App zu aktivieren. Das Projekt wird dann Ihrer persönlichen Entwicklerkonsole hinzugefügt. Sie müssen sich also als Google-Benutzer authentifizieren, bevor Sie fortfahren können.
Geben Sie den Namen ein, den Sie für Ihre App gewählt haben, und geben Sie den Namen des Pakets an. Wenn Sie sich nicht an den Paketnamen der App erinnern, öffnen Sie die App-Ebene build.gradle. Sie finden es unter defaultConfig> applicationId.
Füllen Sie den Rest des Formulars aus und klicken Sie auf die Schaltfläche am unteren Rand Dienste auswählen und konfigurieren.
Der nächste Teil ist etwas kniffliger. Google fragt Sie nach dem Fingerabdruck des Zertifikats. Um den Fingerabdruck des Zertifikats zu erhalten, müssen Sie die Befehlszeile öffnen und den folgenden Befehl ausführen.
keytool -exportcert -list -v \ -alias-Schlüsselspeicher
Es gibt zwei mögliche Szenarien:
Wenn Sie Ihre App lokal testen, lautet der Schlüsselname androiddebugekey
und sein Standardspeicherort ist % USERPROFILE% \. Android \ debug.keystore
unter Windows und ~ / .android / debug.keystore
auf Unix-Systemen wie OS X und Linux. So sieht der Befehl zum lokalen Testen aus.
keytool -exportcert -list -v \ -alias androiddebugkey -keystore ~ / .android / debug.keystore
Das Keytool Das Dienstprogramm fordert Sie auf, ein Kennwort einzugeben. Das Standardkennwort für den Debug-Keystore lautet Android. Dies ergibt den SHA1-Fingerabdruck Ihres Debug-Zertifikats, der ungefähr so aussieht.
Zertifikat Fingerabdruck: SHA1: DA: 39: A3: EE: 5E: 6B: 4B: 0D: 32: 55: BF: EF: 95: 60: 1H: 90: AF: D8: 07: 09.
Wenn Sie jedoch das brauchen Freigabezertifikat Fingerabdruck, dann müssen Sie Name, Ort und Kennwort des Zertifikats angeben.
Nachdem Sie den Fingerabdruck des Zertifikats eingegeben haben, können Sie App-Einladungen aktivieren, indem Sie auf klicken App-Einladungen aktivieren Knopf am unteren Rand. Sie sollten jetzt die Konfigurationsdatei herunterladen können, indem Sie auf klicken Laden Sie google-services.json herunter.
Um diesen Schritt abzuschließen, kopieren Sie die heruntergeladene Datei in die app / oder Handy, Mobiltelefon/ Verzeichnis Ihres Projekts.
Wenn das Projekt konfiguriert ist, sind wir bereit für den nächsten Schritt. Für den Launcher Aktivität
, Definieren Sie ein einfaches Layout wie das unten gezeigte. Es enthält einen Button und ein Label.
Das Ergebnis sollte so aussehen.
In dem onCreate
Methode der Hauptaktivität
Klasse, fügen Sie ein onCreateListener
zum Button.
button = findViewById (R.id.invite); button.setOnClickListener (new View.OnClickListener () @Override public void onClick (View v) // etwas tun, werden Sie?);
Die Einladung wird als. Gesendet Absicht
. Sie können eine Nachricht angeben, die Benutzer anpassen können, bevor Sie die Einladungen an ihre Freunde senden. Sie können auch einen Handlungsaufruf, ein Hintergrundbild und einen Deep Link festlegen, den Ihre App bearbeiten kann, sobald die Einladung empfangen wurde. Sie können sogar die minimale SDK-Version definieren (setAndroidMinimumVersionCode
) und eine Zielanwendungs-ID für andere Plattformen wie iOS (setOtherPlatformsTargetApplication
).
Erstellen Sie die Absicht
im Körper der onClick
Methode.
Intent Intent = new AppInviteInvitation.IntentBuilder (INVITATION_TITLE) .setMessage (INVITATION_MESSAGE) .setCallToActionText (INVITATION_CALL_TO_ACTION) .build (); startActivityForResult (intent, REQUEST_INVITE);
Fügen Sie die folgenden Zeichenfolgen hinzu, damit dies funktioniert.
private static final String INVITATION_TITLE = "Rufen Sie Ihre Freunde an", INVITATION_MESSAGE = "Hey! Möchten Sie einen Rabatt von 50% für diese tolle App erhalten? :)", INVITATION_CALL_TO_ACTION = "Share";
Das ist alles dazu. Wenn der Absicht
wird begonnen, ein Brauch Aktivität
wird angezeigt, in dem der Benutzer auswählen kann, wie er die Einladung (E-Mail oder SMS) senden möchte, die Nachricht der Einladung und die Empfänger.
Die Absicht wird durch Aufruf gestartet startActivityForResult
. Es ist möglich, das Ergebnis der Absicht abzurufen. Sobald der Benutzer auf die Schaltfläche "Senden" geklickt hat, wird er zu der Aktivität zurückgeführt, mit der die Absicht begonnen hat. In diesem Moment können Sie alles tun, was nötig ist onActivityResult
, B. das Ausblenden der Schaltfläche oder das Verfolgen von Einladungen durch Analysen.
@Override protected void onActivityResult (int requestCode, int resultCode, Absichtsdaten) super.onActivityResult (requestCode, resultCode, data); if (requestCode == REQUEST_INVITE) if (resultCode == RESULT_OK) // Sie haben die Einladung erfolgreich gesendet, // wir können die Schaltfläche schließen. button.setVisibility (View.GONE); String [] ids = AppInviteInvitation.getInvitationIds (resultCode, data); StringBuilder sb = new StringBuilder (); sb.append ("Sent") .append (Integer.toString (ids.length)). append ("invitations:"); for (String id: ids) sb.append ("["). append (id) .append ("]"); Log.d (getString (R.string.app_name), sb.toString ()); else // Das Senden ist fehlgeschlagen oder es wurde mit der Zurück-Taste abgebrochen. showMessage ("Die Einladung konnte leider nicht gesendet werden");
Wenn ein Benutzer die Einladung erhält und auf den enthaltenen Link klickt, verzweigt der Einladungsablauf abhängig davon, ob die App bereits auf dem Smartphone des Empfängers installiert ist. Wenn die App bereits vorhanden ist, erhält sie automatisch eine Absicht
die optionalen Deep Link-Daten enthalten.
Wenn der Empfänger die App jedoch nicht installiert hat, haben sie die Möglichkeit, dies zu tun. Wenn die App zum ersten Mal gestartet wird, erhält die App eine Absicht
die tiefen Linkdaten enthalten. Auf diese Weise ist der Rabatt, den Sie anbieten möchten, für den Empfänger immer verfügbar. Dies überwindet die Probleme, über die wir zuvor gesprochen haben.
Untersuchen wir das tiefe Verknüpfen genauer. Stellen Sie den Deep Link von Absicht
wir haben im erstellt onCreate
Methode.
Intent Intent = new AppInviteInvitation.IntentBuilder (INVITATION_TITLE) .setMessage (INVITATION_MESSAGE) .setDeepLink (Uri.parse ("tutsplus: //code.coupon/50")) .setCallToActionText (INVITATION_CALL_TO_ACTION).
Das erste, was Sie tun müssen, um mit benutzerdefinierten Deep Links umzugehen, ist, Ihrer App mitzuteilen, wie sie hergestellt werden und welche Aktivität
sollte sich um sie kümmern. Neues hinzufügen Aktivität
zu Ihrem Projekt und nennen Sie es DetailsAktivität.
Öffnen AndroidManifest.xml und fügen Sie den folgenden Ausschnitt hinzu
Etikett.
Wir sagen dem System folgendes. Wenn es die Aktion aufruft AUSSICHT auf einer URL, deren Schema lautet tutsplus und deren Gastgeber ist code.coupon, Ihre App kann damit umgehen DetailsAktivität
Klasse.
Um die benutzerdefinierte URL empfangen und analysieren zu können, müssen Sie zunächst eine automatisch verwaltete URL erstellen GoogleApiClient
mit Zugriff auf App-Einladungen. Wir machen das im onCreate
Methode der Hauptaktivität
Klasse.
GoogleApiClient googleApiClient = new GoogleApiClient.Builder (this) .addApi (AppInvite.API) .enableAutoManage (this, neuer GoogleApiClient.OnConnectionFailedListener () @Override public void onConnectionFailed (ConnectionResultachratedata]) ), "onConnectionFailed:" + connectionResult); showMessage ("Die Verbindung ist fehlgeschlagen.");) .build ();
Um nach Einladungen zu suchen und den Deep Link zu starten Aktivität
, du kannst den ... benutzen Einladung bekommen
Methode, die in Google Play-Diensten eingeführt wurde 8.3. Fügen Sie das folgende Code-Snippet hinzu onCreate
Methode der Hauptaktivität
Klasse.
AppInvite.AppInviteApi.getInvitation (googleApiClient, this, true) .setResultCallback (neuer ResultCallback)() @Override public void onResult (Ergebnis AppInviteInvitationResult) );
Einstellung des letzten Parameters der Methode auf wahr
weist das Plugin an, die für die Abwicklung der Deep-Verbindung verantwortliche Aktivität, die DetailsAktivität
Klasse in unserem Beispiel. Dies ist der Grund, warum der Körper der onResult
Methode ist leer.
Öffnen activity_details.xml und zwei hinzufügen Textvorschau
Objekte wie unten gezeigt.
Als nächstes öffnen DetailsAktivität
und überschreiben Sie die am Start
Methode. Um zu überprüfen, ob die Absicht
enthält tiefe Linkdaten, auf die Sie sich verlassen müssen hasReferral
Methode. Das URL-Parsing ist sehr einfach, wie Sie unten sehen können.
@Override protected void onStart () super.onStart (); Absicht Absicht = getIntent (); if (AppInviteReferral.hasReferral (intent)) // Extrahieren Sie die Informationen aus dem 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 diesem Artikel haben Sie erfahren, wie Sie App Invites von Google in Ihrer App mithilfe des Google Play-Services-Plugins implementieren. Mit diesem Tool können Sie die Zielgruppe Ihrer App erhöhen, indem Sie Benutzern das Senden von Einladungen an ihre Google-Kontakte ermöglichen. Sie sollten jetzt in der Lage sein, ein Empfehlungssystem zu entwickeln, indem Sie App Invites nutzen. Ihre Benutzer können Ihre App mithilfe personalisierter kontextbezogener Einladungen ihren Freunden empfehlen.