En esta página: Aprenda a pasar colecciones simples y de objetos a parámetros de acción personalizados para que se rellenen dinámicamente durante la ejecución.
Puede pasar una colección en parámetros de acción personalizados que se rellenan dinámicamente durante la ejecución.
Se admiten dos tipos de colecciones:
-
Colecciones simples
Utilice colecciones simples para listas de valores básicos, como cadenas, números o valores booleanos. Son útiles cuando solo necesita pasar una lista de elementos sin propiedades adicionales.
Por ejemplo, una lista de tipos de dispositivos:
code language-json { "deviceTypes": [ "android", "ios" ] } -
Colecciones de objetos
Utilice colecciones de objetos cuando cada elemento incluya varios campos o propiedades. Normalmente se utilizan para pasar datos estructurados, como detalles de productos, registros de eventos o atributos de elementos.
Por ejemplo:
code language-json { "products":[ { "id":"productA", "name":"A", "price":20.1 }, { "id":"productB", "name":"B", "price":10.0 }, { "id":"productC", "name":"C", "price":5.99 } ] }
Procedimiento general general-procedure
En esta sección, utilizamos el siguiente ejemplo de carga útil JSON. Es una matriz de objetos con un campo que es una colección simple.
{
"ctxt": {
"products": [
{
"id": "productA",
"name": "A",
"price": 20.1,
"color":"blue",
"locations": [
"Paris",
"London"
]
},
{
"id": "productB",
"name": "B",
"price": 10.99
}
]
}
}
Puede ver que products es una matriz de dos objetos. Debe tener al menos un objeto.
-
Cree su acción personalizada. Obtenga más información en esta página.
-
En la sección Parámetros de acción, pegue el ejemplo JSON. La estructura mostrada es estática: al pegar la carga útil, todos los campos se definen como constantes.
-
Si es necesario, ajuste los tipos de campo. Se admiten los siguientes tipos de campos para colecciones: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject
note NOTE El tipo de campo se infiere automáticamente según el ejemplo de carga útil. -
Si desea pasar objetos de forma dinámica, debe establecerlos como variables. En este ejemplo establecemos
productscomo variable. Todos los campos de objeto incluidos en el objeto se establecen en variables automáticamente.note NOTE El primer objeto del ejemplo de carga útil se utiliza para definir los campos. -
Para cada campo, defina la etiqueta que se mostrará en el lienzo de recorrido.
{width="70%"}
-
Cree el recorrido y añada la acción personalizada que ha creado. Obtenga más información en esta página.
-
En la sección Parámetros de acción, defina el parámetro de matriz (
productsen nuestro ejemplo) utilizando el editor de expresiones avanzadas.
-
Para cada uno de los siguientes campos de objeto, escriba el nombre del campo correspondiente del esquema XDM de origen. Si los nombres son idénticos, no es necesario. En nuestro ejemplo, solo necesitamos definir
product idy “color”. {width="50%"}
Para el campo de matriz, también puede utilizar el editor de expresiones avanzadas para realizar la manipulación de datos. En el ejemplo siguiente, utilizamos las funciones filter y intersect:
Limitaciones limitations
Aunque las colecciones en acciones personalizadas proporcionan flexibilidad para pasar datos dinámicos, hay que tener en cuenta ciertas restricciones estructurales:
-
Compatibilidad con matrices anidadas en acciones personalizadas
Adobe Journey Optimizer admite matrices anidadas de objetos en cargas de respuesta de acción personalizada, pero esta compatibilidad está limitada en cargas de solicitud.
En las cargas útiles de solicitud, las matrices anidadas solo se admiten cuando contienen un número fijo de elementos, como se define en la configuración de acción personalizada. Por ejemplo, si una matriz anidada siempre incluye exactamente tres elementos, se puede configurar como una constante. Cuando el número de elementos debe ser dinámico, solo las matrices no anidadas (matrices en el nivel inferior) pueden definirse como variables.
Por ejemplo:
-
El siguiente ejemplo ilustra un caso de uso no admitido.
En este ejemplo, la matriz de productos incluye una matriz anidada (
locations) con un número dinámico de elementos, que no se admite en las cargas útiles de solicitud.code language-json { "products": [ { "id": "productA", "name": "A", "price": 20, "locations": [ { "name": "Paris" }, { "name": "London" } ] } ] } -
Ejemplo compatible, con elementos fijos definidos como constantes.
En este caso, las ubicaciones anidadas se reemplazan por campos fijos (
location1,location2), lo que permite que la carga útil siga siendo válida dentro de la configuración admitida.code language-json { "products": [ { "id": "productA", "name": "A", "price": 20, "location1": { "name": "Paris" }, "location2": { "name": "London" } } ] }
-
-
Colecciones de prueba: para probar las colecciones con el modo de prueba, debe usar el modo de vista de código. Tenga en cuenta que el modo de vista de código no es compatible con eventos empresariales, por lo que en ese caso, solo puede enviar una colección que contenga un solo elemento.
Casos particulares examples
Para los tipos y matrices heterogéneos de matrices, la matriz se define con el tipo listAny. Solo puede asignar elementos individuales, pero no puede cambiar la matriz a variable.
Ejemplo de tipo heterogéneo:
{
"data_mixed-types": [
"test",
"test2",
null,
0
]
}
Ejemplo de matriz de matrices:
{
"data_multiple-arrays": [
[
"test",
"test1",
"test2"
]
]
}
Recursos adicionales
Examine las secciones siguientes para obtener más información sobre la configuración, el uso y la resolución de problemas de sus acciones personalizadas:
- Empiece a usar las acciones personalizadas: descubra qué es una acción personalizada y cómo le ayudan a conectarse a sistemas de terceros
- Configurar las acciones personalizadas: aprenda a crear y configurar una acción personalizada
- Usar acciones personalizadas: aprenda a usar acciones personalizadas en sus recorridos
- Solución de problemas con acciones personalizadas - Aprenda a solucionar problemas de una acción personalizada
- Iterar en datos contextuales: aprenda a trabajar con matrices en expresiones de Recorrido e iterar en respuestas de acciones personalizadas, datos de eventos y búsquedas de conjuntos de datos en la personalización de mensajes
Esta sección contiene conocimientos estructurados destinados a apoyar la interpretación, la recuperación y la respuesta a preguntas relacionadas con este tema.
Para una comprensión completa, esta información debe combinarse con la documentación de esta página. Ninguna de las fuentes pretende ser independiente; la página describe la función, mientras que esta sección proporciona contexto adicional que ayuda a desambiguar la terminología, la intención, la aplicabilidad y las restricciones.
- TL;DR: En esta página se explica cómo pasar colecciones simples y de objetos dinámicamente a parámetros de acción personalizados en Journey Optimizer, incluidos los tipos de campo admitidos, el procedimiento de configuración y las limitaciones conocidas en torno a las matrices anidadas.
Intenciones:
- Configure una acción personalizada para aceptar una colección (simple u objeto) como parámetro dinámico
- Defina parámetros de matriz como variables en el editor de expresiones avanzadas al crear un recorrido
- Aplique funciones de filtro e intersección para manipular los datos de la matriz en el editor de expresiones
- Comprenda y trabaje dentro de las limitaciones de matrices anidadas para cargas útiles de solicitudes de acciones personalizadas
- Probar parámetros de colección utilizando el modo de vista de código en el modo de prueba de recorrido
Glosario:
- Colección simple: Una lista de valores escalares básicos (cadenas, números, valores booleanos) pasados como parámetro de acción personalizada (específico del producto)
- Colección de objetos: Se pasó una lista de objetos estructurados, cada uno con varios campos, como parámetro de acción personalizada (específico del producto)
- listObject: tipo de campo utilizado en la configuración de acción personalizada para representar una matriz de objetos (específicos del producto)
- listAny: Tipo de campo utilizado para matrices heterogéneas o matrices de matrices donde los elementos tienen tipos mixtos (específicos del producto)
- Variable (frente a constante): en la configuración de parámetros de acción, un campo establecido en “variable” se rellena dinámicamente en tiempo de ejecución desde el contexto de recorrido, mientras que una “constante” es un valor fijo establecido en el tiempo de configuración (específico del producto)
Protecciones:
- Las matrices anidadas en cargas útiles de solicitud solo se admiten cuando contienen un número fijo de elementos (definidos como constantes); no se admiten matrices anidadas dinámicas
- El modo de vista de código es necesario para probar colecciones en modo de prueba; la vista de código no es compatible con eventos empresariales, por lo que en ese caso solo se pueden enviar colecciones de un solo elemento
- Debe haber al menos un objeto presente en el ejemplo de carga útil utilizado para definir los campos de recopilación
- El primer objeto del ejemplo de carga útil define los campos de toda la colección
Terminología:
- Nombre canónico: Collection — Acrónimo: none — variantes: array, list, dynamic collection
- Sinónimos: “colección simple” = “lista de valores escalares” ; “colección de objetos” = “matriz de objetos”
- No confunda: “listAny” ≠ “listObject” (listAny controla matrices heterogéneas o anidadas; listObject controla matrices uniformes de objetos estructurados)
PREGUNTAS MÁS FRECUENTES:
- Q: ¿Cuál es la diferencia entre una colección simple y una colección de objetos? — Una colección simple contiene valores escalares básicos (cadenas, números, valores booleanos), mientras que una colección de objetos contiene objetos estructurados, cada uno con varios campos con nombre.
- Q: ¿Cómo puedo hacer que un parámetro de colección sea dinámico durante la ejecución? — En la sección Parámetros de acción de la acción personalizada, establezca el campo de matriz en “variable”; todos los campos de objeto dentro de él se establecen automáticamente en variables.
- Q: ¿Se admiten matrices anidadas en cargas útiles de solicitud de acción personalizada? — Solo parcialmente. Las matrices anidadas con un número fijo y conocido de elementos se pueden definir como constantes. Las matrices anidadas con un número dinámico de elementos no son compatibles con las cargas útiles de solicitud.
- Q: ¿Cómo se prueba una colección en el modo de prueba de recorrido? — Utilice el modo de vista de código en la interfaz de prueba. Tenga en cuenta que los eventos empresariales no admiten la vista de código, por lo que solo se pueden probar colecciones de un solo elemento en ese contexto.
- Q: ¿Qué tipos de campo se admiten en las colecciones? — se admiten listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly y listObject.