Uso de tokens de respuesta

  1. Asegúrese de utilizar la versión 2.6.0 (o posterior) de Platform Web SDK o la versión 1.1 (o posterior) de at.js.

    Para obtener más información:

  2. En Target, haga clic en Administration > Response Tokens.

  3. Active los tokens de respuesta deseados, como activity.id y offer.id.

    Los siguientes parámetros están disponibles de forma predeterminada:

    TipoParámetroNotas
    Perfiles integradosprofile.activeActivitiesDevuelve una matriz de los activityIds para los que el visitante está cualificado. Aumenta a medida que los usuarios se cualifican. Por ejemplo, en una página con dos solicitudes Target que entregan dos actividades diferentes, la segunda solicitud incluye ambas actividades.
    profile.isFirstSessionDevuelve “true” o “false”.
    profile.isNewSessionDevuelve “true” o “false”.
    profile.daysSinceLastVisitDevuelve el número de días desde la última visita del visitante.
    profile.tntIdDevuelve el tntID del visitante.
    profile.marketingCloudVisitorIdDevuelve el ID de visitante de Experience Cloud del visitante.
    profile.thirdPartyIdDevuelve el ID de terceros del visitante.
    profile.categoryAffinityDevuelve la categoría favorita del visitante.
    profile.categoryAffinitiesDevuelve una matriz de las cinco principales categorías del visitante en forma de cadenas.
    Actividadactivity.name
    activity.id
    experience.name
    experience.id
    offer.name
    offer.id
    Detalles de la actividad actual.
    Tenga en cuenta que los valores de los parámetros de oferta se evalúan en el nivel de experiencia.
    Geografíageo.country
    geo.state
    geo.city
    geo.zip
    geo.dma
    geo.domainName
    geo.ispName
    geo.connectionSpeed
    geo.mobileCarrier
    Para obtener más información acerca del uso de la segmentación geográfica en las actividades, consulte Geografía.
    Método de asignación de tráfico
    (se aplica solo a Auto-Target y Automated Personalization actividades).
    experience.trafficAllocationIdDevuelve 0 si un visitante recibió una experiencia por estar en tráfico de "control" y 1 si un visitante recibió una experiencia de la distribución de tráfico "segmentada".
    experience.trafficAllocationTypeDevolver "control" o "segmentado".

    Los atributos del perfil de usuario y los atributos de cliente también se muestran en la lista.

    NOTE
    Los parámetros con caracteres especiales no se muestran en la lista. Se admiten únicamente caracteres alfanuméricos y guiones bajos.
  4. (Condicional) Para usar un parámetro de perfil como token de respuesta, pero el parámetro no se ha pasado a través de una solicitud Target y, por lo tanto, no se ha cargado en la interfaz de usuario Target, puede usar el botón Add Response Token para agregar el perfil a la interfaz de usuario.

    Haga clic en Add Response Token, proporcione el nombre del token y luego haga clic en Activate.

  5. Cree una actividad.

Escuchar respuestas y leer tokens de respuesta

El proceso que usa para escuchar Target respuestas y leer tokens de respuesta varía en función de si tiene una implementación de Platform Web SDK o at.js.

distintivo de Adobe Experience Platform Web SDK Platform Web SDK que usa la clase de objeto Handle

Utilice la clase de objeto Handle, que tiene un objeto de metadatos y un objeto de datos para detectar Target respuestas y leer los tokens de respuesta.

El siguiente ejemplo de respuesta agrega directamente un controlador de eventos personalizado Platform Web SDK a la página del HTML (en la tabla se explican los objetos utilizados en el código):

ObjetoInformación
Tipo: Personalization.decisionSi la decisión fue tomada por el proveedor Target o el proveedor Offer decisioning.
DecisionProvider - TGTTGT-Target. Target proporciona los metadatos y valores del token de respuesta a la página.
MetaMetadatos que se pasan a la página.
DatosValores de los metadatos pasados a la página.
<html>

<head>
 ...
 <script src="alloy.js"></script>
 <script>
  {
   "requestId": "4d0a7cfd-952c-408c-b3b8-438edc38250a",
   "handle": [{
    "type": "personalization:decisions",
    "payload": [{
     "id": "....",
     "scope": "__view__",
     "scopeDetails": {
      "decisionProvider": "TGT",
      "activity": {
       "id": "..."
      },
      "experience": {
       "id": "...."
      }
     },
     "items": [{
      "id": "123",
      "schema": "https://ns.adobe.com/personalization/dom-action",
      "meta": {
       "activity.id": "...",
       "activity.name": "...",
       "profile.foo": "...",
       "profile.bar": "..."
      },
      "data": {
       "id": "123",
       "type": "setHtml",
       "selector": "#foo",
       "prehidingSelector": "#foo",
       "content": "<div>Hello world</div>"
      }
     }]
    }]
   }]
  }
  });
 </script>
</head>

<body>
 ...
</body>

</html>

distintivo de at.js at.js con eventos personalizados

Use eventos personalizados de at.js para escuchar la respuesta Target y leer los tokens de respuesta.

El siguiente ejemplo de código añade un controlador de evento personalizado at.js directamente a la página HTML:

<html>
  <head>
    ....
    <script src="at.js"></script>
    <script>
      document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
        console.log("Request succeeded", e.detail);
      });
    </script>
  <head>
  <body>
  ...
  </body>
</html>

Preguntas frecuentes sobre token de respuesta

¿Qué rol se necesita para activar o desactivar tokens de respuesta?

Solo los usuarios con el rol Target Administrator pueden activar o desactivar los tokens de respuesta.

¿Qué sucede si estoy ejecutando Platform Web SDK 2.6.0 (o una versión anterior)?

No tiene acceso a los tokens de respuesta.

¿Qué sucede si ejecuto at.js 1.0 (o una versión anterior)?

Verá los tokens de respuesta, pero at.js no puede utilizarlos.

¿Puedo tener ambos Target Classic complementos y tokens de respuesta activos al mismo tiempo?

Los complementos y los tokens de respuesta están disponibles en paralelo, pero no se utilizarán en el futuro.

¿Se entregaron tokens de respuesta a través de todas las respuestas de Target o solo a través de respuestas de Target que entregaron una actividad?

Los tokens de respuesta se entregan solamente a través de Target respuestas que entregan una actividad.

Mi complemento Target Classic incluía JavaScript. ¿Cómo replico su funcionalidad mediante tokens de respuesta?

Al migrar a tokens de respuesta, este tipo de JavaScript debe mantenerse en la base de código o en la solución de administración de etiquetas. Puede almacenar en déclencheur este código mediante Platform Web SDK o at.js eventos personalizados y pasar los valores de token de respuesta a sus funciones de JavaScript.

¿Por qué mi perfil o el parámetro de atributos de cliente no se muestra en la lista de tokens de respuesta?

Target normalmente actualiza los parámetros cada 15 minutos. Esta actualización depende de la acción del usuario y los datos solo se actualizan cuando se ve la página de tokens de respuesta. Si los parámetros no se muestran en la lista de token de respuesta, Target aún no ha actualizado los datos.

Además, si el parámetro contiene cualquier carácter que no sea alfanumérico o cualquier símbolo que no sea guiones bajos, el parámetro no aparecerá en la lista. En este momento, solo se admiten caracteres alfanuméricos y guiones bajos.

¿El token de respuesta sigue entregando contenido si usa un script de perfil eliminado o un parámetro de perfil?

Los tokens de respuesta extraen y posteriormente envían información de los perfiles de usuario. Que elimine un script o parámetro de perfil no significa que la información se haya eliminado de los perfiles de usuario. Los perfiles de usuario siguen teniendo datos correspondientes al script de perfil. El token de respuesta sigue entregando el contenido. Para los usuarios que no tienen esa información guardada en sus perfiles, o para los nuevos visitantes, ese token no se entrega porque los datos no están presentes en sus perfiles.

Target no desactiva el token automáticamente. Si elimina un script de perfil y ya no quiere que se envíe el token, deberá desactivar este usted mismo.

He cambiado el nombre del script Mi perfil, ¿por qué el token que utiliza dicho script sigue activo con el nombre antiguo?

Como se ha mencionado anteriormente, los tokens de respuesta operan con la información de perfil que los usuarios tienen guardada. Aunque ha cambiado el nombre del script de perfil, los usuarios que han visitado el sitio web tienen el valor del script de perfil antiguo guardado en sus perfiles. El token sigue recopilando el valor antiguo que ya se ha guardado en los perfiles de usuario. Si desea enviar contenido con el nuevo nombre, deberá desactivar el token antiguo y activar el nuevo.

Si mis atributos han cambiado, ¿cuándo se quitarán de la lista?

Target realiza una actualización de atributos a intervalos regulares. Cualquier atributo que no esté activado se eliminará durante la siguiente actualización. Sin embargo, si tiene un atributo activado y eliminado, dicho script no se elimina de la lista de atributos hasta que lo desactive. Por ejemplo, ha eliminado un script de perfil que se utilizaba como token. Target quita únicamente los atributos desactivados de la lista cuando se eliminan o se les cambia el nombre.

Envío de datos a Google Analytics

En las secciones siguientes se describe cómo enviar datos de Target a los Google Analytics 4. Los datos enviados por tokens de respuesta también se pueden enviar a otras integraciones de terceros.

distintivo de AEP : se envían datos a los Google Analytics a través de Platform Web SDK

Es posible enviar datos a los Google Analytics a través de Platform Web SDK versión 2.6.0 (o posterior) añadiendo el siguiente código en la página del HTML.

NOTE
Asegúrese de que el par clave-valor del token de respuesta esté en el objeto alloy("sendEvent".
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script type="text/javascript">
    alloy("sendEvent", {


    })
    .then(({ renderedPropositions, nonRenderedPropositions }) => {
        // concatenate all the propositions
        const propositions = [...renderedPropositions, ...nonRenderedPropositions];
        // extractResponseTokens() extract the meta from item -> meta
        const tokens = extractResponseTokens(propositions);
        const activityNames = [];
        const experienceNames = [];
        const uniqueTokens = distinct(tokens);


        uniqueTokens.forEach(token => {
            activityNames.push(token["activity.name"]);
            experienceNames.push(token["experience.name"]);
        });

        gtag('config', 'TAG_ID');
        gtag('event', 'action_name', {'eventCategory': 'target',
            'eventAction': experienceNames, 'eventLabel': activityNames
        });
    });
</script>

distintivo de at.js : se envían datos a los Google Analytics a través de at.js

Es posible enviar datos a Google Analytics mediante at.js añadiendo el siguiente código en la página HTML:

<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>

<script type="text/javascript">
    document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
        var tokens = e.detail.responseTokens;

        if (isEmpty(tokens)) {
            return;
        }

        var activityNames = [];
        var experienceNames = [];
        var uniqueTokens = distinct(tokens);

        uniqueTokens.forEach(function(token) {
            activityNames.push(token["activity.name"]);
            experienceNames.push(token["experience.name"]);
        });

        gtag('config', 'TAG_ID');
        gtag('event', 'action_name', {'eventCategory': 'target',
            'eventAction': experienceNames, 'eventLabel': activityNames
        });
    });

    function isEmpty(val) {
        return (val === undefined || val == null || val.length <= 0) ? true : false;
    }

    function key(obj) {
        return Object.keys(obj)
        .map(function(k) { return k + "" + obj[k]; })
        .join("");
    }

    function distinct(arr) {
        var result = arr.reduce(function(acc, e) {
            acc[key(e)] = e;
            return acc;
        }, {});

        return Object.keys(result)
        .map(function(k) { return result[k]; });
    }
</script>

Depuración

Las secciones siguientes proporcionan información sobre la depuración de tokens de respuesta:

distintivo de at.js Google Analytics y depuración

El siguiente código permite depurar con Google Analytics:

<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>

<script type="text/javascript">
    document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
      var tokens = e.detail.responseTokens;

      if (isEmpty(tokens)) {
        return;
      }

      var activityNames = [];
      var experienceNames = [];
      var uniqueTokens = distinct(tokens);

      uniqueTokens.forEach(function(token) {
        activityNames.push(token["activity.name"]);
        experienceNames.push(token["experience.name"]);
      });

      gtag('config', 'TAG_ID');
      gtag('event', 'action_name', {'eventCategory': 'target',
          'eventAction': experienceNames, 'eventLabel': activityNames
      });
    });

    function isEmpty(val) {
      return (val === undefined || val == null || val.length <= 0) ? true : false;
    }

    function key(obj) {
       return Object.keys(obj)
      .map(function(k) { return k + "" + obj[k]; })
      .join("");
    }

    function distinct(arr) {
      var result = arr.reduce(function(acc, e) {
        acc[key(e)] = e;
        return acc;
      }, {});

      return Object.keys(result)
      .map(function(k) { return result[k]; });
    }
</script>

Depuración con el equivalente del complemento ttMeta

Puede crearse el equivalente del complemento ttMeta para depuración añadiendo el siguiente código a la página HTML:

<script type="text/javascript" >
  document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function (e) {
    window.ttMETA= typeof(window.ttMETA)!="undefined" ? window.ttMETA : [];

    var tokens=e.detail.responseTokens;

    if (isEmpty(tokens)) {
      return;
    }

    var uniqueTokens = distinct(tokens);

    uniqueTokens.forEach(function(token) {
      window.ttMETA.push({
        'CampaignName': token["activity.name"],
        'CampaignId' : token["activity.id"],
        'RecipeName': token["experience.name"],
        'RecipeId': token["experience.id"],
        'OfferId': token["offer.id"],
        'OfferName': token["offer.name"],
        'MboxName': e.detail.mbox});
      console.log(ttMETA);
    });
  });

  function isEmpty(val){
    return (val === undefined || val == null || val.length <= 0) ? true : false;
  }

  function key(obj) {
     return Object.keys(obj)
    .map(function(k) { return k + "" + obj[k]; })
    .join("");
  }

  function distinct(arr) {
    var result = arr.reduce(function(acc, e) {
      acc[key(e)] = e;
      return acc;
    }, {});

    return Object.keys(result)
    .map(function(k) { return result[k]; });
  }
</script>

Vídeo de formación de at.js : tokens de respuesta y eventos personalizados de at.js

En el siguiente vídeo se explica cómo utilizar tokens de respuesta y eventos personalizados de at.js para compartir información de perfil de Target con sistemas de terceros.

NOTE
La interfaz de usuario del menú Target Administration (anteriormente Setup) se ha rediseñado para proporcionar un rendimiento mejorado, reducir el tiempo de mantenimiento necesario al lanzar nuevas características y mejorar la experiencia del usuario en todo el producto. La información del siguiente vídeo es correcta; sin embargo, las opciones están en ubicaciones ligeramente diferentes.
El vídeo menciona option.name y option.id, que han sido reemplazados con offer.name y offer.id, respectivamente.
video poster

Target