Push-Benachrichtigungen
Aktivieren von Push-Benachrichtigungen.
Einrichten von Push-Benachrichtigungen in iOS
Es gibt drei Schritte zum Aktivieren von Push-Benachrichtigungen:
- Push-Benachrichtigungen für das Apple Developer Account konfigurieren
- Aktivieren Sie Push-Benachrichtigungen in xCode.
- Aktivieren Sie Push-Benachrichtigungen in App mit dem Marketo SDK.
Push-Benachrichtigungen für Apple-Entwicklerkonto konfigurieren
- Melden Sie sich beim Apple Developer Member Center an.
- Klicken Sie auf "Zertifikate, Kennungen und Profile".
- Klicken Sie unter "iOS, tvOS, watchOS"auf den Ordner "Zertifikate->Alle".
- Wählen Sie auf dem Bildschirm oben links neben den Zertifikaten das "+"aus.
- Aktivieren Sie das Kontrollkästchen "Apple Push Notification Service SSL (Sandbox & Production)"und klicken Sie auf "Weiter".
- Wählen Sie die Anwendungs-ID aus, die Sie für den App-Build verwenden.
- Erstellen und laden Sie CSR hoch, um das Push-Zertifikat zu generieren.
- Laden Sie das Zertifikat auf den lokalen Computer herunter und doppelklicken Sie zur Installation auf .
- Öffnen Sie "Keychain Access", klicken Sie mit der rechten Maustaste auf das Zertifikat und exportieren Sie zwei Elemente in die Datei "
.p12
". - Laden Sie diese Datei über die Marketo-Admin Console hoch, um Benachrichtigungen zu konfigurieren.
- Aktualisieren Sie App-Bereitstellungsprofile.
Push-Benachrichtigungen in xCode aktivieren
Aktivieren Sie die Push-Benachrichtigungsfunktion im xCode-Projekt.
Push-Benachrichtigungen in App mit Marketo SDK aktivieren
Fügen Sie der Datei AppDelegate.m
den folgenden Code hinzu, um Push-Benachrichtigungen an die Geräte Ihres Kunden zu senden.
Hinweis - Verwenden Sie bei Verwendung der Erweiterung Adobe Launch ALMarketo
als Klassennamen.
Importieren Sie Folgendes in AppDelegate.h
.
code language-none |
---|
|
code language-none |
---|
|
Fügen Sie UNUserNotificationCenterDelegate
zu AppDelegate
hinzu, wie unten dargestellt.
code language-none |
---|
|
code language-none |
---|
|
Starten Sie den Push-Benachrichtigungsdienst. Um Push-Benachrichtigungen zu aktivieren, fügen Sie unten den Code hinzu.
code language-objectivec |
---|
|
code language-none |
---|
|
Rufen Sie diese Methode auf, um den Registrierungsprozess mit Apple Push Service zu starten. Wenn die Registrierung erfolgreich ist, ruft die App die application:didRegisterForRemoteNotificationsWithDeviceToken:
-Methode des App-Delegationsobjekts auf und übergibt es ein Geräte-Token.
Wenn die Registrierung fehlschlägt, ruft die App stattdessen die Methode application:didFailToRegisterForRemoteNotificationsWithError:
des App-Delegats auf.
Registrieren Sie Push-Token bei Marketo. Um Push-Benachrichtigungen von Marketo zu erhalten, müssen Sie das Geräte-Token bei Marketo registrieren.
code language-none |
---|
|
code language-none |
---|
|
Die Registrierung des Tokens kann auch aufgehoben werden, wenn sich der Benutzer abmeldet.
code language-none |
---|
|
code language-none |
---|
|
Um das Push-Token erneut zu registrieren, extrahieren Sie den Code aus Schritt 3 in eine AppDelegate-Methode und rufen Sie von der ViewController-Anmeldemethode auf.
Push-Benachrichtigung verarbeiten. Um Push-Benachrichtigungen von Marketo zu erhalten, müssen Sie das Geräte-Token bei Marketo registrieren.
code language-none |
---|
|
code language-none |
---|
|
Fügen Sie die folgende Methode in AppDelegate hinzu
Mit dieser Methode können Sie Warnhinweise, Töne oder Erhöhungszeichen anzeigen, während die App im Vordergrund ausgeführt wird. Sie müssen in dieser Methode den von Ihnen ausgewählten completionHandler aufrufen.
code language-none |
---|
|
code language-none |
---|
|
Umgang mit neu empfangenen Push-Benachrichtigungen in AppDelegate
Die Methode wird auf den Delegaten aufgerufen, wenn der Benutzer auf die Benachrichtigung reagiert hat, indem er die Anwendung öffnet, die Benachrichtigung verworfen oder eine UNNotificationAction ausgewählt hat. Der Delegate muss festgelegt werden, bevor die Anwendung von applicationDidFinishLaunching: zurückgibt.
code language-none |
---|
|
code language-none |
---|
|
Push-Benachrichtigungen tracken
Wenn Ihre App im Hintergrund ausgeführt wird (oder nicht aktiv ist), erhält das Gerät eine Push-Benachrichtigung, wie unten dargestellt. Marketo verfolgt, wann der Benutzer auf die Benachrichtigung tippt.
Wenn das Gerät eine Push-Benachrichtigung erhält, wird diese an den application:didReceiveRemoteNotification:
-Callback in Ihrem App-Delegaten übergeben.
Im Folgenden finden Sie ein Marketo-Aktivitätsprotokoll von Marketo, in dem App-Ereignisse und Push-Benachrichtigungs-Ereignisse angezeigt werden.
Einrichten von Push-Benachrichtigungen in Android
-
Fügen Sie die folgende Berechtigung innerhalb des Anwendungs-Tags hinzu.
Öffnen Sie
AndroidManifest.xml
und fügen Sie die folgenden Berechtigungen hinzu. Ihre App muss die Berechtigungen "INTERNET"und "ACCESS_NETWORK_STATE"anfordern. Wenn Ihre App diese Berechtigungen bereits anfordert, überspringen Sie diesen Schritt.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" />
-
Einrichten von FCM mit HTTPv1 (Google hat am 12. Juni 2023 das veraltete XMPP-Protokoll und wird im Juni 2024 entfernt)
-
Aktivieren Sie MME FCM HTTPv1 im Marketo Feature Manager
- Laden Sie die JSON-Datei des Dienstkontos für die App in MLM hoch.
- Sie können die JSON-Datei "Service Account"von der Firebase Console herunterladen.
- Warten Sie eine Stunde nach dem Hochladen der JSON-Datei des Dienstkontos in Marketo, bevor Sie Push-Benachrichtigungen senden.
Android-Testgeräte
Fügen Sie Marketo-Aktivität in der Manifestdatei im Anwendungs-Tag hinzu.
<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/>
Marketo Push-Dienst registrieren
-
Um Push-Benachrichtigungen von Marketo zu erhalten, müssen Sie den Firebase-Messaging-Dienst zu Ihrem
AndroidManifest.xml
hinzufügen. Fügen Sie vor dem schließenden Anwendungs-Tag hinzu.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>
-
Fügen Sie Marketo SDK-Methoden in der Datei "
MyFirebaseMessagingService
"wie folgt hinzu:code 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... } }
Hinweis - Fügen Sie bei Verwendung der Adobe-Erweiterung wie folgt hinzu
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... } }
HINWEIS: Das FCM-SDK fügt automatisch alle erforderlichen Berechtigungen sowie die erforderliche Empfängerfunktion hinzu. Achten Sie darauf, die folgenden veralteten (und potenziell schädlichen) Elemente aus dem Manifest Ihrer App zu entfernen, wenn Sie frühere Versionen des SDK verwendet haben.
<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"/>
-
Marketo Push initialisieren Nach dem Speichern der oben genannten Konfiguration müssen Sie die Marketo-Push-Benachrichtigung initialisieren. Erstellen oder öffnen Sie Ihre Anwendungsklasse und kopieren/fügen Sie den unten stehenden Code ein. Sie können Ihre Absender-ID über die Firebase-Konsole abrufen.
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");
Verwenden Sie bei Verwendung der Erweiterung Adobe Launch die folgenden Anweisungen
code language-java // Enable push notification here. The push notification channel name can by any string ALMarketo.initializeMarketoPush(SENDER_ID,"ChannelName");
Wenn Sie keine SENDER_ID haben, aktivieren Sie den Google Cloud Messaging Service, indem Sie die in diesem Tutorial beschriebenen Schritte ausführen.
Die Registrierung des Tokens kann auch aufgehoben werden, wenn sich der Benutzer abmeldet.
code language-java marketoSdk.uninitializeMarketoPush();
Verwenden Sie bei Verwendung der Erweiterung Adobe Launch die folgende Anweisung
code language-java ALMarketo.uninitializeMarketoPush();
Hinweis: Um das Push-Token erneut zu registrieren, extrahieren Sie den Code aus Schritt 3 in eine AppDelegate-Methode und rufen Sie von der ViewController-Anmeldemethode auf.
-
Benachrichtigungssymbol festlegen (optional) Um ein benutzerdefiniertes Benachrichtigungssymbol zu konfigurieren, sollte die folgende Methode aufgerufen werden.
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();
Fehlerbehebung
Das Einrichten von mobilen Push-Nachrichten umfasst viele Schritte und die Koordination von Entwicklern und Marketingexperten. Wenn Sie Schwierigkeiten haben, gibt es einige einfache Dinge, die Sie überprüfen können.
Nachdem Sie sich vergewissert haben, dass die einfachen Dinge korrekt sind, können Sie die Programmierdetails genauer untersuchen.
Push-Nachricht wird nicht angezeigt
Überprüfen Sie zunächst, ob Push-Nachrichten auf dem Handset deaktiviert sind. Benutzer mit Mobilgeräten können steuern, ob sie Nachrichten für eine bestimmte App erhalten oder nicht. Häufig deaktivieren Entwickler (und Marketingexperten) diese Nachrichten irgendwann während der Entwicklung. Zunächst muss geprüft werden, ob der Empfänger Push-Nachrichten für Ihre App deaktiviert hat.
Zweitens: Ist die App bereits geöffnet und aktiv auf dem Gerät? Wenn Ihre App die aktive App auf dem Gerät ist, werden mobile Push-Nachrichten nicht auf dem Bildschirm angezeigt. Stattdessen werden sie im Bereich "Lokale Benachrichtigungen"Ihrer App angezeigt.
Anzeigen der Aktivitätsprotokolle in Marketo
Beim Nachverfolgen eines Fehlers sollten Sie zunächst in den Marketo-Aktivitätsprotokollen nachsehen. Sie können Aktivitätsprotokolle verwenden, um zu überprüfen, ob eine Nachricht gesendet wurde.
Überprüfen Sie im Aktivitätsprotokoll die Aktivitätsdatensätze einer Person, die eine Nachricht erhalten soll. Wenn die Nachricht gesendet wurde, ist ein Datensatz im Aktivitätsprotokoll vorhanden. Ist dies nicht der Fall, liegt das Problem wahrscheinlich an der Konfiguration des iOS-Zertifikats oder des Android-API-Schlüssels in Marketo.
Zertifikat oder Schlüssel ist ungültig
Überprüfen Sie Ihre Konfiguration, um sicherzustellen, dass das richtige Zertifikat für Sandbox oder Produktion geladen wurde. Manchmal ist es am besten, wenn der Entwickler die Zertifikate (iOS) oder Schlüssel (Android) erneut exportiert und dann in Marketo neu lädt, um sicherzustellen, dass sie korrekt sind.
.p12-Datei fehlt ein Zertifikat oder ein Schlüssel (iOS)
Stellen Sie beim Exportieren des Zertifikats sicher, dass Sie den Schlüssel und des Zertifikats exportieren.
Bereitstellung von Profilen veraltet (iOS)
Wenn Sie ein neues Gerät hinzufügen, müssen Sie Ihre Bereitstellungsprofile aktualisieren und neue Zertifikate generieren. Stellen Sie sicher, dass Ihr Xcode-Projekt dann auf die richtigen Profile und Zertifikate verweist, und importieren Sie diese Zertifikate in Marketo.
IOS-Zertifikat (IOS) kann nicht hochgeladen werden
Stellen Sie sicher, dass das beim Exportieren des Zertifikats verwendete Kennwort keine Leerzeichen enthält. Beispiel:
Hello World 123
verwenden Sie Folgendes:
HelloWorld123
Fehlerbehebung für iOS-Zertifikate
Für Sandbox-Anwendungen können Sie entweder ein "Entwickler"- oder ein "universelles" Zertifikat verwenden. Für Produktionsanwendungen müssen Sie jedoch ein gültiges "Distribution"- oder "universelle" Zertifikat hochladen.
Push-Absprung/ungültiges Token
Ein vorhandenes Anmeldetoken kann in einer Reihe von Szenarien außer Kraft gesetzt werden, darunter:
- Wenn sich die Client-App bei GCM abmeldet.
- Wenn die Client-App automatisch abgemeldet wird, was passieren kann, wenn der Benutzer die Anwendung deinstalliert. Wenn beispielsweise der APNS-Feedback-Dienst in iOS das APNS-Token als ungültig meldete.
- Wenn das Anmeldetoken abläuft. Beispielsweise könnte Google entscheiden, Registrierungstoken zu aktualisieren, oder das APNS-Token ist für iOS-Geräte abgelaufen.
- Wenn die Client-App aktualisiert wird, die neue Version jedoch nicht für den Empfang von Nachrichten konfiguriert ist.