Ett av de mest effektiva marknadsföringsverktygen är definitivt ett ord från munnen. Socialt bevis är en mycket kraftfull stimulans när det gäller beslutsfattande. Medan människor enkelt ignorerar traditionell reklam tenderar få personer att ignorera råd från en betrodd källa, till exempel en vän.
Under 2011 genomförde Google och Ipsos OTX en undersökning som avslöjade intressanta resultat. Om rekommendationer kompletteras med rabattkuponger som mottagare kan lösa in, är sannolikheten att de kommer ladda ner appen eller kommer att börja använda den igen mycket högre. Det här är något som utvecklare och apputgivare kanske vill komma ihåg.
Sanningen är att väldigt få mobilapputgivare och utvecklare använder sig av ett referenssystem som bygger på rekommendationer. Anledningen är nästan alltid teknisk. Att hålla reda på rabattkoder, implementera djupkoppling inom appar och skapa en backend är några av de hinder som utvecklarna behöver ta för att göra detta arbete. Som ett resultat stör de flesta inte eller ge upp.
Lyckligtvis utvecklade Google ett system som övervinner dessa hinder, App inbjuder. Med App Invites erbjuder Google ett kraftfullt gränssnitt genom vilket utvecklare kan växa sin mobilapps publik genom att låta befintliga användare bjuda in sina kontakter för att prova appen.
Appinbjudningar ingår i Google Play-tjänster och finns även på iOS. Det optimerar dina appinstallationshastigheter genom att minska friktionen och ge lite kontext, till exempel appens generella information och dess betyg i appbutiken, vid varje steg i användarinbjudan flödet.
I denna handledning visar jag dig hur du implementerar detta kraftfulla verktyg i din egen Android-applikation.
Jag kommer att använda ett mycket enkelt projekt för att visa dig hur du delar inbjudningar till din app. Det första du behöver göra är att skapa ett nytt projekt. Välj i Android Studio Arkiv> Nytt> Nytt projekt. Namn din app och ställ in företagets webbdomän för att låta Android Studio definiera paketets namn på din app.
Den minsta SDK-versionen som appen kan stödja kan vara så låg som Android Gingerbread (API-nivå 9). Det betyder att du kan rikta nästan alla enheter som kör Android, 99,97% vid skrivningstillfället. Tänk dock på att App Invites endast arbetar på enheter som inkluderar Googles Play-butik eftersom den är baserad på pluginprogrammet för Google Play-tjänster.
Skapa ett tomt Aktivitet
och namnge det MainActivity.java.
Med det nya projektet öppnat i Android Studio öppnar du Projekt fliken till vänster och expandera Gradle Scripts. Den innehåller två filer med samma namn, build.gradle. Den första filen är toppnivå build.gradle. Den andra filen är app-nivå build.gradle.
Öppna toppnivån build.gradle och lägg till följande classpath
för Google Play-tjänster.
classpath 'com.google.gms: google-tjänster: 1.5.0-beta2'
Öppna appnivån build.gradle och lägg till följande kompilera beroenden till den.
kompilera "com.android.support:support-v4:23.1.1" compile "com.android.support:design:23.1.1" kompilera "com.google.android.gms: play-services: 8.3.0 '
För att aktivera pluginprogrammet för Google Play-tjänster lägger du till följande rad nedan tillämpa plugin: 'com.android.application'
.
tillämpa plugin: "com.google.gms.google-services"
Android Studio frågar dig att synkronisera projektfilerna. Innan du gör det öppnar du dock AndroidManifest.xml och lägg till Google Play-tjänster versionen i Ansökan
märka.
Spara ändringarna och klicka på Synkronisera nu. Vi är inte färdiga än. Android Studio kommer att kasta ett fel som berättar att pluginet för Google Play-tjänster kräver en konfigurationsfil, google-services.json. Låt oss fixa det nu.
Du behöver inte besöka webbplatsen för Google Developers för att aktivera Googles tjänster för din app. Projektet läggs sedan till i din personliga utvecklarkonsol, vilket innebär att du måste verifieras som en Google-användare innan du fortsätter.
Ange det namn du valde för din app och ange dess paketnamn. Om du inte kommer ihåg appens paketnamn öppnar du appnivån build.gradle. Du hittar den under defaultConfig> applicationId.
Fyll i resten av formuläret och klicka på knappen längst ner märkt Välj och konfigurera tjänster.
Nästa del är lite svårare. Google frågar dig om certifikatfingeravtrycket. För att få certifikatfingeravtrycket måste du öppna kommandoraden och utföra följande kommando.
keytool -exportcert -list -v \ -alias-nyckellagret
Det finns två möjliga scenarier:
Om du testar din app lokalt är nyckelnamnet androiddebugekey
och dess standardplats är % USERPROFILE% \. Android \ debug.keystore
på Windows och ~ / .Android / debug.keystore
på Unix-system, till exempel OS X och Linux. Så här ser kommandot ut för att testa lokalt.
keytool -exportcert -list -v \ -alias androiddebugkey -keystore ~ / .android / debug.keystore
De keytool verktyget uppmanar dig att ange ett lösenord. Standardlösenordet för debug keystore är android. Detta kommer att ge SHA1-fingeravtryck av ditt debug-certifikat, vilket ser ut så här.
Certifikatfingeravtryck: SHA1: DA: 39: A3: EE: 5E: 6B: 4B: 0D: 32: 55: BF: EF: 95: 60: 1H: 90: AF: D8: 07: 09.
Men om du behöver utgåva certifikat fingeravtryck, då måste du ange certifikatets namn, plats och lösenord.
När du har angett certifikatfingeravtrycket kan du aktivera App Invites genom att klicka på Aktivera appinbjudningar knappen längst ner. Du borde nu kunna hämta konfigurationsfilen genom att klicka på Hämta google-services.json.
För att slutföra det här steget, kopiera den nedladdade filen till app/ eller mobil/ katalog över ditt projekt.
När projektet är konfigurerat är vi redo för nästa steg. För lanseringen Aktivitet
, definiera en enkel layout som den som visas nedan. Den innehåller en knapp och en etikett.
Resultatet ska se ut så här.
I onCreate
metod den Huvudaktivitet
klass, lägg till en onCreateListener
till knappen.
knapp = findViewById (R.id.invite); button.setOnClickListener (new View.OnClickListener () @Override public void onClick (Visa v) // gör något, vill du?);
Inbjudan skickas som en Avsikt
. Du kan ange ett meddelande som användare kan anpassa innan de skickar inbjudningarna till sina vänner. Du kan också ställa in ett samtal till handling, en bakgrundsbild och en djup länk som din app kan hantera när inbjudan är mottagen. Du kan även definiera minsta SDK-versionen (setAndroidMinimumVersionCode
) och ett målansöknings-ID för andra plattformar, såsom iOS (setOtherPlatformsTargetApplication
).
Skapa Avsikt
i kroppens kropp onClick
metod.
Avsikten med avsikt = ny AppInviteInvitation.IntentBuilder (INVITATION_TITLE) .setMessage (INVITATION_MESSAGE) .setCallToActionText (INVITATION_CALL_TO_ACTION) .build (); startActivityForResult (avsikt, REQUEST_INVITE);
Lägg till följande strängar för att göra allt detta arbete.
privat statisk sista sträng INVITATION_TITLE = "Ring dina vänner", INVITATION_MESSAGE = "Hej! Vill du få 50% rabatt för denna fantastiska app? :)", INVITATION_CALL_TO_ACTION = "Dela";
Det är allt som finns där. När Avsikt
är igång, en anpassad Aktivitet
visar upp som låter användaren välja hur de vill skicka inbjudan (e-post eller textmeddelande), meddelandet från inbjudan och mottagarna.
Avsikten börjar med att ringa startActivityForResult
. Det är möjligt att hämta resultatet av avsikten. När användaren har tryckt på skicka-knappen kommer de tillbaka till den aktivitet som startade avsikten. I det ögonblicket kan du göra vad som är nödvändigt i onActivityResult
, som att gömma knappen eller spåra inbjuder genom analys.
@Override protected void onActivityResult (int requestCode, int resultCode, Intent data) super.onActivityResult (requestCode, resultCode, data); om (requestCode == REQUEST_INVITE) if (resultCode == RESULT_OK) // Du har skickat inbjudan, // vi kan avvisa knappen. button.setVisibility (View.GONE); String [] ids = AppInviteInvitation.getInvitationIds (resultCode, data); StringBuilder sb = ny StringBuilder (); sb.append ("Sent") .append (Integer.toString (ids.length)). append ("inbjudningar:"); för (String id: ids) sb.append ("["). append (id) .append ("]"); Log.d (getString (R.string.app_name), sb.toString ()); else // Sändningen misslyckades eller den avbröts med hjälp av knappen för bakåtknappen VisaMessage ("Tyvärr, jag kunde inte skicka inbjudningarna");
När en användare får inbjudan och klickar på den medföljande länken, grenar inbjudningsflödet beroende på om appen redan är installerad på mottagarens smartphone. Om appen redan är tillgänglig får den automatiskt en Avsikt
innehållande valfria djuplänkdata.
Om mottagaren inte har app installerad installeras, får de chansen att göra det. När appen lanseras först kommer appen att få en Avsikt
innehållande data med djup länk. På så sätt kan rabatten du vill tillhandahålla alltid vara tillgänglig för mottagaren. Detta övervinner de frågor vi pratade om tidigare.
Låt oss utforska djupkoppling i mer detalj. Ställ in den djupa länken av Avsikt
vi skapade i onCreate
metod.
Intent intent = nytt AppInviteInvitation.IntentBuilder (INVITATION_TITLE) .setMessage (INVITATION_MESSAGE) .setDeepLink (Uri.parse ("tutsplus: //code.coupon/50")) .setCallToActionText (INVITATION_CALL_TO_ACTION) .build ();
Det första du behöver göra för att hantera anpassade djupa länkar berättar för din app hur de görs och vilka Aktivitet
bör ta hand om dem. Lägg till en ny Aktivitet
till ditt projekt och namnge det DetailsActivity.
Öppna AndroidManifest.xml och lägg till följande kod till
märka.
Vi berättar för systemet följande. Om det åberopar åtgärden SE på en URL vars system är tutsplus och vars värd är code.coupon, din app kan hantera den med hjälp av DetailsActivity
klass.
För att kunna ta emot och analysera den anpassade webbadressen måste du först skapa en automatisk hanterad GoogleApiClient
med tillgång till App Invites. Vi gör det här i onCreate
metod för Huvudaktivitet
klass.
GoogleApiClient googleApiClient = ny GoogleApiClient.Builder (this) .addApi (AppInvite.API) .enableAutoManage (den här nya GoogleApiClient.OnConnectionFailedListener () @Overrota offentlig tomgång påConnectionFailed (ConnectionResult connectionResult) Log.d (getString (R.string.app_name ), "onConnectionFailed:" + connectionResult); showMessage ("Tyvärr, anslutningen har misslyckats.");) .build ();
Att kontrollera efter inbjudningar och att starta den djupa länken Aktivitet
, du kan använda getInvitation
metod som introducerades i Google Play-tjänster 8,3. Lägg till följande kodbit till onCreate
metod för Huvudaktivitet
klass.
AppInvite.AppInviteApi.getInvitation (googleApiClient, detta, sant) .setResultCallback (nytt resultatCallback() @Override public void onResult (AppInviteInvitationResult resultat) );
Inställning av metodens sista parameter till Sann
berättar plugin att automatiskt ringa den aktivitet som är ansvarig för hanteringen av den djupa länken, den DetailsActivity
klass i vårt exempel. Detta är anledningen till att kroppen av onResult
Metoden är tom.
Öppna activity_details.xml och lägg till två Textview
föremål som visas nedan.
Nästa, öppna DetailsActivity
och åsidosätta onStart
metod. För att kontrollera om Avsikt
innehåller djup länkdata, du måste lita på hasReferral
metod. URL-parsningen är väldigt enkel som du kan se nedan.
@Override protected void onStart () super.onStart (); Avsikten med avsikt = getIntent (); om (AppInviteReferral.hasReferral (avsikt)) // Extrahera informationen från Intent String deepLink = AppInviteReferral.getDeepLink (avsikt); Log.d (getString (R.string.app_name), "Found Referral:" + AppInviteReferral.getInvitationId (avsikt) + ":" + deepLink); String [] array = deepLink.split ("/"); om (array.length> 0) TextView tv = (TextView) findViewById (R.id.discount); tv.setText (String.format (tv.getText (). toString (), array [array.length-1]));
I den här artikeln lärde du dig att implementera Googles appinbjudningar i din app med hjälp av pluginprogrammet för Google Play-tjänster. Med det här verktyget kan du öka publiken för din app genom att tillåta användare att skicka inbjudningar till sina Google-kontakter. Du borde nu kunna utveckla ett referenssystem genom att använda App Invites, så att dina användare rekommenderar din app till sina vänner med hjälp av personliga, kontextuella inbjudningar.