Specifiche del modello per le destinazioni create con Destination SDK

Utilizza la parte specifica del modello della configurazione del server di destinazione per configurare la modalità di formattazione delle richieste HTTP inviate alla destinazione.

In una specifica del modello è possibile definire come trasformare i campi degli attributi del profilo tra lo schema XDM e il formato supportato dalla piattaforma.

Le specifiche del modello fanno parte della configurazione del server di destinazione per le destinazioni in tempo reale (streaming).

Per capire dove questo componente si inserisce in un’integrazione creata con Destination SDK, consulta il diagramma nella documentazione delle opzioni di configurazione oppure consulta la guida su come utilizzare Destination SDK per configurare una destinazione di streaming.

È possibile configurare le specifiche del modello per la destinazione tramite l’endpoint /authoring/destination-servers. Consulta le seguenti pagine di riferimento API per esempi dettagliati di chiamate API, in cui puoi configurare i componenti mostrati in questa pagina.

IMPORTANT
Tutti i nomi e i valori dei parametri supportati da Destination SDK sono con distinzione tra maiuscole e minuscole. Per evitare errori di distinzione tra maiuscole e minuscole, utilizza i nomi e i valori dei parametri esattamente come mostrato nella documentazione.

Tipi di integrazione supportati supported-integration-types

Consulta la tabella seguente per informazioni dettagliate sui tipi di integrazioni che supportano le funzionalità descritte in questa pagina.

Tipo di integrazione
Supporta la funzionalità
Integrazioni in tempo reale (streaming)
Sì
Integrazioni basate su file (batch)
No

Configurare una specifica di modello configure-template-spec

Adobe utilizza un linguaggio per modelli simile a Jinja per trasformare i campi dallo schema XDM in un formato supportato dalla tua destinazione.

Configurazione modello evidenziata

Per ulteriori informazioni sulla trasformazione, consulta i collegamenti seguenti:

TIP
Adobe offre uno strumento per sviluppatori che consente di creare e testare un modello di trasformazione dei messaggi.

Di seguito è riportato un esempio di modello di richiesta HTTP con la descrizione di ogni singolo parametro.

{
   "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"
   }
}
Parametro
Tipo
Descrizione
httpMethod
Stringa
Obbligatorio. Il metodo che Adobe utilizzerà nelle chiamate al server. Metodi supportati: GET, PUT, POST, DELETE, PATCH.
templatingStrategy
Stringa
Obbligatorio. Usa PEBBLE_V1.
value
Stringa
Obbligatorio. Questa stringa è la versione con escape di carattere del modello che formatta le richieste HTTP inviate da Experience Platform nel formato previsto dalla destinazione.
Per informazioni su come scrivere il modello, leggere la sezione su utilizzo del modello.
Per ulteriori informazioni sull’escape di caratteri, vedere lo standard JSON RFC, sezione sette.
Per un esempio di semplice trasformazione, vedere la trasformazione attributi di profilo.
contentType
Stringa
Obbligatorio. Il tipo di contenuto accettato dal server. A seconda del tipo di output prodotto dal modello di trasformazione, può essere uno qualsiasi dei tipi di contenuto dell’applicazione HTTP supportati. Nella maggior parte dei casi, questo valore deve essere impostato su application/json.

Convertire un modello per supportare pubblici esterni template-converter-tool

I modelli meno recenti leggono solo l’appartenenza al pubblico dallo spazio dei nomi ups. Aggiornare questi modelli per eseguire l’iterazione su ogni spazio dei nomi in segmentMembership, in modo che leggano anche l’appartenenza per tipi di pubblico esterni.

Per informazioni su come configurare la destinazione per il supporto di tipi di pubblico esterni, vedere Configurare il supporto per tipi di pubblico esterni.

Utilizza lo strumento Convertitore modelli per convertire automaticamente il modello esistente. Lo strumento riscrive un modello che legge solo lo spazio dei nomi ups in un modello che esegue iterazioni su tutti gli spazi dei nomi in segmentMembership, inclusi i tipi di pubblico esterni.

Download dello strumento di conversione dei modelli

Lo strumento richiede Java Runtime Environment (JRE) 11 o versione successiva. Supporta due modalità:

  • Modalità CLI (Command Line Interface): eseguire lo strumento da un terminale e passare il modello esistente come parametro.

    code language-shell
    java -jar templates-converter-cli.jar "your-existing-template-string"
    

    Lo strumento stampa la maschera convertita sul terminale.

  • Modalità interfaccia utente: eseguire lo strumento con un’interfaccia grafica. Questa modalità richiede JavaFX SDK, incluso nell’archivio scaricato.

    code language-shell
    java --module-path="./javafx-sdk-17.0.7/lib" --add-modules=javafx.controls,javafx.fxml -jar templates-converter-ui.jar
    

Dopo aver convertito il modello, eseguirne il test su più profili di esempio utilizzando l’API del modello di rendering per confermare che il rendering sia ancora corretto prima di aggiungerlo alla configurazione del server di destinazione.

IMPORTANT
Lo strumento Templates Converter riscrive solo la sintassi del modello. Non convalida la logica di business del modello convertito. Verifica sempre il modello convertito prima di utilizzarlo in produzione.

Configurare le intestazioni di richiesta headers

Oltre al corpo della richiesta, puoi aggiungere intestazioni HTTP personalizzate alle chiamate effettuate da Experience Platform alla destinazione. Ogni voce di intestazione utilizza gli stessi campi templatingStrategy e value degli altri campi con modello nel server di destinazione.

"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"
      }
    }
  ]
}
Parametro
Tipo
Descrizione
header
Stringa
Obbligatorio. Nome dell’intestazione, ad esempio Authorization, Content-Type o intestazione personalizzata.
value.templatingStrategy
Stringa
Obbligatorio. Utilizzare PEBBLE_V1 quando il valore dell’intestazione è dinamico o utilizza espressioni Pebble. Utilizza NONE per i valori statici.
value.value
Stringa
Obbligatorio. Il valore dell’intestazione. Supporta espressioni Pebble che fanno riferimento a dati cliente o a campi di dati di autenticazione, ad esempio {{customerData.integrationId}}, {{authData.clientId}} o {{ (authData.username + ':' + authData.password) | base64encode }}.

Alcune API partner richiedono un’intestazione personalizzata compilata con un valore delle credenziali di autenticazione fornite dai clienti, anziché l’intestazione standard Authorization. L’intestazione Amazon-Advertising-API-ClientId mostrata sopra è un esempio di questo pattern, in cui il valore dell’intestazione proviene direttamente da un campo authData.

NOTE
Questa struttura si applica solo alle intestazioni del server di destinazione. Le intestazioni dei modelli di metadati del pubblico utilizzano un modulo più semplice, in cui value è una stringa semplice invece di un oggetto con templatingStrategy e value campi. Ad esempio, consulta Gestione metadati pubblico.

Per le destinazioni che utilizzano l’autenticazione di base e che richiedono un’intestazione con codifica Base64 personalizzata, vedere Personalizzare l’intestazione dell’autenticazione di base.

Passaggi successivi next-steps

Dopo aver letto questo articolo, dovresti conoscere meglio cos’è una specifica di modello e come configurarla.

Per ulteriori informazioni sugli altri componenti del server di destinazione, consulta i seguenti articoli:

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