Push-meddelanden
Så här aktiverar du push-meddelanden.
Konfigurera push-meddelande för iOS
Det finns tre steg för att aktivera push-meddelanden:
- Konfigurera push-meddelanden på Apple Developer Account.
- Aktivera push-meddelanden i xCode.
- Aktivera push-meddelanden i appen med Marketo SDK.
Konfigurera push-meddelanden på Apple Developer Account
- Logga in på Apple Developer Member Center.
- Klicka på Certifikat, Identifierare och profiler.
- Klicka på mappen "Certificates->All" under "iOS, tvOS, watchOS".
- Markera plustecknet (+) på den övre vänstra skärmen bredvid certifikaten
- Aktivera kryssrutan"Apple Push Notification service SSL (Sandbox & Production)" och klicka på"Continue".
- Välj det program-ID som du använder för att skapa appen.
- Skapa och överför CSR för att generera push-certifikatet.
- Hämta certifikatet till den lokala datorn och dubbelklicka för att installera.
- Öppna Nyckelhanterare, högerklicka på certifikatet och exportera 2 objekt till filen
.p12
. - Ladda upp den här filen via Marketo Admin Console för att konfigurera meddelanden.
- Uppdatera provisioneringsprofiler för appar.
Aktivera push-meddelanden i xCode
Aktivera funktionen för push-meddelanden i xCode-projektet.
Aktivera push-meddelanden i appen med Marketo SDK
Lägg till följande kod i filen AppDelegate.m
för att leverera push-meddelanden till dina kunders enheter.
Obs! - Använd ALMarketo
som klassnamn om du använder tillägget Adobe Launch
Importera följande i AppDelegate.h
.
code language-none |
---|
|
code language-none |
---|
|
Lägg till UNUserNotificationCenterDelegate
i AppDelegate
enligt nedan.
code language-none |
---|
|
code language-none |
---|
|
Initiera push-meddelandetjänst. Om du vill aktivera push-meddelanden lägger du till koden nedan.
code language-objectivec |
---|
|
code language-none |
---|
|
Anropa den här metoden för att initiera registreringsprocessen med Apple Push Service. Om registreringen lyckas anropar appen application:didRegisterForRemoteNotificationsWithDeviceToken:
-metoden för ditt programdelegatobjekt och skickar den som en enhetstoken.
Om registreringen misslyckas anropar appen i stället appdelegatens application:didFailToRegisterForRemoteNotificationsWithError:
-metod.
Registrera push-token hos Marketo. För att få push-meddelanden från Marketo måste du registrera enhetstoken hos Marketo.
code language-none |
---|
|
code language-none |
---|
|
Token kan också avregistreras när användaren loggar ut.
code language-none |
---|
|
code language-none |
---|
|
Om du vill registrera om push-token extraherar du koden från steg 3 till en AppDelegate-metod och anropar från inloggningsmetoden ViewController.
Hantera push-meddelanden. För att få push-meddelanden från Marketo måste du registrera enhetstoken hos Marketo.
code language-none |
---|
|
code language-none |
---|
|
Lägg till följande metod i AppDelegate
Genom att använda den här metoden kan du antingen visa varningsmeddelanden, ljud eller öka märke när programmet är i förgrunden. Du måste anropa completeHandler som du väljer i den här metoden.
code language-none |
---|
|
code language-none |
---|
|
Hantera nyligen mottagna push-meddelanden i AppDelegate
Metoden anropas för delegaten när användaren svarar på meddelandet genom att öppna programmet, stänga meddelandet eller välja en UNNotificationAction. Delegaten måste anges innan programmet returnerar från applicationDoFinishLaunching:.
code language-none |
---|
|
code language-none |
---|
|
Spåra push-meddelanden
Om ditt program körs i bakgrunden (eller inte är aktivt) får enheten ett push-meddelande enligt nedan. Marketo spårar när användaren trycker på meddelandet.
Om enheten får ett push-meddelande skickas det till application:didReceiveRemoteNotification:
-återanropet på din appdelegat.
Här följer en aktivitetslogg från Marketo från Marketo som visar programhändelser och push-meddelandehändelser.
Konfigurera push-meddelande för Android
-
Lägg till följande behörighet i programtaggen.
Öppna
AndroidManifest.xml
och lägg till följande behörigheter. Ditt program måste begära behörigheterna INTERNET och ACCESS_NETWORK_STATE. Om appen redan begär dessa behörigheter hoppar du över det här steget.code language-xml <uses‐permission android:name="android.permission.INTERNET"/> <uses‐permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <!‐‐Following permissions are required for push notification.‐‐> <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <!‐‐Keeps the processor from sleeping when a message is received.‐‐> <uses-permission android:name="android.permission.WAKE_LOCK"/> <permission android:name="<PACKAGE_NAME>.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="<PACKAGE_NAME>.permission.C2D_MESSAGE" /> <!-- This app has permission to register and receive data message. --> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
-
Konfigurera FCM med HTTPv1 (Google har föråldrat XMPP-protokoll den 12 juni 2023 och kommer att tas bort i juni 2024)
-
Aktivera MME FCM HTTPv1 i Marketo-funktionshanteraren
- Överför JSON-fil för tjänstkonto för appen i MLM.
- Du kan hämta JSON-filen för tjänstkontot från Firebase Console.
- Vänta i en timme efter att Json-filen för tjänstkontot har överförts till Marketo innan du skickar push-meddelanden.
Android Test Devices
Lägg till Marketo Activity i manifestfilen inuti programtaggen.
<activity android:name="com.marketo.MarketoActivity" android:configChanges="orientation|screenSize">
<intent-filter android:label="MarketoActivity">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="add_test_device" android:scheme="mkto"/>
</intent-filter/>
</activity/>
Registrera Marketo Push Service
-
Om du vill få push-meddelanden från Marketo måste du lägga till Firebase-meddelandetjänsten i
AndroidManifest.xml
. Lägg till före den avslutande programtaggen.code language-xml <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <service android:name=".MyFirebaseMessagingService"> <intent-filter> <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> <action android:name="com.google.firebase.MESSAGING_EVENT"/> </intent-filter> </service>
-
Lägg till Marketo SDK-metoder i filen
MyFirebaseMessagingService
enligt följandecode language-java import com.marketo.Marketo; public class MyFirebaseMessagingService extends FirebaseMessagingService { @Override public void onNewToken(String s) { super.onNewToken(s); Marketo marketoSdk = Marketo.getInstance(this.getApplicationContext()); marketoSdk.setPushNotificaitonToken(s); // Add your code here... } @Override public void onMessageReceived(RemoteMessage remoteMessage) { Marketo marketoSdk = Marketo.getInstance(this.getApplicationContext()); marketoSdk.showPushNotificaiton(remoteMessage); // Add your code here... } }
Obs! - Om du använder tillägget Adobe lägger du till enligt nedan
code language-java import com.marketo.Marketo; public class MyFirebaseMessagingService extends FirebaseMessagingService { @Override public void onNewToken(String token) { super.onNewToken(token); ALMarketo.setPushNotificationToken(token); // Add your code here... } @Override public void onMessageReceived(RemoteMessage remoteMessage) { ALMarketo.showPushNotification(remoteMessage); // Add your code here... } }
OBS! FCM SDK lägger automatiskt till alla nödvändiga behörigheter samt de nödvändiga mottagarfunktionerna. Se till att ta bort följande föråldrade (och potentiellt skadliga, eftersom de kan orsaka duplicering av meddelanden) element från appens manifest om du använde tidigare versioner av SDK
<receiver android:name="com.marketo.MarketoBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<!‐‐Receives the actual messages.‐‐>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
<!‐‐Register to enable push notification‐‐>
<action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
<!‐‐‐Replace YOUR_PACKAGE_NAME with your own package name‐‐>
<category android:name="YOUR_PACKAGE_NAME"/>
</intent-filter>
</receiver>
<!‐‐Marketo service to handle push registration and notification‐‐>
<service android:name="com.marketo.MarketoIntentService"/>
-
Initiera Marketo Push När du har sparat konfigurationen ovan måste du initiera Marketo Push Notification. Skapa eller öppna din Application-klass och kopiera/klistra in koden nedan. Du kan hämta ditt avsändar-ID från Firebase-konsolen.
code language-java Marketo marketoSdk = Marketo.getInstance(getApplicationContext()); // Enable push notification here. The push notification channel name can by any string marketoSdk.initializeMarketoPush(SENDER_ID,"ChannelName");
Om du använder Adobe Launch-tillägget ska du följa dessa instruktioner
code language-java // Enable push notification here. The push notification channel name can by any string ALMarketo.initializeMarketoPush(SENDER_ID,"ChannelName");
Om du inte har något SENDER_ID aktiverar du Google Cloud Messaging Service genom att slutföra stegen som beskrivs i den här självstudiekursen.
Token kan också avregistreras när användaren loggar ut.
code language-java marketoSdk.uninitializeMarketoPush();
Använd instruktionerna nedan om du använder tillägget Adobe Launch
code language-java ALMarketo.uninitializeMarketoPush();
Obs! Om du vill registrera om push-token extraherar du koden från steg 3 till en AppDelegate-metod och anropar från inloggningsmetoden ViewController.
-
Ange meddelandeikon (valfritt) Om du vill konfigurera en anpassad meddelandeikon ska följande metod anropas.
code language-java MarketoConfig.Notification config = new MarketoConfig.Notification(); // Optional bitmap for honeycomb and above config.setNotificationLargeIcon(bitmap); // Required icon Resource ID config.setNotificationSmallIcon(R.drawable.notification_small_icon); // Set the configuration //Use the static methods on ALMarketo class when using Adobe Extension Marketo.getInstance(context).setNotificationConfig(config); // Get the configuration set Marketo.getInstance(context).getNotificationConfig();
Felsökning
Att konfigurera push-meddelanden för mobiler innebär många steg och samordning av utvecklare och marknadsförare. Om du har problem kan du kontrollera några enkla saker.
När du har sett till att de enkla sakerna är korrekta kan du fördjupa dig i programmeringsdetaljerna.
Push-meddelandet visas inte
Kontrollera först om push-meddelanden är inaktiverade på telefonen. Mobilanvändare kan styra om de tar emot meddelanden för en viss app eller inte. Utvecklare (och marknadsförare) inaktiverar ofta dessa meddelanden vid något tillfälle under utvecklingen. Det första som ska kontrolleras är om mottagaren har inaktiverat push-meddelanden för din app.
För det andra är appen redan öppen och aktiv på enheten? När din app är den aktiva appen på enheten visas inga push-meddelanden på skärmen. De visas i stället i området"lokala meddelanden" i din app.
Visa aktivitetsloggar i Marketo
Det första du bör titta på när du spårar fel är i Marketo aktivitetsloggar. Du kan använda aktivitetsloggar för att verifiera att ett meddelande har skickats.
I aktivitetsloggen tittar du på aktivitetsposterna för en person som skulle ta emot ett meddelande. Om meddelandet skickades finns det en post i aktivitetsloggen. Annars beror problemet troligen på konfigurationen av iOS-certifikatet eller Android API-nyckeln i Marketo.
Certifikatet eller nyckeln är ogiltig
Kontrollera konfigurationen för att kontrollera att du har rätt certifikat inläst för sandbox eller Production. Ibland är det bäst att utvecklaren återexporterar certifikaten (iOS) eller nycklarna (Android) och sedan läser in dem igen till Marketo för att säkerställa att de är korrekta.
.p12-filen saknar certifikat eller nyckel (iOS)
När du exporterar certifikatet kontrollerar du att du har exporterat nyckeln och till certifikatet.
Etablerar inaktuella profiler (iOS)
När du lägger till en ny enhet måste du uppdatera provisioneringsprofilerna och generera nya certifikat. Se till att Xcode-projektet pekar på rätt profiler och certifikat och importera dessa certifikat till Marketo.
Det går inte att överföra iOS-certifikat (IOS)
Kontrollera att lösenordet som användes när certifikatet exporterades inte innehåller blanksteg. I stället för detta:
Hello World 123
använd detta:
HelloWorld123
Felsöka iOS-certifikat
För sandlådeprogram kan du använda antingen ett utvecklarcertifikat eller ett universellt certifikat. Men för produktionsprogram måste du ladda upp ett giltigt distributionscertifikat eller universellt certifikat.
Push-studs/ogiltig token
En befintlig registreringstoken kan upphöra att gälla i ett antal scenarier, bland annat:
- Om klientappen avregistrerar sig hos GCM.
- Om klientprogrammet avregistreras automatiskt, vilket kan hända om användaren avinstallerar programmet. Om APNS Feedback Service till exempel rapporterade APNS-token som ogiltig i iOS.
- Om registreringstoken förfaller. Google kan till exempel bestämma sig för att uppdatera registreringstoken eller APNS-token har upphört att gälla för iOS-enheter.
- Om klientprogrammet uppdateras men den nya versionen inte har konfigurerats för att ta emot meddelanden.