Vorlagenspezifikationen für Ziele, die mit Destination SDK erstellt wurden
Verwenden Sie den Vorlagenspezifikationsteil der Ziel-Server-Konfiguration, um zu konfigurieren, wie die an Ihr Ziel gesendeten HTTP-Anfragen formatiert werden.
In einer Vorlagenspezifikation können Sie definieren, wie Sie Profilattributfelder zwischen dem XDM-Schema und dem Format transformieren können, das Ihre Plattform unterstützt.
Vorlagenspezifikationen sind Teil der Ziel-Server-Konfiguration für Echtzeit-Ziele (Streaming).
Informationen dazu, wo diese Komponente in eine mit Destination SDK erstellte Integration passt, finden Sie im Diagramm in der Dokumentation Konfigurationsoptionen oder im Handbuch Verwenden von Destination SDK zum Konfigurieren eines Streaming-Ziels.
Sie können die Vorlagenspezifikationen für Ihr Ziel über den /authoring/destination-servers-Endpunkt konfigurieren. Detaillierte Beispiele für API-Aufrufe, in denen Sie die auf dieser Seite angezeigten Komponenten konfigurieren können, finden Sie auf den folgenden API-Referenzseiten.
Unterstützte Integrationstypen supported-integration-types
Die nachstehende Tabelle beschreibt ausführlich, welche Integrationstypen die auf dieser Seite beschriebenen Funktionen unterstützen.
Konfigurieren einer Vorlagenspezifikation configure-template-spec
Adobe verwendet eine Vorlagensprache, die Jinja ähnelt, um die Felder aus dem XDM-Schema in ein von Ihrem Ziel unterstütztes Format umzuwandeln.
Weitere Informationen zur Transformation finden Sie unter den folgenden Links:
Unten finden Sie ein Beispiel einer HTTP-Anfragenvorlage mit Beschreibungen der einzelnen Parameter.
{
"httpTemplate":{
"httpMethod":"POST",
"requestBody":{
"templatingStrategy":"PEBBLE_V1",
"value":"{ \"attributes\": [ {% for ns in [\"external_id\", \"yourdestination_id\"] %} {% if input.profile.identityMap[ns] is not empty and first_namespace_encountered %} , {% endif %} {% set first_namespace_encountered = true %} {% for identity in input.profile.identityMap[ns]%} { \"{{ ns }}\": \"{{ identity.id }}\" {% if hasSegments(input.profile.segmentMembership) %} , \"AEPSegments\": { \"add\": [ {% for namespace in input.profile.segmentMembership %} {% for segment in input.profile.segmentMembership[namespace.key] %} {% if (segment.value.status == \"realized\" or segment.value.status == \"existing\") and destination.namespaceSegmentAliases[namespace.key][segment.key] is defined %} {% if added_segment_found %} , {% endif %} {% set added_segment_found = true %} \"{{ destination.namespaceSegmentAliases[namespace.key][segment.key] }}\" {% endif %} {% endfor %} {% endfor %} ], \"remove\": [ {% for namespace in input.profile.segmentMembership %} {% for segment in input.profile.segmentMembership[namespace.key] %} {% if segment.value.status == \"exited\" and destination.namespaceSegmentAliases[namespace.key][segment.key] is defined %} {% if removed_segment_found %} , {% endif %} {% set removed_segment_found = true %} \"{{ destination.namespaceSegmentAliases[namespace.key][segment.key] }}\" {% endif %} {% endfor %} {% endfor %} ] } {% set removed_segment_found = false %} {% set added_segment_found = false %} {% endif %} {% if input.profile.attributes is not empty %} , {% endif %} {% for attribute in input.profile.attributes %} \"{{ attribute.key }}\": {% if attribute.value is empty %} null {% else %} \"{{ attribute.value.value }}\" {% endif %} {% if not loop.last%} , {% endif %} {% endfor %} } {% if not loop.last %} , {% endif %} {% endfor %} {% endfor %} ] }"
},
"contentType":"application/json"
}
}
httpMethodGET, PUT, POST, DELETE, PATCH.templatingStrategyPEBBLE_V1.valueInformationen zum Schreiben der Vorlage finden Sie im Abschnitt Verwenden von Vorlagen.
Weitere Informationen zur Bereinigung von Zeichen finden Sie unter RFC JSON-Standard, Abschnitt 7.
Ein Beispiel für eine einfache Transformation finden Sie unter Umwandlung von Profilattributen .
contentTypeapplication/json gesetzt werden.Konvertieren einer Vorlage zur Unterstützung externer Zielgruppen template-converter-tool
Ältere Vorlagen lesen nur die Zielgruppenzugehörigkeit aus dem ups-Namespace. Aktualisieren Sie diese Vorlagen, um über jeden Namespace in segmentMembership zu iterieren, sodass sie auch die Mitgliedschaft für externe Zielgruppen“ .
Informationen zum Konfigurieren Ihres Ziels für die Unterstützung externer Zielgruppen finden Sie unter Konfigurieren der Unterstützung für externe Zielgruppen.
Verwenden Sie das Tool Vorlagenkonverter, um Ihre vorhandene Vorlage automatisch zu konvertieren. Das Tool schreibt eine Vorlage, die nur den ups Namespace liest, in eine Vorlage um, die alle Namespaces in segmentMembership durchläuft, einschließlich externer Zielgruppen.
Herunterladen des Vorlagen-Konvertierer-Tools
Für das Tool ist Java Runtime Environment (JRE) 11 oder höher erforderlich. Es werden zwei Modi unterstützt:
-
CLI-Modus: Führen Sie das Tool von einem Terminal aus und übergeben Sie Ihre vorhandene Vorlage als Parameter.
code language-shell java -jar templates-converter-cli.jar "your-existing-template-string"Das Tool druckt die konvertierte Vorlage auf das Terminal.
-
UI-Modus: Führen Sie das Tool mit einer grafischen Oberfläche aus. Für diesen Modus ist die JavaFX-SDK erforderlich, die im heruntergeladenen Archiv enthalten ist.
code language-shell java --module-path="./javafx-sdk-17.0.7/lib" --add-modules=javafx.controls,javafx.fxml -jar templates-converter-ui.jar
Nachdem Sie Ihre Vorlage konvertiert haben, testen Sie sie mit mehreren Beispielprofilen mithilfe der Render-Vorlagen-API um zu bestätigen, dass sie immer noch korrekt gerendert wird, bevor Sie sie zu Ihrer Ziel-Server-Konfiguration hinzufügen.
Konfigurieren von Anfragekopfzeilen headers
Zusätzlich zum Anfragetext können Sie den Aufrufen, die Experience Platform an Ihr Ziel sendet, benutzerdefinierte HTTP-Kopfzeilen hinzufügen. Jeder Kopfzeileneintrag verwendet dieselben templatingStrategy und value Felder wie andere vorlagenbasierte Felder im Ziel-Server.
"httpTemplate": {
"httpMethod": "POST",
"headers": [
{
"header": "Authorization",
"value": {
"templatingStrategy": "PEBBLE_V1",
"value": "Basic {{ (authData.username + ':' + authData.password) | base64encode }}"
}
},
{
"header": "x-integration",
"value": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{customerData.integrationId}}"
}
},
{
"header": "Amazon-Advertising-API-ClientId",
"value": {
"templatingStrategy": "PEBBLE_V1",
"value": "{{authData.clientId}}"
}
},
{
"header": "Accept",
"value": {
"templatingStrategy": "NONE",
"value": "application/json"
}
}
]
}
headerAuthorization, Content-Type oder eine benutzerdefinierte Kopfzeile.value.templatingStrategyPEBBLE_V1, wenn der Kopfzeilenwert dynamisch ist oder Pebble-Ausdrücke verwendet. Verwenden Sie NONE für statische Werte.value.value{{customerData.integrationId}}, {{authData.clientId}} oder {{ (authData.username + ':' + authData.password) | base64encode }}.Einige Partner-APIs erfordern eine benutzerdefinierte Kopfzeile, die mit einem Wert aus den von Kundinnen und Kunden bereitgestellten Authentifizierungsdaten gefüllt wird, anstatt der standardmäßigen Authorization-Kopfzeile. Der oben gezeigte Amazon-Advertising-API-ClientId-Header ist ein Beispiel für dieses Muster, bei dem der Header-Wert direkt aus einem authData Feld stammt.
value eine flache Zeichenfolge anstelle eines Objekts mit templatingStrategy- und value ist. Ein Beispiel finden Sie unter Verwaltung von Zielgruppen-Metadaten.Für Ziele, die eine einfache Authentifizierung verwenden und eine benutzerdefinierte Base64-codierte Kopfzeile benötigen, finden Sie weitere Informationen unter Anpassen der einfachen Authentifizierungs-Kopfzeile.
Nächste Schritte next-steps
Nach dem Lesen dieses Artikels sollten Sie besser verstehen, was eine Vorlagenspezifikation ist und wie Sie sie konfigurieren können.
Weitere Informationen zu den anderen Ziel-Server-Komponenten finden Sie in den folgenden Artikeln: