Per comprendere il formato del messaggio e la configurazione del profilo e il processo di trasformazione sul lato Adobe, ti preghiamo di acquisire familiarità con i seguenti concetti di Experience Platform:
xdm:identityMap
in Dizionario dei campi XDM.status
, leggi la documentazione su Gruppo di campi Dettagli appartenenza segmento.Utilizza il contenuto di questa pagina insieme al resto del opzioni di configurazione per le destinazioni dei partner. Questa pagina tratta il formato del messaggio e la trasformazione del profilo nei dati esportati da Adobe Experience Platform alle destinazioni. L’altra pagina contiene informazioni specifiche sulla connessione e l’autenticazione alla destinazione.
Adobe Experience Platform esporta i dati in un numero significativo di destinazioni, in vari formati di dati. Alcuni esempi di tipi di destinazione sono piattaforme pubblicitarie (Google), social network (Facebook) e posizioni di archiviazione cloud (Amazon S3, Azure Event Hubs).
Ad Experience Platform, puoi regolare il formato del messaggio dei profili esportati in modo che corrisponda al formato previsto sul tuo lato. Per comprendere questa personalizzazione, sono importanti i seguenti concetti:
Experience Platform utilizza gli schemi XDM per descrivere la struttura dei dati in modo coerente e riutilizzabile.
Schema XDM di origine (1): Questo elemento fa riferimento allo schema utilizzato ad Experience Platform dai clienti. Ad Experience Platform, nella fase di mappatura del flusso di lavoro di destinazione di attivazione, i clienti mappano i campi dal proprio schema XDM allo schema di destinazione della tua destinazione (2).
Schema XDM di Target (2): In base allo schema JSON standard (3) del formato previsto della destinazione e agli attributi interpretabili dalla destinazione, puoi definire gli attributi e le identità del profilo nello schema XDM di destinazione. Puoi eseguire questa operazione nella configurazione delle destinazioni, nel schemaConfig e identityNamespaces oggetti.
Schema JSON standard degli attributi del profilo di destinazione (3): Questo esempio rappresenta un Schema JSON di tutti gli attributi di profilo supportati dalla piattaforma e dei relativi tipi (ad esempio: oggetto, stringa, array). Campi di esempio supportati dalla destinazione firstName
, lastName
, gender
, email
, phone
, productId
, productName
e così via. Hai bisogno di un modello di trasformazione dei messaggi per adattare i dati esportati da Experience Platform al formato previsto.
In base alle trasformazioni dello schema descritte qui sopra, viene illustrato come cambia una configurazione del profilo tra lo schema XDM di origine e uno schema di esempio sul lato partner:
Per illustrare il processo di trasformazione del profilo, l’esempio seguente utilizza tre attributi di profilo comuni in Adobe Experience Platform: nome, cognome e indirizzo e-mail.
Il cliente mappa gli attributi dallo schema XDM di origine allo schema XDM del partner nell’interfaccia utente di Adobe Experience Platform, nel Mappatura fase attiva flusso di lavoro di destinazione.
Supponiamo che la piattaforma possa ricevere un formato di messaggio come:
POST https://YOUR_REST_API_URL/users/
Content-Type: application/json
Authorization: Bearer YOUR_REST_API_KEY
{
"attributes":
{
"first_name": "Yours",
"last_name": "Truly",
"external_id": "yourstruly@adobe.com"
}
}
Considerando il formato del messaggio, le trasformazioni corrispondenti sono le seguenti:
Attributo nello schema XDM del partner sul lato Adobe | Transformation (Trasformazione) | Attributo nel messaggio HTTP sul lato |
---|---|---|
_your_custom_schema.firstName |
attributes.first_name |
first_name |
_your_custom_schema.lastName |
attributes.last_name |
last_name |
personalEmail.address |
attributes.external_id |
external_id |
Per comprendere gli esempi più avanti sulla pagina, è importante conoscere la struttura di un profilo in Experience Platform.
I profili hanno 3 sezioni:
segmentMembership
(sempre presente su un profilo)
realized
, existing
, exited
.identityMap
(sempre presente su un profilo)
.value
se l’attributo è presente nel profilo (consulta la sezione lastName
dall'esempio 1). Se non sono presenti nel profilo, non conterranno .value
percorso (vedi firstName
dall'esempio 1)..value
percorso. Tutti gli attributi mappati presenti in un profilo saranno presenti nella mappa attributi. Quelli che non sono non saranno presenti (vedi l'esempio 2 - il firstName
(l'attributo non esiste nel profilo).Di seguito sono riportati due esempi di profili nell’Experience Platform:
segmentMembership
, identityMap
e attributi per gli attributi a forma libera{
"segmentMembership": {
"ups": {
"11111111-1111-1111-1111-111111111111": {
"lastQualificationTime": "2019-04-15T02:41:50.000+0000",
"status": "existing"
}
}
},
"identityMap": {
"mobileIds": [
{
"id": "e86fb215-0921-4537-bc77-969ff775752c"
}
]
},
"attributes": {
"firstName": {
},
"lastName": {
"value": "lastName"
}
}
}
segmentMembership
, identityMap
e attributi per gli attributi predefiniti{
"segmentMembership": {
"ups": {
"11111111-1111-1111-1111-111111111111": {
"lastQualificationTime": "2019-04-15T02:41:50.000+0000",
"status": "existing"
}
}
},
"identityMap": {
"mobileIds": [
{
"id": "e86fb215-0921-4537-bc77-969ff775752c"
}
]
},
"attributes": {
"lastName": "lastName"
}
}
Adobe di utilizzo Modelli in ebollizione, una lingua modello simile a Jinja, per trasformare i campi dallo schema XDM di Experience Platform in un formato supportato dalla destinazione.
Questa sezione fornisce diversi esempi di come vengono effettuate queste trasformazioni - dallo schema XDM di input, attraverso il modello e l’output nei formati di payload accettati dalla destinazione. Gli esempi seguenti sono presentati da una complessità crescente, come segue:
Per trasformare gli attributi di profilo esportati nella destinazione, consulta il JSON e gli esempi di codice riportati di seguito.
Per un elenco di tutti gli attributi di profilo disponibili in Adobe Experience Platform, consulta la sezione Dizionario dei campi XDM.
Ingresso
Profilo 1:
{
"attributes": {
"firstName": {
"value": "Hermione"
},
"birthDate": {}
}
}
Profilo 2:
{
"attributes": {
"firstName": {
"value": "Harry"
},
"birthDate": {
"value": "1980/07/31"
}
}
}
Modello
Per tutti i modelli utilizzati, è necessario evitare i caratteri non validi, ad esempio virgolette doppie ""
prima di inserire il modello nel configurazione del server di destinazione. Per ulteriori informazioni sull'escape delle virgolette doppie, vedere il Capitolo 9 nella Standard JSON.
{
"profiles": [
{% for profile in input.profiles %}
{
{% for attribute in 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 %}
]
}
Risultato
{
"profiles": [
{
"firstName": "Hermione",
"birthDate": null
},
{
"firstName": "Harry",
"birthDate": "1980/07/31"
}
]
}
La segmentMembership L’attributo XDM indica di quali segmenti fa parte un profilo.
Per i tre valori diversi nel status
, leggi la documentazione su Gruppo di campi Dettagli appartenenza segmento.
Ingresso
Profilo 1:
{
"segmentMembership": {
"ups": {
"36a51c13-9dd6-4d2c-8aa3-07d785ea5075": {
"lastQualificationTime": "2019-11-20T13:15:49Z",
"status": "realized"
},
"788d8874-8007-4253-92b7-ee6b6c20c6f3": {
"lastQualificationTime": "2019-11-20T13:15:49Z",
"status": "existing"
},
"8f812592-3f06-416b-bd50-e7831848a31a": {
"lastQualificationTime": "2019-11-20T13:15:49Z",
"status": "exited"
}
}
}
}
Profilo 2:
{
"segmentMembership": {
"ups": {
"32396e4b-16f6-4033-9702-fc69b5e24e7c": {
"lastQualificationTime": "2021-08-20T17:23:04Z",
"status": "realized"
},
"af854278-894a-4192-a96b-320fbf2623fd": {
"lastQualificationTime": "2021-08-20T16:44:37Z",
"status": "existing"
},
"66505bf9-bc08-4bac-afbc-8b6706650ea4": {
"lastQualificationTime": "2019-08-20T17:23:04Z",
"status": "realized"
}
}
}
}
Modello
Per tutti i modelli utilizzati, è necessario evitare i caratteri non validi, ad esempio virgolette doppie ""
prima di inserire il modello nel configurazione del server di destinazione. Per ulteriori informazioni sull'escape delle virgolette doppie, vedere il Capitolo 9 nella Standard JSON.
{
"profiles": [
{% for profile in input.profiles %}
{
"AdobeExperiencePlatformSegments": {
"add": [
{% for segment in profile.segmentMembership.ups | added %}
"{{ segment.key }}"{% if not loop.last %},{% endif %}
{% endfor %}
],
"remove": [
{# Alternative syntax for filtering segments by status: #}
{% for segment in removedSegments(profile.segmentMembership.ups) %}
"{{ segment.key }}"{% if not loop.last %},{% endif %}
{% endfor %}
]
}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}
Risultato
{
"profiles": [
{
"AdobeExperiencePlatformSegments": {
"add": [
"36a51c13-9dd6-4d2c-8aa3-07d785ea5075",
"788d8874-8007-4253-92b7-ee6b6c20c6f3"
],
"remove": [
"8f812592-3f06-416b-bd50-e7831848a31a"
]
}
},
{
"AdobeExperiencePlatformSegments": {
"add": [
"32396e4b-16f6-4033-9702-fc69b5e24e7c",
"af854278-894a-4192-a96b-320fbf2623fd",
"66505bf9-bc08-4bac-afbc-8b6706650ea4"
],
"remove": [
]
}
}
]
}
Per informazioni sulle identità in Experience Platform, consulta la sezione Panoramica dello spazio dei nomi identità.
Ingresso
Profilo 1:
{
"identityMap": {
"email": [
{
"id": "johndoe@example.com"
},
{
"id": "jd@example.com"
}
],
"external_id": [
{
"id": "123456"
}
]
}
}
Profilo 2:
{
"identityMap": {
"email": [
{
"id": "jane.doe@example.com"
}
]
}
}
Modello
Per tutti i modelli utilizzati, è necessario evitare i caratteri non validi, ad esempio virgolette doppie ""
prima di inserire il modello nel configurazione del server di destinazione. Per ulteriori informazioni sull'escape delle virgolette doppie, vedere il Capitolo 9 nella Standard JSON.
{
"profiles": [
{% for profile in input.profiles %}
{
"identities": [
{% for email in profile.identityMap.email %}
{
"type": "email",
"id": "{{ email.id }}"
}{% if not loop.last %},{% endif %}
{% endfor %}
{# Add a comma only if you have both emails and external_ids. #}
{% if profile.identityMap.email is not empty and profile.identityMap.external_id is not empty %}
,
{% endif %}
{% for external in profile.identityMap.external_id %}
{
"type": "external_id",
"id": "{{ external.id }}"
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}
Risultato
{
"profiles": [
{
"identities": [
{
"type": "email",
"id": "johndoe@example.com"
},
{
"type": "email",
"id": "jd@example.com"
},
{
"type": "external_id",
"id": "123456"
}
]
},
{
"identities": [
{
"type": "email",
"id": "jane.doe@example.com"
}
]
}
]
}
Questa sezione fornisce un esempio di trasformazione comunemente utilizzata tra lo schema XDM di Adobe e lo schema di destinazione del partner.
L’esempio seguente mostra come trasformare l’appartenenza al segmento e il formato delle identità e inviarli alla destinazione.
Ingresso
Profilo 1:
{
"identityMap": {
"email": [
{
"id": "johndoe@example.com"
},
{
"id": "jd@example.com"
}
],
"external_id": [
{
"id": "123456"
}
]
},
"segmentMembership": {
"ups": {
"36a51c13-9dd6-4d2c-8aa3-07d785ea5075": {
"lastQualificationTime": "2019-11-20T13:15:49Z",
"status": "realized"
},
"788d8874-8007-4253-92b7-ee6b6c20c6f3": {
"lastQualificationTime": "2019-11-20T13:15:49Z",
"status": "existing"
},
"8f812592-3f06-416b-bd50-e7831848a31a": {
"lastQualificationTime": "2019-11-20T13:15:49Z",
"status": "exited"
}
}
}
}
Profilo 2:
{
"identityMap": {
"email": [
{
"id": "jane.doe@example.com"
}
]
},
"segmentMembership": {
"ups": {
"36a51c13-9dd6-4d2c-8aa3-07d785ea5075": {
"lastQualificationTime": "2021-08-31T10:01:42Z",
"status": "realized"
}
}
}
}
Modello
Per tutti i modelli utilizzati, è necessario evitare i caratteri non validi, ad esempio virgolette doppie ""
prima di inserire il modello nel configurazione del server di destinazione. Per ulteriori informazioni sull'escape delle virgolette doppie, vedere il Capitolo 9 nella Standard JSON.
{
"profiles": [
{% for profile in input.profiles %}
{
"identities": [
{% for email in profile.identityMap.email %}
{
"type": "email",
"id": "{{ email.id }}"
}{% if not loop.last %},{% endif %}
{% endfor %}
{# Add a comma only if you have both emails and external_ids. #}
{% if profile.identityMap.email is not empty and profile.identityMap.external_id is not empty %}
,
{% endif %}
{% for external in profile.identityMap.external_id %}
{
"type": "external_id",
"id": "{{ external.id }}"
}{% if not loop.last %},{% endif %}
{% endfor %}
],
"AdobeExperiencePlatformSegments": {
"add": [
{% for segment in profile.segmentMembership.ups | added %}
"{{ segment.key }}"{% if not loop.last %},{% endif %}
{% endfor %}
],
"remove": [
{# Alternative syntax for filtering segments by status: #}
{% for segment in removedSegments(profile.segmentMembership.ups) %}
"{{ segment.key }}"{% if not loop.last %},{% endif %}
{% endfor %}
]
}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}
Risultato
La json
di seguito sono riportati i dati esportati da Adobe Experience Platform.
{
"profiles": [
{
"identities": [
{
"type": "email",
"id": "johndoe@example.com"
},
{
"type": "email",
"id": "jd@example.com"
},
{
"type": "external_id",
"id": "123456"
}
],
"AdobeExperiencePlatformSegments": {
"add": [
"36a51c13-9dd6-4d2c-8aa3-07d785ea5075",
"788d8874-8007-4253-92b7-ee6b6c20c6f3"
],
"remove": [
"8f812592-3f06-416b-bd50-e7831848a31a"
]
}
},
{
"identities": [
{
"type": "email",
"id": "jane.doe@example.com"
}
],
"AdobeExperiencePlatformSegments": {
"add": [
"36a51c13-9dd6-4d2c-8aa3-07d785ea5075"
],
"remove": []
}
}
]
}
Questa sezione fornisce un esempio di trasformazione comunemente utilizzata tra lo schema XDM di Adobe e lo schema di destinazione del partner.
Un altro caso d’uso comune è l’esportazione di dati contenenti l’appartenenza a un segmento, le identità (ad esempio: indirizzo e-mail, numero di telefono, ID pubblicitario) e attributi del profilo. Per esportare i dati in questo modo, vedi l’esempio seguente:
Ingresso
Profilo 1:
{
"attributes": {
"firstName": {
"value": "Hermione"
},
"birthDate": {}
},
"identityMap": {
"email": [
{
"id": "johndoe@example.com"
},
{
"id": "jd@example.com"
}
],
"external_id": [
{
"id": "123456"
}
]
},
"segmentMembership": {
"ups": {
"36a51c13-9dd6-4d2c-8aa3-07d785ea5075": {
"lastQualificationTime": "2019-11-20T13:15:49Z",
"status": "realized"
},
"788d8874-8007-4253-92b7-ee6b6c20c6f3": {
"lastQualificationTime": "2019-11-20T13:15:49Z",
"status": "existing"
},
"8f812592-3f06-416b-bd50-e7831848a31a": {
"lastQualificationTime": "2019-11-20T13:15:49Z",
"status": "exited"
}
}
}
}
Profilo 2:
{
"attributes": {
"firstName": {
"value": "Harry"
},
"birthDate": {
"value": "1980/07/31"
}
},
"identityMap": {
"email": [
{
"id": "harry.p@example.com"
}
]
},
"segmentMembership": {
"ups": {
"36a51c13-9dd6-4d2c-8aa3-07d785ea5075": {
"lastQualificationTime": "2019-11-20T13:15:49Z",
"status": "realized"
}
}
}
}
Modello
Per tutti i modelli utilizzati, è necessario evitare i caratteri non validi, ad esempio virgolette doppie ""
prima di inserire il modello nel configurazione del server di destinazione. Per ulteriori informazioni sull'escape delle virgolette doppie, vedere il Capitolo 9 nella Standard JSON.
{
"profiles": [
{% for profile in input.profiles %}
{
"attributes": {
{% for attribute in profile.attributes %}
"{{ attribute.key }}":
{% if attribute.value is empty %}
null
{% else %}
"{{ attribute.value.value }}"
{% endif %}
{% if not loop.last %},{% endif %}
{% endfor %}
},
"identities": [
{% for email in profile.identityMap.email %}
{
"type": "email",
"id": "{{ email.id }}"
}{% if not loop.last %},{% endif %}
{% endfor %}
{# Add a comma only if we have both emails and external_ids. #}
{% if profile.identityMap.email is not empty and profile.identityMap.external_id is not empty %}
,
{% endif %}
{% for external in profile.identityMap.external_id %}
{
"type": "external_id",
"id": "{{ external.id }}"
}{% if not loop.last %},{% endif %}
{% endfor %}
],
"AdobeExperiencePlatformSegments": {
"add": [
{% for segment in profile.segmentMembership.ups | added %}
"{{ segment.key }}"{% if not loop.last %},{% endif %}
{% endfor %}
],
"remove": [
{# Alternative syntax for filtering segments by status: #}
{% for segment in removedSegments(profile.segmentMembership.ups) %}
"{{ segment.key }}"{% if not loop.last %},{% endif %}
{% endfor %}
]
}
}
]
}
Risultato
La json
di seguito sono riportati i dati esportati da Adobe Experience Platform.
{
"profiles": [
{
"attributes": {
"firstName": "Hermione",
"birthDate": null
},
"identities": [
{
"type": "email",
"id": "johndoe@example.com"
},
{
"type": "email",
"id": "jd@example.com"
},
{
"type": "external_id",
"id": "123456"
}
],
"AdobeExperiencePlatformSegments": {
"add": [
"36a51c13-9dd6-4d2c-8aa3-07d785ea5075",
"788d8874-8007-4253-92b7-ee6b6c20c6f3"
],
"remove": [
"8f812592-3f06-416b-bd50-e7831848a31a"
]
}
},
{
"attributes": {
"firstName": "Harry",
"birthDate": "1980/07/21"
},
"identities": [
{
"type": "email",
"id": "harry.p@example.com"
}
],
"AdobeExperiencePlatformSegments": {
"add": [
"36a51c13-9dd6-4d2c-8aa3-07d785ea5075"
],
"remove": []
}
}
]
}
Quando utilizzi aggregazione configurabile nella configurazione di destinazione, puoi raggruppare i profili esportati nella destinazione in base a criteri quali ID segmento, alias segmento, appartenenza al segmento o namespace di identità.
Nel modello di trasformazione dei messaggi, puoi accedere alle chiavi di aggregazione di cui sopra, come mostrato negli esempi nelle sezioni seguenti. Utilizza le chiavi di aggregazione per strutturare il messaggio HTTP esportato fuori da Experience Platform in modo che corrisponda ai limiti di formato e tasso previsti dalla destinazione.
Se utilizzi aggregazione configurabile e impostare includeSegmentId
su true, i profili nei messaggi HTTP esportati nella destinazione sono raggruppati per ID segmento. Vedi sotto come puoi accedere all’ID del segmento nel modello.
Ingresso
Considera i quattro profili seguenti, dove:
788d8874-8007-4253-92b7-ee6b6c20c6f3
8f812592-3f06-416b-bd50-e7831848a31a
Profilo 1:
{
"attributes":{
"firstName":{
"value":"Hermione"
}
},
"segmentMembership":{
"ups":{
"788d8874-8007-4253-92b7-ee6b6c20c6f3":{
"lastQualificationTime":"2020-11-20T13:15:49Z",
"status":"existing"
}
}
}
}
Profilo 2:
{
"attributes":{
"firstName":{
"value":"Harry"
}
},
"segmentMembership":{
"ups":{
"788d8874-8007-4253-92b7-ee6b6c20c6f3":{
"lastQualificationTime":"2020-11-20T13:15:49Z",
"status":"existing"
}
}
}
}
Profilo 3:
{
"attributes":{
"firstName":{
"value":"Tom"
}
},
"segmentMembership":{
"ups":{
"8f812592-3f06-416b-bd50-e7831848a31a":{
"lastQualificationTime":"2021-02-20T12:00:00Z",
"status":"existing"
}
}
}
}
Profilo 4:
{
"attributes":{
"firstName":{
"value":"Jerry"
}
},
"segmentMembership":{
"ups":{
"8f812592-3f06-416b-bd50-e7831848a31a":{
"lastQualificationTime":"2021-02-20T12:00:00Z",
"status":"existing"
},
"788d8874-8007-4253-92b7-ee6b6c20c6f3":{
"lastQualificationTime":"2020-11-20T13:15:49Z",
"status":"existing"
}
}
}
}
Modello
Per tutti i modelli utilizzati, è necessario evitare i caratteri non validi, ad esempio virgolette doppie ""
prima di inserire il modello nel configurazione del server di destinazione. Per ulteriori informazioni sull'escape delle virgolette doppie, vedere il Capitolo 9 nella Standard JSON.
Di seguito viene illustrato come audienceId
viene utilizzato nel modello per accedere agli ID del segmento. Questo esempio presuppone che l'utente utilizzi audienceId
per l’appartenenza al segmento nella tassonomia di destinazione. È invece possibile utilizzare qualsiasi altro nome di campo, a seconda della tassonomia.
{
"audienceId": "{{ input.aggregationKey.segmentId }}",
"profiles": [
{% for profile in input.profiles %}
{
"first_name": "{{ profile.attributes.firstName.value }}"
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}
Risultato
Quando vengono esportati nella destinazione, i profili vengono suddivisi in due gruppi, in base al relativo ID segmento.
{
"audienceId":"788d8874-8007-4253-92b7-ee6b6c20c6f3",
"profiles":[
{
"firstName":"Hermione"
},
{
"firstName":"Harry"
},
{
"firstName":"Jerry"
}
]
}
{
"audienceId":"8f812592-3f06-416b-bd50-e7831848a31a",
"profiles":[
{
"firstName":"Tom"
},
{
"firstName":"Jerry"
}
]
}
Se utilizzi aggregazione configurabile e impostare includeSegmentId
su true, puoi anche accedere all’alias del segmento nel modello.
Aggiungi la riga sottostante al modello per accedere ai profili esportati raggruppati per alias del segmento.
customerList={{input.aggregationKey.segmentAlias}}
Se utilizzi aggregazione configurabile e impostare includeSegmentId
e includeSegmentStatus
su true, puoi accedere allo stato del segmento nel modello. In questo modo, puoi raggruppare i profili nei messaggi HTTP esportati nella tua destinazione in base al fatto che i profili debbano essere aggiunti o rimossi dai segmenti.
I valori possibili sono:
Aggiungi la riga sottostante al modello per aggiungere o rimuovere profili dai segmenti, in base ai valori sopra riportati:
action={% if input.aggregationKey.segmentStatus == "exited" %}REMOVE{% else %}ADD{% endif%}
Di seguito è riportato un esempio in cui il aggregazione configurabile nella configurazione di destinazione viene impostato per aggregare i profili esportati in base ai namespace di identità nel modulo "namespaces": ["email", "phone"]
e "namespaces": ["GAID", "IDFA"]
. Fai riferimento a groups
nel riferimento API per la configurazione della destinazione per ulteriori informazioni su questo raggruppamento.
Ingresso
Profilo 1:
{
"identityMap":{
"email":[
{
"id":"e1@example.com"
},
{
"id":"e2@example.com"
}
],
"phone":[
{
"id":"+40744111222"
}
],
"IDFA":[
{
"id":"AEBE52E7-03EE-455A-B3C4-E57283966239"
}
],
"GAID":[
{
"id":"e4fe9bde-caa0-47b6-908d-ffba3fa184f2"
}
]
}
}
Profilo 2:
{
"identityMap":{
"email":[
{
"id":"e3@example.com"
}
],
"phone":[
{
"id":"+40744333444"
},
{
"id":"+40744555666"
}
],
"IDFA":[
{
"id":"134GHU45-34HH-GHJ7-K0H8-LHN665998NN0"
}
],
"GAID":[
{
"id":"47bh00i9-8jv6-334n-lll8-nb7f24sghg76"
}
]
}
}
Modello
Per tutti i modelli utilizzati, è necessario evitare i caratteri non validi, ad esempio virgolette doppie ""
prima di inserire il modello nel configurazione del server di destinazione. Per ulteriori informazioni sull'escape delle virgolette doppie, vedere il Capitolo 9 nella Standard JSON.
Tieni presente che input.aggregationKey.identityNamespaces
viene utilizzato nel modello seguente
{
"profiles": [
{% for profile in input.profiles %}
{
{% for ns in input.aggregationKey.identityNamespaces %}
"{{ns}}": [
{% for id in profile.identityMap[ns] %}
"{{id.id}}"{% if not loop.last %},{% endif %}
{% endfor %}
]{% if not loop.last %},{% endif %}
{% endfor %}
}{% if not loop.last %},{% endif %}
{% endfor %}
]
}
Risultato
Quando vengono esportati nella destinazione, i profili vengono suddivisi in due gruppi, in base ai rispettivi namespace di identità. Le e-mail e il telefono sono in un gruppo, mentre GAID e IDFA sono in un altro.
{
"profiles":[
{
"email":[
"e1@example.com",
"e2@example.com"
],
"phone":[
"+40744111222"
]
},
{
"email":[
"e3@example.com"
],
"phone":[
"+40744333444",
"+40744555666"
]
}
]
}
{
"profiles":[
{
"IDFA":[
"AEBE52E7-03EE-455A-B3C4-E57283966239"
],
"GAID":[
"e4fe9bde-caa0-47b6-908d-ffba3fa184f2"
]
},
{
"IDFA":[
"134GHU45-34HH-GHJ7-K0H8-LHN665998NN0"
],
"GAID":[
"47bh00i9-8jv6-334n-lll8-nb7f24sghg76"
]
}
]
}
A seconda del caso d’uso, puoi anche utilizzare le chiavi di aggregazione descritte qui in un URL, come illustrato di seguito:
https://api.example.com/audience/{{input.aggregationKey.segmentId}}
Il contesto fornito al modello contiene input
(i profili/dati esportati in questa chiamata) e destination
(dati sulla destinazione a cui l’Adobe invia i dati, validi per tutti i profili).
La tabella seguente fornisce una descrizione delle funzioni degli esempi precedenti.
Funzione | Descrizione |
---|---|
input.profile |
Il profilo, rappresentato come JsonNode. Segue lo schema XDM partner menzionato più avanti in questa pagina. |
destination.segmentAliases |
Mappa dagli ID segmento nello spazio dei nomi Adobe Experience Platform agli alias dei segmenti nel sistema del partner. |
destination.segmentNames |
Esegui la mappatura dai nomi dei segmenti nello spazio dei nomi Adobe Experience Platform ai nomi dei segmenti nel sistema del partner. |
addedSegments(listOfSegments) |
Restituisce solo i segmenti con stato realized o existing . |
removedSegments(listOfSegments) |
Restituisce solo i segmenti con stato exited . |
Dopo aver letto questo documento, ora sai come vengono trasformati i dati esportati da Experience Platform. Quindi, leggi le pagine seguenti per completare la tua conoscenza sulla creazione di modelli di trasformazione dei messaggi per la tua destinazione: