Skicka samlingar till anpassade åtgärdsparametrar passing-collection
Du kan skicka en samling i anpassade åtgärdsparametrar som fylls i dynamiskt vid körning.
Två typer av samlingar stöds:
-
Enkla samlingar
Använd enkla samlingar för listor med grundläggande värden, till exempel strängar, siffror eller booleska värden. Dessa är användbara när du bara behöver skicka en lista med objekt utan ytterligare egenskaper.
En lista med enhetstyper:
code language-json { "deviceTypes": [ "android", "ios" ] }
-
Objektsamlingar
Använd objektsamlingar när varje objekt innehåller flera fält eller egenskaper. De används vanligtvis för att skicka strukturerade data, t.ex. produktinformation, händelseposter eller objektattribut.
Exempel:
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 } ] }
Allmänt förfarande general-procedure
I det här avsnittet använder vi följande JSON-exempel på nyttolast. Det här är en array med objekt med ett fält som är en enkel samling.
{
"ctxt": {
"products": [
{
"id": "productA",
"name": "A",
"price": 20.1,
"color":"blue",
"locations": [
"Paris",
"London"
]
},
{
"id": "productB",
"name": "B",
"price": 10.99
}
]
}
}
Du kan se att products
är en array med två objekt. Du måste ha minst ett objekt.
-
Skapa en anpassad åtgärd. Läs mer på den här sidan.
-
Klistra in JSON-exemplet i avsnittet Action parameters. Den visade strukturen är statisk: när du klistrar in nyttolasten definieras alla fält som konstanter.
-
Justera fälttyperna om det behövs. Följande fälttyper stöds för samlingar: listString, listInteger, listDecimal, listBoolean, listDateTime, listDateTimeOnly, listDateOnly, listObject
note note NOTE Fälttypen härleds automatiskt enligt exempel på nyttolast. -
Om du vill skicka objekt dynamiskt måste du ange dem som variabler. I det här exemplet anger vi
products
som variabel. Alla objektfält i objektet ställs in automatiskt på variabler.note note NOTE Det första objektet i nyttolastexemplet används för att definiera fälten. -
Definiera den etikett som ska visas på arbetsytan för varje fält.
-
Skapa din resa och lägg till den anpassade åtgärd du skapade. Läs mer på den här sidan.
-
I avsnittet Action parameters definierar du arrayparametern (
products
i vårt exempel) med den avancerade uttrycksredigeraren. -
För vart och ett av följande objektfält anger du motsvarande fältnamn från XDM-källschemat. Om namnen är identiska behövs inte detta. I vårt exempel behöver vi bara definiera
product id
och"color".
För arrayfältet kan du även använda den avancerade uttrycksredigeraren för att utföra datamanipulering. I följande exempel använder vi funktionerna filter och intersect:
Begränsningar limitations
Samlingar i anpassade åtgärder ger flexibilitet när det gäller att skicka dynamiska data, men det finns vissa strukturella begränsningar som du bör vara medveten om:
-
Stöd för kapslade arrayer i anpassade åtgärder
Adobe Journey Optimizer stöder kapslade arrayer med objekt i den anpassade åtgärden svarsnyttolaster, men det här stödet är begränsat i begärannyttolaster.
I begärandenyttolaster stöds bara kapslade arrayer när de innehåller ett fast antal objekt, enligt definitionen i den anpassade åtgärdskonfigurationen. Om en kapslad array till exempel alltid innehåller exakt tre objekt, kan den konfigureras som en konstant. När antalet objekt behöver vara dynamiskt kan bara icke-kapslade arrayer (arrayer på den nedersta nivån) definieras som variabler.
Exempel:
-
I följande exempel visas ett användningsfall som inte stöds.
I det här exemplet innehåller arrayen products en kapslad array (
locations
) med ett dynamiskt antal objekt, vilket inte stöds i begärandenyttolaster.code language-json { "products": [ { "id": "productA", "name": "A", "price": 20, "locations": [ { "name": "Paris" }, { "name": "London" } ] } ] }
-
Exempel: fasta objekt definieras som konstanter.
I det här fallet ersätts de kapslade platserna med fasta fält (
location1
,location2
), vilket gör att nyttolasten förblir giltig i den konfiguration som stöds.code language-json { "products": [ { "id": "productA", "name": "A", "price": 20, "location1": { "name": "Paris" }, "location2": { "name": "London" } } ] }
-
-
Testar samlingar: Om du vill testa samlingar i testläge måste du använda kodvyn. Observera att kodvisningsläget inte stöds för affärshändelser, så i så fall kan du bara skicka en samling som innehåller ett enskilt element.
Särskilda fall examples
För heterogena typer och arrayer av arrayer definieras arrayen med typen listAny. Du kan bara mappa enskilda objekt, men inte ändra arrayen till variabel.
Exempel på heterogen typ:
{
"data_mixed-types": [
"test",
"test2",
null,
0
]
}
Exempel på array med arrayer:
{
"data_multiple-arrays": [
[
"test",
"test1",
"test2"
]
]
}
Ytterligare resurser
Bläddra i avsnitten nedan om du vill veta mer om hur du konfigurerar, använder och felsöker anpassade åtgärder:
- Kom igång med anpassade åtgärder - Lär dig vad som är en anpassad åtgärd och hur de hjälper dig att ansluta till tredjepartssystem
- Konfigurera dina anpassade åtgärder - Lär dig hur du skapar och konfigurerar en anpassad åtgärd
- Använd anpassade åtgärder - Lär dig hur du använder anpassade åtgärder på dina resor
- Felsökning av anpassad åtgärd - Lär dig hur du felsöker en anpassad åtgärd