Actualización de perfiles de Adobe Experience Platform desde páginas de aterrizaje de Adobe Campaign  ac-aep-lp

La integración entre Adobe Campaign y Adobe Experience Platform le permite sincronizar fácilmente los datos de perfil entre sus páginas de aterrizaje de Adobe Campaign y Adobe Experience Platform. Con esta integración, puede:

  • Recupere atributos de perfil de Adobe Experience Platform para mostrar información actualizada en páginas de aterrizaje de Adobe Campaign.
  • Envíe atributos de perfil actualizados a Adobe Experience Platform para actualizar los atributos correspondientes en función de lo que se haya rellenado y enviado en las páginas de aterrizaje.

Los pasos principales para configurar esta integración son los siguientes:

Configuración de una conexión de Oauth oauth

Las API de Adobe Cloud Platform utilizan el protocolo OAuth 2.0 para la autenticación y autorización. Para conectar Adobe Experience Platform a Adobe Campaign mediante llamadas a la API, debe generar un token de acceso mediante la integración de OAuth creada en Adobe Developer Console.

Para ello, siga estos pasos:

  1. Acceda a Adobe Developer Console.

  2. Cree una nueva conexión API con el producto API de Adobe Experience Platform. Encontrará los pasos detallados para obtener un token de acceso OAuth 2.0 en la documentación de Adobe Developer Console.

  3. Una vez creada la conexión, vaya al menú OAuth Server-to-Server y copie los detalles siguientes, que son necesarios en Campaign para la autenticación:

    • CLIENT ID
    • CLIENT SECRET
    • ORGANIZATION ID

    {width="70%"}

Ahora que su conexión de OAuth está configurada, cree y configure una nueva conexión de Source HTTP API para vincular Adobe Campaign con Adobe Experience Platform.

Creación de una conexión HTTP API Source source

Con la conexión OAuth establecida, el siguiente paso es crear una conexión de Source HTTP API en Adobe Experience Platform. Esta conexión le permite transmitir datos a Adobe Experience Platform mediante API. Siga estos pasos:

  1. Vaya a Adobe Experience Platform Sources, busque el origen HTTP API y haga clic en Add data.

    {width="70%"}

  2. Configure la conexión según sus necesidades. Encontrará información detallada sobre cómo configurar una conexión HTTP API en documentación de fuentes de Adobe Experience Platform.

    En el paso Authentication, active la opción Enable authentication para autenticarse con el token de acceso generado anteriormente mediante la integración de OAuth.

    {width="70%"}

  3. Una vez configurada la conexión de origen, se muestra el extremo de flujo continuo. Este punto de conexión es necesario para introducir datos en Adobe Experience Platform.

    {width="70%"}

    También puede acceder a una muestra del formato de datos introducido en Adobe Experience Platform abriendo el flujo de datos recién creado desde la pestaña Dataflows.

    {width="70%"}

Ahora que la conexión HTTP API Source está configurada, debe agregar opciones específicas a Adobe Campaign para habilitar la conexión a Adobe Experience Platform.

Agregar opciones de autenticación en Adobe Campaign xtk

Una vez configurada la conexión HTTP API Source, debe agregar opciones específicas a Adobe Campaign para habilitar la conexión con Adobe Experience Platform. Esto se puede hacer en el menú Campaign Administration o al ejecutar el flujo de trabajo de la página de aterrizaje agregando una actividad JavaScript code específica.

Examine las pestañas siguientes para descubrir los dos métodos:

Agregar opciones desde el menú Administración
  1. Vaya al menú Administration > Platform > Options.

  2. Añada las siguientes opciones con los valores correspondientes de Adobe Developer Console:

    • IMS_CLIENT_ID = cryptString(ID DE CLIENTE)
    • IMS_CLIENT_SECRET = cryptString(CLIENT SECRET)
    • IMS_ORG_ID = ID DE ORGANIZACIÓN
    • IMS_CLIENT_API_KEY = cryptString(ID DE CLIENTE)

    {width="70%"}

    note note
    NOTE
    La función cryptString() se utiliza para cifrar los datos de autenticación.
Agregar opciones mediante una actividad de código JavaScript

Para configurar estas opciones automáticamente al ejecutar el flujo de trabajo de páginas de aterrizaje, agregue una actividad JavaScript code al flujo de trabajo con el código siguiente. Aprenda a configurar una actividad de código JavaScript.

En la ejecución del flujo de trabajo, las opciones se crean automáticamente en la consola de Campaign con los valores proporcionados.

code language-none
"javascript
loadLibrary("xtk:shared/nl.js");
loadLibrary("xtk:shared/xtk.js");
loadLibrary("xtk:shared/json2.js");
loadLibrary("xtk:common.js");

function setAuthCredentials()
{
setOption("IMS_CLIENT_ID", cryptString('CLIENT ID'));
setOption("IMS_CLIENT_ID RET", cryptString('CLIENT SECRET');
setOption("IMS_ORG_ID", cryptString('ORGANIZATION ID'));
setOption("IMS_CLIENT_API_KEY", cryptString('CLIENT ID'));
}
"

Ahora que las opciones de autenticación están configuradas en Campaign, debe crear códigos JavaScript personalizados para permitir la sincronización de datos entre Campaign y Adobe Experience Platform desde la página de aterrizaje.

Añadir opciones en la ejecución del flujo de trabajo javacript

Para permitir la sincronización de datos entre páginas de aterrizaje y Adobe Experience Platform, se deben agregar códigos JavaScript personalizados a Adobe Campaign. Siga estos pasos:

  1. Vaya al menú Administration > Configuration > JavaScript codes.

  2. Cree nuevos códigos JavaScript y copie y pegue los siguientes fragmentos de código.

    note note
    NOTE
    El token de acceso y los datos de autenticación se recuperan automáticamente de las opciones configuradas anteriormente.

    {width="70%"}

Script 1: Carga de atributos de perfil del Experience Platform

Este código comprueba si el perfil existe en Adobe Experience Platform antes de cargar la página de aterrizaje. Recupera los atributos de perfil y los muestra en los campos correspondientes de la página de aterrizaje.

code language-javascript
// API implementation to read profile from AEP
function getProfileInfo(email)
{
var accessToken = getAccessToken();
var request = new HttpClientRequest(('https://platform-stage.adobe.io/data/core/ups/access/entities?schema.name=_xdm.context.profile&entityId=' + email + '&entityIdNS=email&fields=identities,consents.marketing'));
request.method = 'GET';
request.header["Content-Type"] = "application/json";
request.header["sandbox-name"] = "prod";
request.header["x-gw-ims-org-id"] = getOption('IMS_ORG_ID');
request.header["x-api-key"] = getOption('IMS_CLIENT_API_KEY');
request.header["Authorization"] = "Bearer " + accessToken;
request.execute();
return request.response;
}
Script 2: Actualización de atributos de perfil del Experience Platform

Este código actualiza los atributos de perfil en Adobe Experience Platform con los valores enviados en la página de aterrizaje.

code language-javascript
// API implementation to update profile in AEP
loadLibrary("xtk:shared/nl.js");
loadLibrary("xtk:shared/xtk.js");
loadLibrary("xtk:shared/json2.js");
loadLibrary("xtk:common.js");

function updateProfileInAEP(profileUpdatePayload)
{
var accessToken = getAccessToken();
var request = new HttpClientRequest('https://dcs-stg.adobedc.net/collection/64a300b84d61c0bcea4f0cd4ecaaa224a19477026d14f7e08b5408ffaf5e6162?syncValidation=false');
request.method = 'POST';
request.header["Content-Type"] = "application/json";
request.header["sandbox-name"] = "prod";
request.header["Authorization"] = "Bearer " + accessToken;
var body = '{"header":{"schemaRef":{"id":"https://ns.adobe.com/campdev/schemas/35d8e567772e1a1093ed6cf9e41d2c1fec22eeb3a89583e1","contentType":"application/vnd.adobe.xed-full+json;version=1.0"},"imsOrgId":"A1F66F0D5C47D1950A494133@AdobeOrg","datasetId":"63c7fa2a20cce11b98cccb41","source":{"name":"testHTTPSourcesVinay - 03/06/2023 5:43 PM"}},"body":{"xdmMeta":{"schemaRef":{"id":"https://ns.adobe.com/campdev/schemas/35d8e567772e1a1093ed6cf9e41d2c1fec22eeb3a89583e1","contentType":"application/vnd.adobe.xed-full+json;version=1.0"}},"xdmEntity":' + profileUpdatePayload +'}}';
request.body = body;
request.execute();
return request.response;
}


// Get Access token from OAuth-Server-to-server API call
function getAccessToken() {
var clientId = decryptString(getOption('IMS_CLIENT_ID'));
var clientSecret = decryptString(getOption('IMS_CLIENT_SECRET'));
var request = new HttpClientRequest(('https://ims-na1-stg1.adobelogin.com/ims/token/v2?grant_type=client_credentials' + '&client_id=' + clientId + '&client_secret=' + clientSecret + '&scope=openid,session,AdobeID,read_organizations,additional_info.projectedProductContext'));
request.method = 'POST';
request.execute();
var response = request.response;
if(response.code != 200){
logError('GetAccessToken failed,', response.code, response.body);
return;
}
var body = ''+response.body;
var parsedResponse = JSON.parse(body);
var accessToken = parsedResponse.access_token;
logInfo("Access token generated successfully");
return accessToken;
}

Ahora que los códigos JavaScript personalizados se crean en Adobe Campaign, puede configurar el flujo de trabajo que contiene la página de aterrizaje para utilizar estos códigos JavaScript para la sincronización de datos.

Configuración del flujo de trabajo de página de aterrizaje script

Con los códigos JavaScript agregados a Adobe Campaign, puede aprovecharlos en el flujo de trabajo de la página de aterrizaje mediante JavaScript code actividades:

  • Para cargar datos del Experience Platform antes de cargar la página de aterrizaje, agregue una actividad JavaScript code antes de la actividad de página de aterrizaje y copie y pegue el script 1.
Script 1: Carga de atributos de perfil del Experience Platform
code language-javascript
// Script code to read profile from AEP.

logInfo("Loading profile from AEP");
loadLibrary("cus:aepAPI");
var recipient=ctx.recipient;
var email = recipient.@email;
var response = getProfileInfo(email);
ctx.isAEPProfileExists = 1;

if(response.code == 404){
ctx.isAEPProfileExists = 0
logInfo("Profile with email" + email + " not found in AEP, ignoring the update activity");
}
else if(response.code == 200){
var body = ''+response.body;
var parsedResponse = JSON.parse(body);
for (var key in parsedResponse) {
    var value =  parsedResponse[key];
    var marketing = value.entity.consents.marketing;
    logInfo("User Consent Details : " + JSON.stringify(marketing));
    if(marketing.hasOwnProperty('email')&&marketing.email.hasOwnProperty('val')&&marketing.email.val=='n'){
    ctx.recipient.@blackListEmail = 1;
    }
    if(marketing.hasOwnProperty('sms')&&marketing.sms.hasOwnProperty('val')&&marketing.sms.val=='n'){
    ctx.recipient.@blackListMobile = 1;
    }
    if(marketing.hasOwnProperty('push')&&marketing.push.hasOwnProperty('val')&&marketing.push.val=='n'){
    ctx.recipient.@blackListPostalMail = 1;
    }
}
}
  • Para actualizar los atributos del perfil del Experience Platform con los datos enviados en la página de aterrizaje, agregue una actividad JavaScript code después de la actividad de la página de aterrizaje y copie y pegue el script 2.
Script 2: Actualización de atributos de perfil del Experience Platform
code language-javascript
// Script code to update profile in AEP and ACC.

logInfo("Executing script to update AEP profile.");

// Loading aepAPI library JS code
loadLibrary("cus:aepAPI");

var recipient=ctx.recipient

// Update profile only if it exists in AEP
if(ctx.isAEPProfileExists==1){

var email = recipient.@email
logInfo(email);
logInfo(recipient.@blackListEmail);
logInfo(recipient.@blackListMobile);
logInfo(recipient.@blackListPostalMail);

var optOutPayload = new Array();

if(recipient.@blackListEmail==1){
    optOutPayload.push('"email":{"val":"n"}');
}
else
    optOutPayload.push('"email":{"val":"y"}');

if(recipient.@blackListMobile==1){
    optOutPayload.push('"sms":{"val":"n"}');
}
else
    optOutPayload.push('"sms":{"val":"y"}');

if(recipient.@blackListPostalMail==1){
    optOutPayload.push('"push":{"val":"n"}');
}
else
    optOutPayload.push('"push":{"val":"y"}');

var profileUpdatePayload = '{'+ '"personalEmail":{"address":' + '\"' + email + '\"' + '},' +'"consents":{"marketing":{' + optOutPayload.toString() + '}}}';

var response = updateProfileInAEP(profileUpdatePayload);
if(response.code == 200){
var body = '' + response.body;
logInfo("AEP Profile Updated successfully, Response " + body);
// Update ACC profile
recipient.@xtkschema = "nms:recipient";
recipient.@_operation = "update";
recipient.@_key="@id";
xtk.session.Write(recipient);
logInfo("ACC Profile Updated successfully");
}
else{
    logError('Server Error: ', response.code, response.body);
}
}
else {
logInfo("Ignoring AEP profile update as profile doesn't exists.");

// Update ACC profile
recipient.@xtkschema = "nms:recipient";
recipient.@_operation = "update";
recipient.@_key="@id";
xtk.session.Write(recipient);
logInfo("ACC Profile Updated successfully");
}
CAUTION
Asegúrese de personalizar la carga útil en cada script según sus necesidades específicas.
Si no agrega ningún script antes de la actividad de la página de aterrizaje, no se realizará ninguna comprobación de la existencia del perfil en Adobe Experience Platform. Cuando se envía la página de aterrizaje y el perfil no existe, se crea en Adobe Experience Platform con los atributos de la página de aterrizaje.

Este es un ejemplo de flujo de trabajo con actividades de código JavaScript antes y después de una página de aterrizaje:

A continuación, se muestra un ejemplo de una página de aterrizaje y una actividad de JavaScript code configurada para actualizar atributos de perfil en Adobe Experience Platform:

Más información

recommendation-more-help
35662671-8e3d-4f04-a092-029a056c566b