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.

IMPORTANT
Bei allen von Destination SDK unterstützten Parameternamen und Werten wird nach Groß-/Kleinschreibung unterschieden. Um Fehler bei der Groß-/Kleinschreibung zu vermeiden, verwenden Sie die Parameternamen und -werte genau wie in der Dokumentation gezeigt.

Unterstützte Integrationstypen supported-integration-types

Die nachstehende Tabelle beschreibt ausführlich, welche Integrationstypen die auf dieser Seite beschriebenen Funktionen unterstützen.

Integrationstyp
Unterstützt Funktionen
Echtzeit-Integrationen (Streaming)
Ja
Dateibasierte (Batch-)Integrationen
Nein

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.

Vorlagenkonfiguration hervorgehoben

Weitere Informationen zur Transformation finden Sie unter den folgenden Links:

TIP
Adobe bietet ein Entwickler-Tool, das Ihnen beim Erstellen und Testen einer Nachrichtenumwandlungsvorlage hilft.

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"
   }
}
Parameter
Typ
Beschreibung
httpMethod
Zeichenfolge
Erforderlich. Die Methode, die Adobe bei Aufrufen an Ihren Server verwendet. Unterstützte Methoden: GET, PUT, POST, DELETE, PATCH.
templatingStrategy
Zeichenfolge
Erforderlich. Verwenden Sie PEBBLE_V1.
value
Zeichenfolge
Erforderlich. Diese Zeichenfolge ist die mit Escape-Zeichen versehene Version der Vorlage, die die von Experience Platform gesendeten HTTP-Anfragen in das von Ihrem Ziel erwartete Format formatiert.
Informationen 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 .
contentType
Zeichenfolge
Erforderlich. Der Content-Typ, den Ihr Server akzeptiert. Je nachdem, welchen Typ von Ausgabe Ihre Umwandlungsvorlage erzeugt, kann dies einer der unterstützten Content-Typen von HTTP-Anwendungen sein. In den meisten Fällen sollte dieser Wert auf application/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.

IMPORTANT
Das Tool „Vorlagenkonverter“ schreibt nur die Syntax Ihrer Vorlage neu. Die Business-Logik der konvertierten Vorlage wird nicht validiert. Testen Sie die konvertierte Vorlage immer, bevor Sie sie in der Produktion verwenden.

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"
      }
    }
  ]
}
Parameter
Typ
Beschreibung
header
Zeichenfolge
Erforderlich. Der Kopfzeilenname, z. B. Authorization, Content-Type oder eine benutzerdefinierte Kopfzeile.
value.templatingStrategy
Zeichenfolge
Erforderlich. Verwenden Sie PEBBLE_V1, wenn der Kopfzeilenwert dynamisch ist oder Pebble-Ausdrücke verwendet. Verwenden Sie NONE für statische Werte.
value.value
Zeichenfolge
Erforderlich. Der Header-Wert. Unterstützt Pebble-Ausdrücke, die auf Kundendaten- oder Authentifizierungsdatenfelder verweisen, z. B. {{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.

NOTE
Diese Struktur gilt nur für Ziel-Server-Kopfzeilen. Die Kopfzeilen von Zielgruppen-Metadatenvorlagen verwenden ein einfacheres Formular, bei dem 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:

recommendation-more-help
experience-platform-help-destinations