Verwalten von Transaktionsnachrichten managing-transactional-messages
Nachdem Sie ein Transaktionsereignis erstellt und veröffentlicht haben, müssen Sie die Aktivierung dieses Ereignisses in Ihre Website integrieren.
Sie möchten zum Beispiel, dass ein "Warenkorbabbruch" ausgelöst wird, wenn ein Kunde Ihre Website verlässt, bevor er die Produkte in seinem Warenkorb gekauft hat. Dazu muss Ihr Web-Entwickler die REST Transactional Messages-API verwenden.
- Senden Sie anhand der POST-Methode eine Anfrage, die das Senden des Transaktionsereignisses auslöst.
- Die Antwort auf die POST-Anfrage enthält einen Primärschlüssel, mit dem Sie eine oder mehrere Anfragen über eine GET-Anfrage senden können. Sie können dann den Ereignisstatus abrufen.
Senden eines Transaktionsereignisses sending-a-transactional-event
Das Transaktionsereignis wird über eine POST-Anfrage mit der folgenden URL-Struktur gesendet:
POST https://mc.adobe.io/<ORGANIZATION>/campaign/<transactionalAPI>/<eventID>
-
<ORGANISATION>: Ihre persönliche Organisationskennung. Weitere Informationen finden Sie in diesem Abschnitt.
-
<transactionalAPI>: die Endpunkte der Transaktionsnachrichten-API.
Der Name des API-Endpunkts für Transaktionsnachrichten hängt von der Konfiguration Ihrer Instanz ab. Er entspricht dem Wert "mc", gefolgt von Ihrer persönlichen Organisationskennung. Nehmen wir als Beispiel das Unternehmen Geometrixx mit der Organisationskennung "geometrixx". In diesem Fall sieht die POST-Anfrage wie folgt aus:
POST https://mc.adobe.io/geometrixx/campaign/mcgeometrixx/<eventID>
-
<eventID>: der Ereignistyp, den Sie senden möchten. Diese ID wird beim Erstellen der Ereigniskonfiguration generiert
POST-Anfrage-Kopfzeile
Die Anfrage muss eine "Inhaltstyp: application/json"-Kopfzeile beinhalten.
Sie müssen einen Zeichensatz hinzufügen, z. B. utf-8. Beachten Sie, dass dieser Wert von der verwendeten REST-Anwendung abhängt.
-X POST \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
-H 'Cache-Control: no-cache' \
-H 'X-Api-Key: <API_KEY>' \
-H 'Content-Type: application/json;charset=utf-8' \
-H 'Content-Length:79' \
POST-Anfrage-Hauptteil
Die Ereignisdaten sind im JSON-POST-Hauptteil enthalten. Die Ereignisstruktur hängt von ihrer Definition ab.
Die folgenden optionalen Parameter können zum Ereignisinhalt hinzugefügt werden, um das Senden von mit dem Ereignis verknüpften Transaktionsnachrichten zu verwalten:
- Ablauf (optional): Nach diesem Datum wird das Senden des Transaktionsereignisses abgebrochen.
- Geplant (optional): Ab diesem Datum wird das Transaktionsereignis verarbeitet und die Transaktionsnachricht gesendet.
Parameter des Kommunikationskanals
Je nach zu verwendendem Kanal sollte die Payload die folgenden Parameter enthalten:
- E-Mail-Kanal: „Mobiltelefon“
- SMS-Kanal: „email“
Wenn die Payload nur „Mobiltelefon“ enthält, wird der SMS-Kommunikationskanal ausgelöst. Wenn die Payload nur „E-Mail“ enthält, wird der E-Mail-Kommunikationskanal ausgelöst.
Das folgende Beispiel zeigt eine Payload, bei der eine SMS-Kommunikation ausgelöst wird:
curl --location 'https://mc.adobe.io/<ORGANIZATION>/campaign/mcAdobe/EVTcartAbandonment' \
--header 'Authorization: Bearer <ACCESS_TOKEN>' \
--header 'Cache-Control: no-cache' \
--header 'X-Api-Key: <API_KEY>' \
--header 'Content-Type: application/json;charset=utf-8' \
--header 'Content-Length: 79' \
--data '
{
"mobilePhone":"+9999999999",
"scheduled":"2017-12-01 08:00:00.768Z",
"expiration":"2017-12-31 08:00:00.768Z",
"ctx":
{
"cartAmount": "$ 125",
"lastProduct": "Leather motorbike jacket",
"firstName": "Jack"
}
}'
Wenn die Payload sowohl „E-Mail“ als auch „Mobiltelefon“ enthält, ist die standardmäßige Kommunikationsmethode E-Mail. Um eine SMS zu senden, wenn beide Felder vorhanden sind, müssen Sie sie explizit in der Payload mit dem Parameter „wishChannel“ angeben.
Antwort auf die POST-Anfrage
Die POST-Antwort gibt den Status des Transaktionsereignisses zum Zeitpunkt der Erstellung zurück. Verwenden Sie zum Abrufen des aktuellen Status (Ereignisdaten, Ereignisstatus…) den in einer GET-Anfrage von der POST-Antwort zurückgegebenen Primärschlüssel:
GET https://mc.adobe.io/<ORGANIZATION>/campaign/<transactionalAPI>/<eventID>/
Beispielanfrage
POST-Anfrage zum Senden des Ereignisses.
-X POST https://mc.adobe.io/<ORGANIZATION>/campaign/mcAdobe/EVTcartAbandonment \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
-H 'Cache-Control: no-cache' \
-H 'X-Api-Key: <API_KEY>' \
-H 'Content-Type: application/json;charset=utf-8' \
-H 'Content-Length:79'
{
"
":"test@example.com",
"scheduled":"2017-12-01 08:00:00.768Z",
"expiration":"2017-12-31 08:00:00.768Z",
"ctx":
{
"cartAmount": "$ 125",
"lastProduct": "Leather motorbike jacket",
"firstName": "Jack"
}
}
Antwort auf die POST-Anfrage.
{
"PKey":"<PKEY>",
"ctx":
{
"cartAmount": "",
"lastProduct": "",
"firstName": ""
}
"email":"",
"scheduled":"2017-12-01 08:00:00.768Z",
"expiration":"2017-12-31 08:00:00.768Z",
"href": "mcAdobe/EVTcartAbandonment/<PKEY>",
"serverUrl":" https://myserver.com ",
"status":"pending",
"type":""
}
Status des Transaktionsereignisses transactional-event-status
In der Antwort können Sie im Feld "Status" ermitteln, ob das Ereignis verarbeitet wurde oder nicht:
- Ausstehend: Das Ereignis steht aus – das Ereignis erhält diesen Status, wenn es gerade ausgelöst wurde.
- Verarbeitung läuft: Das Ereignis muss noch versandt werden – es wird in eine Nachricht umgewandelt und die Nachricht wird gesendet.
- Angehalten: Der Ereignisvorgang wurde angehalten. Sie wird nicht mehr verarbeitet, sondern in einer Warteschlange in der Adobe Campaign-Datenbank aufbewahrt.
- Verarbeitet: Das Ereignis wurde verarbeitet und die Nachricht wurde erfolgreich gesendet.
- Ignoriert: Das Ereignis wurde vom Versand ignoriert, normalerweise dann, wenn eine Adresse unter Quarantäne steht.
- Versand fehlgeschlagen: Bei der Verarbeitung des Ereignisses ist ein Versandfehler aufgetreten.
- Routing fehlgeschlagen: Die Routing-Phase ist fehlgeschlagen. Dies kann beispielsweise geschehen, wenn der angegebene Ereignistyp nicht gefunden werden kann.
- Zu alt: Das Ereignis ist abgelaufen, bevor es verarbeitet werden konnte. Das kann verschiedene Gründe haben, z. B. wenn ein Senden mehrmals fehlschlägt (was dazu führt, dass das Ereignis nicht mehr aktuell ist) oder der Server Ereignisse nach einer Überlastung nicht mehr verarbeiten kann.