Especificaciones de plantilla para destinos creados con Destination SDK

Utilice la parte de especificación de plantilla de la configuración del servidor de destino para configurar cómo dar formato a las solicitudes HTTP enviadas al destino.

En una especificación de plantilla puede definir cómo transformar los campos de atributos de perfil entre el esquema XDM y el formato que admite su plataforma.

Las especificaciones de plantilla forman parte de la configuración del servidor de destino para destinos en tiempo real (flujo).

Para saber dónde encaja este componente en una integración creada con Destination SDK, consulte el diagrama en la documentación de opciones de configuración o consulte la guía sobre cómo usar Destination SDK para configurar un destino de flujo continuo.

Puede configurar las especificaciones de la plantilla para su destino a través del extremo /authoring/destination-servers. Consulte las siguientes páginas de referencia de la API para ver ejemplos detallados de llamadas de la API donde puede configurar los componentes que se muestran en esta página.

IMPORTANT
Todos los nombres y valores de parámetro admitidos por Destination SDK distinguen entre mayúsculas y minúsculas 1}. Para evitar errores de distinción entre mayúsculas y minúsculas, utilice los nombres y valores de parámetros exactamente como se muestra en la documentación.

Tipos de integración admitidos supported-integration-types

Consulte la tabla siguiente para obtener detalles sobre qué tipos de integraciones admiten la funcionalidad descrita en esta página.

Tipo de integración
Admite funcionalidad
Integraciones en tiempo real (streaming)
Sí
Integraciones basadas en archivos (por lotes)
No

Configuración de una especificación de plantilla configure-template-spec

Adobe usa un lenguaje de creación de plantillas similar a Jinja para transformar los campos del esquema XDM en un formato compatible con el destino.

Configuración de plantilla resaltada

Para obtener más información sobre la transformación, visite los siguientes vínculos:

TIP
Adobe ofrece herramienta para desarrolladores que le ayudará a crear y probar una plantilla de transformación de mensajes.

Consulte a continuación un ejemplo de una plantilla de solicitud HTTP, junto con descripciones de cada parámetro individual.

{
   "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"
   }
}
Parámetro
Tipo
Descripción
httpMethod
Cadena
Requerido. El método que Adobe utilizará en las llamadas a su servidor. Métodos admitidos: GET, PUT, POST, DELETE, PATCH.
templatingStrategy
Cadena
Requerido. Usar PEBBLE_V1.
value
Cadena
Requerido. Esta cadena es la versión de la plantilla con caracteres de escape que da formato a las solicitudes HTTP enviadas por Experience Platform al formato esperado por el destino.
Para obtener información sobre cómo escribir la plantilla, lea la sección sobre usar la creación de plantillas.
Para obtener más información acerca del escape de caracteres, consulte el estándar RFC JSON, sección siete.
Para ver un ejemplo de transformación simple, vea la transformación atributos de perfil.
contentType
Cadena
Requerido. El tipo de contenido que acepta el servidor. Según el tipo de salida que produzca la plantilla de transformación, puede ser cualquiera de los tipos de contenido de aplicación HTTP admitidos. En la mayoría de los casos, este valor debe establecerse en application/json.

Conversión de una plantilla para admitir audiencias externas template-converter-tool

Las plantillas antiguas solo leen la pertenencia a audiencias del espacio de nombres ups. Actualice estas plantillas para que se reproduzcan en todas las áreas de nombres de segmentMembership, de modo que también se lea la pertenencia de audiencias externas.

Para obtener información sobre cómo configurar el destino para que admita audiencias externas, consulte Configurar la compatibilidad con audiencias externas.

Use la herramienta Conversor de plantillas para convertir automáticamente la plantilla existente. La herramienta reescribe una plantilla que sólo lee el espacio de nombres ups en una plantilla que se repite en todas las áreas de nombres de segmentMembership, incluidas las audiencias externas.

Descargar la herramienta Conversor de plantillas

La herramienta requiere Java Runtime Environment (JRE) 11 o posterior. Admite dos modos:

  • Modo de interfaz de línea de comandos (CLI): ejecute la herramienta desde un terminal y pase la plantilla existente como parámetro.

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

    La herramienta imprime la plantilla convertida en el terminal.

  • Modo de interfaz de usuario: ejecute la herramienta con una interfaz gráfica. Este modo requiere JavaFX SDK, que se incluye en el archivo descargado.

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

Después de convertir la plantilla, pruébela con varios perfiles de muestra mediante la API de plantilla de procesamiento para confirmar que se sigue representando correctamente antes de agregarla a la configuración del servidor de destino.

IMPORTANT
La herramienta Conversor de plantillas solo reescribe la sintaxis de la plantilla. No valida la lógica empresarial de la plantilla convertida. Pruebe siempre la plantilla convertida antes de utilizarla en la producción.

Configuración de encabezados de solicitud headers

Además del cuerpo de la solicitud, puede agregar encabezados HTTP personalizados a las llamadas que Experience Platform realiza a su destino. Cada entrada de encabezado utiliza los mismos campos templatingStrategy y value que otros campos con plantilla en el servidor de destino.

"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"
      }
    }
  ]
}
Parámetro
Tipo
Descripción
header
Cadena
Requerido. El nombre del encabezado, como Authorization, Content-Type o un encabezado personalizado.
value.templatingStrategy
Cadena
Requerido. Utilice PEBBLE_V1 cuando el valor del encabezado sea dinámico o utilice expresiones Pebble. Use NONE para valores estáticos.
value.value
Cadena
Requerido. El valor del encabezado. Admite expresiones Pebble que hacen referencia a datos de clientes o campos de datos de autenticación, como {{customerData.integrationId}}, {{authData.clientId}} o {{ (authData.username + ':' + authData.password) | base64encode }}.

Algunas API de socios requieren un encabezado personalizado que se rellena con un valor de las credenciales de autenticación que proporcionan los clientes, en lugar del encabezado estándar Authorization. El encabezado Amazon-Advertising-API-ClientId mostrado arriba es un ejemplo de este patrón, donde el valor del encabezado proviene directamente de un campo authData.

NOTE
Esta estructura solo se aplica a los encabezados del servidor de destino. Los encabezados de plantilla de metadatos de audiencia utilizan un formulario más sencillo, donde value es una cadena plana en lugar de un objeto con campos templatingStrategy y value. Para ver un ejemplo, consulte administración de metadatos de audiencia.

Para los destinos que utilizan autenticación básica y que requieren un encabezado personalizado con codificación Base64, vea Personalizar el encabezado de autenticación básica.

Próximos pasos next-steps

Después de leer este artículo, debería comprender mejor qué es una especificación de plantilla y cómo puede configurarla.

Para obtener más información acerca de los demás componentes del servidor de destino, consulte los siguientes artículos:

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