Ometria hilft Ihrer Marketingabteilung, Ihre Kunden zu verstehen und besser mit ihnen in Kontakt zu treten, indem personalisierte E-Mails und Push-Benachrichtigungen bereitgestellt werden.
Die App verfolgt zwei Hauptziele:
Für Ihre mobile App bedeutet das:
App-Entwickler, die dieses SDK integrieren, sollten der folgenden Anleitung folgen. Sie können sich auch die von uns beigefügte Beispiel-App als Referenzimplementierung ansehen.
Lesen Sie im Ometria-Hilfecenter den Abschnitt Einrichten Ihrer mobilen App mit Firebase-Anmeldeinformationen und befolgen Sie die dortigen Schritte, um einen API-Schlüssel zu erhalten.
Der einfachste Weg, Ometria in Ihr ReactNative-Projekt zu integrieren, ist die Verwendung von npm install
oder yarn add
.
react-native-ometria
mit npm install react-native-ometria
oder yarn add react-native-ometria
Hinweis: Wenn Sie Probleme mit der Installation der Bibliothek haben, ziehen Sie bitte in Betracht, das Beispiel aus der TypeScript-Konfiguration auszuschließen, z. B.:
{
...,
"exclude": ["example"]
}
Für iOS
müssen Sie Pods pod install
installieren, um einen lokalen CocoaPods-Spezifikationsspiegel zu erstellen.
Wenn Sie beim Ausführen der Pod-Installation auf den Fehler The Swift pod 'Ometria' depends upon 'FirebaseMessaging'
stoßen, denken Sie bitte darüber nach use_frameworks! :linkage => :static
.
Um das Ometria SDK zu initialisieren, müssen Sie den API-Schlüssel aus 2 eingeben. Bevor Sie beginnen .
import Ometria from 'react-native-ometria' ;
await Ometria . initializeWithApiToken ( 'API_KEY' , {
notificationChannelName : 'Example Channel Name' , // optional, only for Android
appGroupIdentifier : 'group.com.ometria.sampleRN' , // optional, only for iOS
} ) ;
Seit Version 2.3.0 ermöglicht das SDK eine Neuinitialisierung der Ometria-Instanz. Sie können diese Methode also später in der App bei Bedarf erneut aufrufen.
Sie können im zweiten optionalen Optionsparameter einen benutzerdefinierten Namen für den Android-Benachrichtigungskanal angeben. Der Standardkanalname ist <blank>
.
Sie können im zweiten optionalen Optionsparameter auch eine App-Gruppen-ID angeben. Siehe diesen Abschnitt für iOS.
Ometria protokolliert standardmäßig alle während der Laufzeit aufgetretenen Fehler. Auf diese Protokolle kann in der Konsole Ihrer Entwicklungsumgebung zugegriffen werden.
Sie können die erweiterte Protokollierung aktivieren, wenn Sie weitere Informationen zu den Vorgängen im Hintergrund wünschen. Fügen Sie nach der Initialisierung der Bibliothek einfach die folgende Zeile hinzu:
Ometria . isLoggingEnabled ( true ) ;
Sie müssen das Verhalten Ihrer Nutzer auf Ihren Plattformen kennen, um sie zu verstehen. Einige Verhaltensweisen sind automatisch erkennbar, bei anderen Ereignissen ist die Nachverfolgung durch den App-Entwickler erforderlich.
Viele dieser Methoden haben analoge Ereignisse in unserem Website-Tracker.
Das vom Kunden identifizierte Ereignis erfordert beispielsweise eine Kunden-ID oder eine E-Mail – diese Kennungen müssen hier mit denen in der Daten-API identisch sein. Wenn Sie sowohl E-Mail-Adresse als auch Kunden-ID angeben, müssen beide übereinstimmen.
Die Ereignisse werden auf Ometria-Seite zu einer großen kanalübergreifenden Ansicht Ihres Kundenverhaltens zusammengeführt. Wenn Sie inkonsistente E-Mail-/Kunden-IDs verwenden, kann dies dazu führen, dass doppelte Profile erstellt werden oder Daten verloren gehen.
Sobald das SDK initialisiert ist, können Sie ein Ereignis verfolgen, indem Sie die entsprechende Methode aufrufen.
Ein App-Benutzer hat sich gerade identifiziert, also angemeldet.
Ometria . trackProfileIdentifiedByCustomerIdEvent ( 'test_customer_id' ) ;
Ihre Kunden-ID ist ihre Benutzer-ID in Ihrer Datenbank.
Manchmal gibt ein Benutzer nur seine E-Mail-Adresse an, ohne sich vollständig anzumelden oder ein Konto zu haben. In diesem Fall kann Ometria einen Profilabgleich basierend auf E-Mails durchführen:
Ometria . trackProfileIdentifiedByEmailEvent ( '[email protected]' ) ;
Eine Kunden-ID macht den Profilabgleich robuster.
Das Senden eines E-Mail-Ereignisses schließt sich nicht gegenseitig aus; Für eine optimale Integration sollten Sie beide Ereignisse senden, sobald Sie die Informationen haben. Diese beiden Ereignisse sind für das Funktionieren des SDK von entscheidender Bedeutung. Stellen Sie daher sicher, dass Sie sie so früh wie möglich senden. Ich möchte hier noch einmal betonen, dass diese Kennungen mit denen identisch sein müssen, die Sie auf Ihrer E-Commerce-Plattform verwenden und an Ometria senden (über die Daten-API oder auf andere Weise). Wenn Sie sowohl E-Mail-Adresse als auch Kunden-ID angeben, müssen beide übereinstimmen. Ein typischer Fehler, den wir bei Integrationen sehen, ist, dass die App bei jedem Login eine neue Kunden-ID generiert (die nicht mit der in Ometria gespeicherten Kunden-ID übereinstimmt). Um dies zu vermeiden, generieren Sie diese IDs zentral auf Ihren Servern und senden Sie konsistente IDs über das Ometria Mobile SDK und die Ometria Data API. Wenn es unpraktisch ist, konsistente IDs zu generieren, empfehlen wir, zur Identifizierung von Kontakten nur E-Mails zu verwenden.
Machen Sie ein „profileIdentified“-Ereignis rückgängig. Sie können dies verwenden, wenn sich ein Benutzer abmeldet.
Ometria . trackProfileDeidentifiedEvent ( ) ;
Derzeit löscht dieses Ereignis die gespeicherten IDs (E-Mail- und/oder Kunden-ID) aus dem lokalen Speicher des Telefons. Es hat keine weitere Wirkung innerhalb von Ometria.
Ein Besucher klickt/tippt/sieht/markiert oder zeigt auf andere Weise Interesse an einem Produkt.
Beispielsweise sucht der Besucher nach einem Begriff und wählt aus einer Reihe von Ergebnissen eine der Produktvorschauen aus, oder er durchsucht eine Kleidungskategorie und klickt auf ein bestimmtes Hemd, um ein größeres Bild zu sehen.
Bei dieser Veranstaltung geht es darum, das Interesse des Besuchers für dieses Produkt zu wecken.
Ometria . trackProductViewedEvent ( 'product_id' ) ;
Der Besucher hat eine spezielle Seite, einen Bildschirm oder ein Modal mit dem Inhalt des Warenkorbs angezeigt:
Ometria . trackBasketViewedEvent ( ) ;
Der Besucher hat seinen Warenkorb geändert:
const items : OmetriaBasketItem [ ] = [
{
productId : 'product-1' ,
sku : 'sku-product-1' ,
quantity : 1 ,
price : 12.0 ,
variantId : 'variant-1' ,
} ,
{
productId : 'product-2' ,
sku : 'sku-product-2' ,
quantity : 2 ,
price : 9.0 ,
variantId : 'variant-2' ,
} ,
{
productId : 'product-3' ,
sku : 'sku-product-3' ,
quantity : 3 ,
price : 20.0 ,
variantId : 'variant-3' ,
} ,
] ;
Ometria . trackBasketUpdatedEvent ( {
totalPrice : 12.0 ,
id : 'basket_id_eg' ,
currency : 'USD' ,
items ,
link : 'link_eg' ,
} ) ;
Dieses Ereignis verwendet den gesamten aktuellen Warenkorb als Parameter – nicht nur die aktualisierten Teile.
Dies hilft bei der Wiederherstellung nach verlorenen oder nicht synchronisierten Warenkorbereignissen: Das neueste Update ist immer maßgeblich.
OmetriaBasketItem ist ein Objekt, das den Inhalt eines Warenkorbartikels beschreibt. Es kann einen eigenen Preis und eine eigene Menge haben, basierend auf unterschiedlichen Regeln und Werbeaktionen, die angewendet werden. Es hat die folgenden Eigenschaften:
- ProductId : (
String
, erforderlich) – Eine Zeichenfolge, die die eindeutige Kennung dieses Produkts darstellt.- sku : (
String
, optional) – Eine Zeichenfolge, die die Lagereinheit darstellt und die Identifizierung eines bestimmten Artikels ermöglicht.- Menge : (
Int
, erforderlich) – Die Anzahl der Artikel, die dieser Eintrag darstellt.- Preis : (
Float
, erforderlich) – Float-Wert, der den Preis für einen Artikel darstellt. Die Währung wird durch den OmetriaBasket festgelegt, der diesen Artikel enthält- variandId : (
String
, optional) – Eine Kennung für ein Variantenprodukt, das dieser Werbebuchung zugeordnet ist.
OmetriaBasket ist ein Objekt, das den Inhalt eines Warenkorbs beschreibt und die folgenden Eigenschaften hat:
- id : (
String
, optional) – Eine eindeutige Kennung für diesen Warenkorb- Währung : (
String
, erforderlich) – Eine Zeichenfolge, die die Währung im dreibuchstabigen ISO 4217-Währungscode darstellt, z. B."USD"
,"GBP"
- totalPrice : (
float
, erforderlich) – Ein Float-Wert, der den Preis darstellt.- items : (
Array[OmetriaBasketItem]
) – Ein Array, das die Artikeleinträge in diesem Warenkorb enthält.- link : (
String
) – Ein Deeplink zur Web- oder In-App-Seite für diesen Warenkorb. Kann in einer an den Benutzer gesendeten Benachrichtigung verwendet werden, z. B. „Zur Kasse gehen vergessen? Hier ist Ihr Warenkorb zum Fortfahren: ‚https://eg.com/basket_url‘“. Wenn Sie diesem Link folgen, gelangen Sie direkt zur Warenkorbseite.
Verfolgen Sie, wann der Benutzer den Bezahlvorgang gestartet hat. Dies wird derzeit nur zum Zählen von Seitenaufrufen verwendet und hat in Ometria keine weiteren Auswirkungen.
Ometria . trackCheckoutStartedEvent ( 'order_id' ) ;
Die Bestellung wurde abgeschlossen und bezahlt:
const items : OmetriaBasketItem [ ] = [
{
productId : 'product-1' ,
sku : 'sku-product-1' ,
quantity : 1 ,
price : 12.0 ,
} ,
] ;
Ometria . trackOrderCompletedEvent ( 'order_id' , {
totalPrice : 12.0 ,
id : 'basket_id_eg' ,
currency : 'USD' ,
items ,
link : 'link_eg' ,
} ) ;
Verwenden Sie die Anleitung zum Umgang mit Interaktionen mit Benachrichtigungen, die URLs enthalten, um dieses Ereignis manuell zu verfolgen, wenn Sie über genügend Informationen zum Bildschirm (oder einem anderen Ziel) verfügen, den die App öffnen wird.
Ometria . trackDeepLinkOpenedEvent ( '/profile' , 'ProfileScreen' ) ;
Der Besucher sieht die „Startseite“ oder den Landing-Screen Ihrer App.
Ometria . trackHomeScreenViewedEvent ( ) ;
Der Besucher klickt/tippt/sieht/markiert oder zeigt auf andere Weise Interesse an einer Produktliste. Diese Art von Bildschirm umfasst Suchergebnisse, Auflistungen von Produkten in einer Gruppe, Kategorie, Sammlung oder jeden anderen Bildschirm, der eine Produktliste anzeigt.
Beispiel: Ein Geschäft verkauft Kleidung und der Besucher tippt auf „Damenschuhe“, um eine Liste der Produkte in dieser Kategorie anzuzeigen, oder er sucht nach „blauer Pullover“ und sieht eine Liste der Produkte in dieser Kategorie.
Dieses Ereignis sollte ausgelöst werden am:
Ometria . trackProductListingViewedEvent ( ) ;
Durch die Verfolgung der unabhängigen Bildschirmansichten eines Besuchers können wir seine Interaktion mit der App sowie die Position, an der er sich auf einer Reise befindet, nachverfolgen.
Ein analoges Ereignis auf einer Website wäre die Verfolgung unabhängiger Seitenaufrufe.
Die gängigen E-Commerce-Bildschirme verfügen alle über ein eigenes Ereignis auf oberster Ebene: angezeigter Warenkorb, Liste der angezeigten Produkte usw.
Ihre App verfügt möglicherweise über einen bestimmten Seitentyp, der für Vermarkter nützlich ist, um die Interaktion mit ihnen zu verfolgen.
Wenn Sie beispielsweise eine Werbeaktion durchführen und die Anzeige eines bestimmten Bildschirms Interesse an der Werbeaktion zeigt, dem das Marketing später möglicherweise nachgehen möchte.
Um diese benutzerdefinierten Bildschirme zu verfolgen, verwenden Sie das Ereignis „Bildschirm angezeigt“ :
Ometria . trackScreenViewedEvent ( 'OnboardingScreen' , { a : '1' , b : '2' } ) ;
Ihre App verfügt möglicherweise über bestimmte Abläufe oder Seiten, die für das Marketingteam von Interesse sind.
Beispielsweise möchte das Marketing möglicherweise eine E-Mail oder Benachrichtigung an jeden Benutzer senden, der sich für eine bestimmte Aktion angemeldet oder mit einer Schaltfläche oder einem bestimmten Element der App interagiert hat.
Wenn Sie ein benutzerdefiniertes Ereignis senden, das dieser Aktion entspricht, können sie darauf eine Automatisierungskampagne auslösen.
Erkundigen Sie sich beim Marketingteam nach den Einzelheiten und dem Bedarf. Insbesondere wenn sie Ometria bereits für E-Mails verwenden, wissen sie über Automatisierungskampagnen und benutzerdefinierte Ereignisse Bescheid.
Ometria . trackCustomEvent ( 'my_custom_type' , { } ) ;
Die folgenden Ereignisse werden vom SDK automatisch verfolgt.
Um diese Vorteile zu nutzen, reicht es aus, das SDK zu initialisieren. Es ist keine weitere Integration erforderlich (sofern nicht anders angegeben).
Ereignis | Beschreibung |
---|---|
Anwendung installiert | Die App wurde gerade installiert. Normalerweise kann das Senden nicht bei der tatsächlichen Installation der App erfolgen, sondern nur beim ersten Start der App. |
Anwendung gestartet | Jemand hat gerade die App gestartet. |
Anwendung im Vordergrund | Die App wurde bereits gestartet, lief jedoch im Hintergrund. Es wurde gerade in den Vordergrund gerückt. |
Anwendung im Hintergrund | Die App wurde aktiv verwendet und wurde gerade in den Hintergrund verschoben. |
Benachrichtigung im Beenden-Zustand der App erhalten | Das System hat eine Push-Benachrichtigung empfangen, während sich die App im Beenden-Status befand. (benötigt eine Benachrichtigungsdienst-Erweiterung auf iOS) |
Es ist ein Fehler aufgetreten | Auf der Clientseite ist ein Fehler aufgetreten. Wir versuchen, Probleme mit der tatsächlichen Benachrichtigungsnutzlast auf unserer Seite zu erkennen, sodass wir nicht mit Fehlern rechnen, die den Endbenutzern gemeldet werden müssen. |
Um den Strom- und Bandbreitenverbrauch zu reduzieren, sendet die Ometria-Bibliothek die Ereignisse nicht einzeln, es sei denn, Sie fordern dies an.
Stattdessen werden Ereignisstapel zusammengestellt, die während der Laufzeit der Anwendung an das Backend gesendet werden, wenn einer der folgenden Ereignisse eintritt:
pushtokenRefreshed
-Ereignis)notificationReceived
EreignisappForegrounded
EreignisappBackgrounded
EreignisSie können die Bibliothek jederzeit auffordern, alle verbleibenden Ereignisse an das Backend zu senden, indem Sie Folgendes anrufen:
Ometria . flush ( ) ;
Sie können alle Ereignisse, die verfolgt und noch nicht gelöscht wurden, vollständig löschen.
Rufen Sie dazu die folgende Methode auf:
Ometria . clear ( ) ;
Um zu sehen, welche Ereignisse erfasst wurden, können Sie die Protokolle überprüfen, die vom Ometria SDK stammen, sofern die Protokollierung aktiviert ist. Sie können nach dem Wort „Ometria“ filtern. Das SDK protokolliert alle Ereignisse, sobald sie auftreten, und protokolliert auch die Löschung, d. h. wenn sie an die mobile Ereignis-API von Ometria gesendet werden. Eventuelle Fehler beim Senden (API-Probleme oder Probleme bei der Ereignisvalidierung) wären hier ebenfalls sichtbar.
Ometria verwendet Firebase Cloud Messaging, um Push-Benachrichtigungen an die Mobilgeräte zu senden.
Sie müssen daher „React-Native Firebase“ als Abhängigkeit von Ometria hinzufügen, indem Sie die folgenden Zeilen verwenden:
import firebase from '@react-native-firebase/app' ;
import messaging from '@react-native-firebase/messaging' ;
Folgen Sie für Android dem Firebase ReactNative-Tutorial Firebase für Android. Für iOS folgen Sie dem Firebase ReactNative-Tutorial Firebase für iOS
Um Push-Benachrichtigungen zu verwenden, müssen Sie außerdem die Schritte im ReactNative-Handbuch für Push-Benachrichtigungen befolgen
Bei korrekter Einrichtung kann Ometria personalisierte Benachrichtigungen für Ihre mobile Anwendung senden.
Befolgen Sie diese Schritte:
Bevor Sie fortfahren, müssen Sie Folgendes bereits konfiguriert haben:
Weitere Informationen zu diesen Schritten finden Sie in Abschnitt 4. Initialisieren Sie die Bibliothek
Für Android 13 (API-Level 33) und höher müssen Sie zunächst die Berechtigung in Ihrer AndroidManifest.xml-Datei deklarieren:
< manifest ...>
< uses-permission android : name = " android.permission.POST_NOTIFICATIONS " />
< application ...>
...
</ application >
</ manifest >
Sie müssen Berechtigungen für Benachrichtigungen anfordern. Sie können React-Native-Permissions verwenden.
import { requestNotifications , RESULTS } from 'react-native-permissions' ;
...
await requestNotifications ( [ 'alert' , 'sound' , 'badge' ] ) . then ( ( { status } ) => {
if ( status === RESULTS . GRANTED ) {
console . log ( '? Push Notification permissions granted!' ) ;
}
} ) ;
Weitere Informationen zu Laufzeitberechtigungen für Benachrichtigungen auf Android finden Sie hier.
Nach der Ometria-Initialisierung müssen Sie das Firebase Push Notification Token (sowohl iOS als auch Android) weiterleiten .
Außerdem müssen Sie den Push-Benachrichtigungstoken bei jeder Aktualisierung an Ometria weiterleiten.
import Ometria from 'react-native-ometria' ;
import messaging from '@react-native-firebase/messaging' ;
await Ometria . initializeWithApiToken ( 'API_KEY' , {
notificationChannelname : 'Example Channel Name' , // optional, only for Android
appGroupIdentifier : 'group.com.ometria.sampleRN' , // optional, only for iOS
} ) ;
messaging ( )
. getToken ( )
. then ( ( pushToken ) => Ometria . onNewToken ( pushToken ) ) ;
messaging ( ) . onTokenRefresh ( ( pushToken ) => Ometria . onNewToken ( pushToken ) ) ;
Abonnieren Sie Remote-Nachrichten, die Ihre App erhält, während sie sich im Vordergrund-App-Status befindet. Sie können dies tun, indem Sie die onMessage
Methode aus dem @react-native-firebase/messaging
Paket verwenden.
Im Rückruf können Sie Ometria.onNotificationReceived
verwenden, um dem Ometria SDK mitzuteilen, dass eine Remote-Nachricht empfangen wurde und das notificationReceived
-Ereignis ausgelöst wird. Verwenden Sie Ometria.parseNotification
, wenn Sie Ometria-Daten aus der Remote-Nachricht extrahieren möchten.
messaging ( ) . onMessage ( async ( remoteMessage ) => {
Ometria . onNotificationReceived ( remoteMessage ) ;
const ometriaData = Ometria . parseNotification ( remoteMessage ) ;
// Use ometriaData
} ) ;
Wenn Sie eine solche benutzerdefinierte Lösung implementieren, vergessen Sie nicht, Ometria.onNotificationOpenedApp
aufzurufen, damit das SDK mit der Benachrichtigung interagiert, wenn das Benachrichtigungsinteraktionsereignis für Vordergrundbenachrichtigungen verarbeitet wird.
Damit Ometria alle Benachrichtigungen, die beim Beenden und im Hintergrundstatus der App unter iOS eingegangen sind, genau verfolgen kann, muss es die Leistung eines Hintergrunddienstes nutzen, der Zugriff auf alle Benachrichtigungen hat.
Eine vollständige Anleitung zum Einrichten einer Notification Service-Erweiterung finden Sie unter Hinzufügen eines Notification Service Extension-Ziels.
Damit Ometria alle Benachrichtigungen, die im Beenden- und Hintergrundstatus der App auf Android empfangen wurden, genau verfolgen kann, müssen Sie frühzeitig (in index.js
) Remote-Nachrichten abonnieren, die Ihre App im Beenden- und Hintergrundstatus erhält.
Ometria.onAndroidBackgroundMessage
teilt dem Ometria SDK mit, dass eine Remote-Nachricht empfangen wurde und das Ereignis „notificationReceived“ wird ausgelöst. Es benötigt das Ometria-Token, um das SDK im Hintergrund zu initialisieren.
Platform . OS === 'android' &&
messaging ( ) . setBackgroundMessageHandler ( async ( remoteMessage ) => {
Ometria . onAndroidBackgroundMessage ( {
ometriaToken : 'OMETRIA_KEY'
ometriaOptions : { } ,
remoteMessage ,
} ) ;
} ) ;
Ab Version 2.4.0 ist Ometria.setBackgroundMessageHandler
eine veraltete Methode. Verwenden Sie stattdessen Ometria.onAndroidBackgroundMessage
.
Wenn ein Benutzer im Hintergrund oder im Beenden-Zustand mit einer Benachrichtigung interagiert, müssen Sie dem Ometria SDK mitteilen, dass mit der Benachrichtigung interagiert wurde und die App geöffnet wurde. Sie können dies tun, indem Sie Ometria.onNotificationOpenedApp
mit der Remote-Nachricht als Parameter aufrufen.
// Check if the app was opened from quit state by a notification
messaging ( )
. getInitialNotification ( )
. then ( ( remoteMessage ) => {
if ( remoteMessage ) {
Ometria . onNotificationOpenedApp ( remoteMessage ) ;
}
} ) ;
// Subscribe to the app being opened from background state by a notification
messaging ( ) . onNotificationOpenedApp ( ( remoteMessage ) =>
Ometria . onNotificationOpenedApp ( remoteMessage )
) ;
Ab Version 2.4.0 ist Ometria.onNotificationInteracted
eine veraltete Methode. Verwenden Sie stattdessen Ometria.onNotificationOpenedApp
.
Mit Ometria können Sie neben Ihren Push-Benachrichtigungen auch URLs und Tracking-Informationen senden und diese auf dem Gerät verwalten. Wenn eine Benachrichtigung die App öffnet, können Sie die Benachrichtigungs-Remote-Nachricht analysieren und prüfen, ob sie eine Deeplink-URL enthält.
const notif = await Ometria . parseNotification ( remoteMessage ) ;
if ( notif ?. deepLinkActionUrl ) {
Ometria . trackDeepLinkOpenedEvent ( notif . deepLinkActionUrl , 'Browser' ) ;
Linking . openURL ( notif . deepLinkActionUrl ) ;
}
Ometria.parseNotification
gibt ein Objekt mit dem Typ OmetriaNotificationData
zurück, das wie folgt aussieht:
type OmetriaNotificationData = {
campaignType?: 'trigger; // represents automation campaigns
deepLinkActionUrl?: string;
externalCustomerId?: string;
imageUrl?: string;
sendId?: string;
tracking: { // Can be overridden / added in your automation campaign's settings
utm_medium?: string; // default is "push"
utm_source: string;
utm_campaign: string; // generated from campaign hash and title
om_campagin: string; // generated from campaign hash, campaign version and node id
[key: string]: string | undefined; // additional tracking data you add
};
};
Die Notification Service Extension dient zwei Zwecken:
Um die Erweiterung hinzuzufügen, gehen Sie zu Datei > Neu > Ziel und wählen Sie Notification Service Extension > Weiter aus.
In Ihrer Zielliste wird ein neues Element angezeigt:
Stellen Sie als Nächstes sicher, dass das Ometria SDK auch für dieses neue Ziel verfügbar ist, indem Sie Ihre Poddatei so aktualisieren, dass sie Ihr neu hinzugefügtes Ziel enthält, und Ometria als Abhängigkeit angeben.
# move this line before the App target
pod 'GoogleUtilities' , : modular_headers => true
use_frameworks! :linkage => :static
target 'sampleApp' do
# Pods for sampleApp
end
# Add the following lines
target 'NotificationService' do
use_frameworks! :linkage => :static
pod 'Ometria'
end
Zu diesem Zeitpunkt funktionieren die Hauptanwendung und die Erweiterung als zwei separate Einheiten, wobei die einzige gemeinsame Komponente der Code ist. Damit die Erweiterung Lese- und Schreibzugriff auf Daten erhält, die für das SDK relevant sind, muss sie sich in derselben App-Gruppe wie das Hauptziel befinden. Dadurch können das Hauptziel und die Erweiterung Daten gemeinsam nutzen.
Wählen Sie in Ihrem Projektnavigator Ihr Projekt aus, gehen Sie dann zu Signierung & Fähigkeiten und wählen Sie in der oberen linken Ecke + Fähigkeit aus.
Sobald Sie dies getan haben, wird unter „Signieren“ ein neuer Abschnitt angezeigt. Damit können Sie eine neue App-Gruppe hinzufügen. Stellen Sie sicher, dass Sie einen relevanten Bezeichner auswählen (z. B. group.[BUNDLE_IDENTIFIER]
) und behalten Sie den Wert bei, da Sie ihn bei der Instanziierung von Ometria benötigen. Wiederholen Sie den Vorgang für das Notification Service Extension-Ziel, und schon kann es losgehen.
Damit Ometria Benachrichtigungen abfangen kann, öffnen Sie die NotificationService
-Klasse, die automatisch zusammen mit der Erweiterung erstellt wurde, und ersetzen Sie den Inhalt durch Folgendes:
import UserNotifications
import Ometria
class NotificationService : OmetriaNotificationServiceExtension {
override func instantiateOmetria ( ) -> Ometria ? {
Ometria . initializeForExtension ( appGroupIdentifier : " group.[BUNDLE_IDENTIFIER] " )
}
}
Schließlich müssen Sie die App-Gruppen-ID verwenden, wenn Sie Ometria in der ReactNative-Anwendung initialisieren.
import Ometria from 'react-native-ometria' ;
// Ometria init
await Ometria . initializeWithApiToken ( 'API_KEY' , {
notificationChannelName : 'Example Channel Name' , // optional, only for Android
appGroupIdentifier : 'group.[BUNDLE_IDENTIFIER]' , // optional, only for iOS
} ) ;
Jetzt gibt Ihre App jedes Mal, wenn eine Benachrichtigung im Status „Beendet“ empfangen wird, ein notificationReceived
“-Ereignis aus und Sie können Rich-Content-Benachrichtigungen auf iOS anzeigen.
Ein vollständiges Beispiel und einen Anwendungsfall finden Sie in der Beispiel-App.
Ometria versendet personalisierte E-Mails mit URLs, die auf Ihre Website verweisen. Um diese URLs in Ihrer Anwendung zu öffnen, befolgen Sie unbedingt diese Anleitung.
Stellen Sie zunächst sicher, dass für Ihr Konto eine SSL-fähige Ometria-Tracking-Domain eingerichtet ist. Möglicherweise haben Sie dies bereits für Ihre E-Mail-Kampagnen, aber wenn nicht, bitten Sie Ihren Ometria-Ansprechpartner, eine solche einzurichten, und er sollte Ihnen die Domain zur Verfügung stellen.
Bitte befolgen Sie die iOS-Dokumentation für zugehörige Domänen, erstellen Sie dann eine Apple-App-Site-Assoziationsdatei und senden Sie sie an Ihren Ometria-Kontakt.
Der letzte Schritt besteht darin, die URLs in Ihrer App zu verarbeiten und den Benutzer zu den entsprechenden Abschnitten der App zu leiten. Beachten Sie, dass Sie die Zuordnung zwischen den URLs Ihrer Website und den Bildschirmen Ihrer App implementieren müssen.
Siehe auch Push-Benachrichtigungen mit App-Bildschirmen verknüpfen.
Wenn Sie es mit normalen URLs zu tun haben, die auf Ihre Website verweisen, können Sie diese in verschiedene Pfadkomponenten und Parameter zerlegen. Auf diese Weise können Sie die erforderlichen Informationen abrufen, um zum richtigen Bildschirm in Ihrer App zu navigieren.
Damit ReactNative erkennt, dass eine URL die App öffnet, müssen Sie die Datei AppDelegate.m aus dem iOS-Ordner anpassen und den folgenden Code zu AppDelegate.m aus ./ios/ProjectName hinzufügen
- ( BOOL )application:(UIApplication *)application openURL:( NSURL *)url
sourceApplication:( NSString *)sourceApplication annotation:( id )annotation
{
return [RCTLinkingManager application: application openURL: url
sourceApplication: sourceApplication annotation: annotation];
}
// Only if your app is using [Universal Links](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html).
- ( BOOL )application:(UIApplication *)application continueUserActivity:( NSUserActivity *)userActivity
restorationHandler:( void (^)( NSArray * _Nullable))restorationHandler
{
return [RCTLinkingManager application: application
continueUserActivity: userActivity
restorationHandler: restorationHandler];
}
Für Android fügen Sie bitte Folgendes hinzu:
< intent-filter android : autoVerify = " true " >
< action android : name = " android.intent.action.VIEW " />
< category android : name = " android.intent.category.DEFAULT " />
< category android : name = " android.intent.category.BROWSABLE " />
< data
android : host = " clickom.omdemo.net "
android : scheme = " https " />
</ intent-filter >
nach /android/app/src/main/AndroidManifest.xml
Allerdings enthalten Ometria-E-Mails verschleierte Tracking-URLs, die vorab wieder in die ursprüngliche URL umgewandelt werden müssen, die auf Ihre Website verweist