Auf dieser Seite Erfahren Sie, wie Sie einfache - und -Objektsammlungen in benutzerdefinierte Aktionsparameter übergeben, damit sie zur Laufzeit dynamisch aufgefüllt werden.
Sie können eine Sammlung in Parametern benutzerdefinierter Aktionen übergeben, die zur Laufzeit dynamisch gefüllt wird.
Es werden zwei Arten von Sammlungen unterstützt:
-
Einfache Sammlungen
Verwenden Sie einfache Sammlungen für Listen grundlegender Werte wie Strings, Zahlen oder boolesche Werte. Diese sind nützlich, wenn Sie nur eine Liste von Elementen ohne zusätzliche Eigenschaften übergeben müssen.
Ein Beispiel dafür ist eine Liste von Gerätetypen:
code language-json { "deviceTypes": [ "android", "ios" ] } -
Objektsammlungen
Verwenden Sie Objektsammlungen, wenn jedes Element mehrere Felder oder Eigenschaften enthält. Diese werden normalerweise verwendet, um strukturierte Daten wie Produktdetails, Ereigniseinträge oder Elementattribute zu übergeben.
Beispiel:
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 } ] }
Allgemeines Verfahren general-procedure
In diesem Abschnitt verwenden wir das folgende JSON-Payload-Beispiel. Dies ist ein Array von Objekten mit einem Feld, das eine einfache Sammlung ist.
{
"ctxt": {
"products": [
{
"id": "productA",
"name": "A",
"price": 20.1,
"color":"blue",
"locations": [
"Paris",
"London"
]
},
{
"id": "productB",
"name": "B",
"price": 10.99
}
]
}
}
Sie können sehen, dass products ein Array von zwei Objekten ist. Sie müssen mindestens ein Objekt haben.
-
Erstellen Sie Ihre benutzerdefinierte Aktion. Weitere Informationen finden Sie auf dieser Seite.
-
Fügen Sie im Abschnitt Aktionsparameter das JSON-Beispiel ein. Die angezeigte Struktur ist statisch: Beim Einfügen der Payload werden alle Felder als Konstanten definiert.
-
Passen Sie bei Bedarf die Feldtypen an. Die folgenden Feldtypen werden für Sammlungen unterstützt: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject
note NOTE Der Feldtyp wird gemäß dem Payload-Beispiel automatisch abgeleitet. -
Wenn Sie Objekte dynamisch übergeben möchten, müssen Sie sie als Variablen festlegen. In diesem Beispiel legen wir
productsals Variable fest. Alle im Objekt enthaltenen Objektfelder werden automatisch als Variablen festgelegt.note NOTE Das erste Objekt des Payload-Beispiels wird verwendet, um die Felder zu definieren. -
Definieren Sie für jedes Feld das Label, das auf der Journey-Arbeitsfläche angezeigt werden soll.
{width="70%"}
-
Erstellen Sie Ihre Journey und fügen Sie die von Ihnen erstellte benutzerdefinierte Aktion hinzu. Weitere Informationen finden Sie auf dieser Seite.
-
Definieren Sie im Abschnitt Aktionsparameter den Array-Parameter (in unserem Beispiel
products) mithilfe des erweiterten Ausdruckseditors.
-
Geben Sie für jedes der folgenden Objektfelder den entsprechenden Feldnamen aus dem Quell-XDM-Schema ein. Wenn die Namen identisch sind, ist dies nicht erforderlich. In unserem Beispiel müssen wir nur
product idund „color“ definieren. {width="50%"}
Für das Array-Feld können Sie auch den erweiterten Ausdruckseditor verwenden, um Datenbearbeitungen durchzuführen. Im folgenden Beispiel werden die Funktionen Filtern und Überschneidung verwendet:
Einschränkungen limitations
Sammlungen in benutzerdefinierten Aktionen bieten zwar Flexibilität bei der Übergabe dynamischer Daten, es gibt jedoch bestimmte strukturelle Einschränkungen, die zu beachten sind:
-
Unterstützung verschachtelter Arrays in benutzerdefinierten Aktionen
Adobe Journey Optimizer unterstützt verschachtelte Arrays von Objekten in benutzerdefinierten Aktionen Antwort-), diese Unterstützung ist jedoch in Anfrage-Payloads beschränkt.
In Anfrage-Payloads werden verschachtelte Arrays nur dann unterstützt, wenn sie eine feste Anzahl von Elementen enthalten, wie in der Konfiguration der benutzerdefinierten Aktion definiert. Wenn ein verschachteltes Array beispielsweise immer genau drei Elemente enthält, kann es als Konstante konfiguriert werden. Wenn die Anzahl der Elemente dynamisch sein muss, können nur nicht verschachtelte Arrays (Arrays auf der unteren Ebene) als Variablen definiert werden.
Beispiel:
-
Das folgende Beispiel zeigt einen nicht unterstützten Anwendungsfall.
In diesem Beispiel enthält das Produkt-Array ein verschachteltes Array (
locations) mit einer dynamischen Anzahl von Elementen, das in Anfrage-Payloads nicht unterstützt wird.code language-json { "products": [ { "id": "productA", "name": "A", "price": 20, "locations": [ { "name": "Paris" }, { "name": "London" } ] } ] } -
Beispiel eines unterstützten Anwendungsfalls mit festen Elementen, die als Konstanten definiert sind.
In diesem Fall werden die verschachtelten Speicherorte durch feste Felder (
location1,location2) ersetzt, sodass die Payload in der unterstützten Konfiguration gültig bleibt.code language-json { "products": [ { "id": "productA", "name": "A", "price": 20, "location1": { "name": "Paris" }, "location2": { "name": "London" } } ] }
-
-
Testen von Sammlungen: Um Sammlungen im Testmodus zu testen, müssen Sie den Code-Ansichtsmodus verwenden. Beachten Sie, dass der Code-Ansichtsmodus für Geschäftsereignisse nicht unterstützt wird. In diesem Fall können Sie also nur eine Sammlung senden, die ein einzelnes Element enthält.
Besondere Fälle examples
Bei heterogenen Typen und Arrays von Arrays wird das Array mit dem Typ „listAny“ definiert. Sie können nur einzelne Elemente zuordnen, das Array jedoch nicht in eine Variable ändern.
Beispiel eines heterogenen Typs:
{
"data_mixed-types": [
"test",
"test2",
null,
0
]
}
Beispiel eines Arrays von Arrays:
{
"data_multiple-arrays": [
[
"test",
"test1",
"test2"
]
]
}
Zusätzliche Ressourcen
In den folgenden Abschnitten erfahren Sie mehr über die Konfiguration, Verwendung und Fehlerbehebung von benutzerdefinierten Aktionen:
- Erste Schritte mit benutzerdefinierten Aktionen: Erfahren Sie, was eine benutzerdefinierte Aktion ist und wie Sie damit eine Verbindung zu Ihren Drittanbietersystemen herstellen können
- Konfigurieren benutzerdefinierter Aktionen: Erfahren Sie, wie Sie eine benutzerdefinierte Aktion erstellen und konfigurieren
- Verwenden benutzerdefinierter Aktionen: Erfahren Sie, wie Sie benutzerdefinierte Aktionen in Ihren Journeys verwenden
- Fehlerbehebung bei benutzerdefinierten Aktionen: Erfahren Sie, wie Sie Fehler bei einer benutzerdefinierten Aktion beheben
- Iteration über kontextuelle Daten - Erfahren Sie, wie Sie mit Arrays in Journey-Ausdrücken arbeiten und in der Nachrichtenpersonalisierung benutzerdefinierte Aktionsantworten, Ereignisdaten und Datensatzsuchen durchlaufen.
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page explains how to pass simple and object collections dynamically into custom action parameters in Journey Optimizer, including supported field types, the configuration procedure, and known limitations around nested arrays.
Intents:
- Configure a custom action to accept a collection (simple or object) as a dynamic parameter
- Define array parameters as variables in the advanced expression editor when building a journey
- Apply filter and intersect functions to manipulate array data in the expression editor
- Understand and work within the nested array limitations for custom action request payloads
- Test collection parameters using code view mode in journey test mode
Glossary:
- Simple collection: A list of basic scalar values (strings, numbers, booleans) passed as a custom action parameter (product-specific)
- Object collection: A list of structured objects, each with multiple fields, passed as a custom action parameter (product-specific)
- listObject: The field type used in custom action configuration to represent an array of objects (product-specific)
- listAny: The field type used for heterogeneous arrays or arrays of arrays where items have mixed types (product-specific)
- Variable (vs. Constant): In action parameter configuration, a field set to “variable” is populated dynamically at runtime from the journey context, while a “constant” is a fixed value set at configuration time (product-specific)
Guardrails:
- Nested arrays in request payloads are only supported when they contain a fixed number of items (defined as constants); dynamic nested arrays are not supported
- Code view mode is required to test collections in test mode; code view is not supported for business events, so only single-element collections can be sent in that case
- At least one object must be present in the payload example used to define collection fields
- The first object of the payload example defines the fields for the entire collection
Terminology:
- Canonical name: Collection — Acronym: none — variants: array, list, dynamic collection
- Synonyms: “simple collection” = “list of scalar values” ; “object collection” = “array of objects”
- Do not confuse: “listAny” ≠ “listObject” (listAny handles heterogeneous or nested arrays; listObject handles uniform arrays of structured objects)
FAQ:
- Q: What is the difference between a simple collection and an object collection? — A simple collection contains basic scalar values (strings, numbers, booleans), while an object collection contains structured objects each with multiple named fields.
- Q: How do I make a collection parameter dynamic at runtime? — In the custom action’s Action parameters section, set the array field to “variable”; all object fields within it are then automatically set to variables.
- Q: Are nested arrays supported in custom action request payloads? — Only partially. Nested arrays with a fixed, known number of items can be defined as constants. Nested arrays with a dynamic number of items are not supported in request payloads.
- Q: How do I test a collection in journey test mode? — Use code view mode in the test interface. Note that business events do not support code view, so only single-element collections can be tested in that context.
- Q: What field types are supported for collections? — listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, and listObject are all supported.