Show Menu
TEMAS×

targetGlobalSettings()

En lugar de definir la configuración en la interfaz de usuario Standard/Premium de Target, puede reemplazar la configuración de la biblioteca at.js mediante targetGlobalSettings() o mediante las API de REST.
Hay casos de uso, especialmente cuando at.js se entrega a través de la Dynamic Tag Management (DTM), en que se necesita anular algunas de estas configuraciones.

Configuración

Las configuraciones que se pueden anular son las siguientes:

bodyHiddenStyle

  • Tipo : String
  • Valor predeterminado: body { opacity: 0 }
  • Descripción : Se utiliza únicamente cuando globalMboxAutocreate === true se minimiza la posibilidad de parpadeo.
    Para obtener más información, consulte Cómo gestiona at.js el parpadeo .

bodyHidingEnabled

  • Tipo : Booleano
  • Valor predeterminado: true
  • Descripción : Se utiliza para controlar el parpadeo cuando target-global-mbox se utiliza para entregar ofertas creadas en el Compositor de experiencias visuales, también conocidas como ofertas visuales.

clientCode

  • Tipo : String
  • Valor predeterminado: Valor definido mediante la interfaz de usuario.
  • Descripción : Representa el código de cliente.

cookieDomain

  • Tipo : String
  • Valor predeterminado: Si es posible, configure el dominio de nivel superior.
  • Descripción : Representa el dominio utilizado al guardar cookies.

crossDomain

  • Tipo : String
  • Valor predeterminado: Valor definido mediante la interfaz de usuario.
  • Descripción : Indica si el seguimiento entre dominios está habilitado o no. Los valores permitidos son: deshabilitada, habilitada o x-solamente.

cspScriptNonce

  • Tipo : Consulte Política de seguridad del contenido más abajo.
  • Valor predeterminado: Consulte Política de seguridad del contenido más abajo.
  • Descripción : Consulte Política de seguridad del contenido más abajo.

cspStyleNonce

  • Tipo : Consulte Política de seguridad del contenido más abajo.
  • Valor predeterminado: Consulte Política de seguridad del contenido más abajo.
  • Descripción : Consulte Política de seguridad del contenido más abajo.

dataProviders

  • Tipo : Consulte Proveedores de datos a continuación.
  • Valor predeterminado: Consulte Proveedores de datos a continuación.
  • Descripción : Consulte Proveedores de datos a continuación.

defaultContentHiddenStyle

  • Tipo : String
  • Valor predeterminado: visibility: hidden
  • Descripción : Solo se utiliza para ajustar mboxes que utilizan DIV con el nombre de clase "mboxDefault" y que se ejecutan mediante mboxCreate() , mboxUpdate() o mboxDefine() para ocultar contenido predeterminado.

defaultContentVisibleStyle

  • Tipo : String
  • Valor predeterminado: visibility: visible
  • Descripción : Solo se utiliza para ajustar mboxes que utilizan DIV con el nombre de clase "mboxDefault" y que se ejecutan mediante mboxCreate() , mboxUpdate() o mboxDefine() para mostrar la oferta aplicada, si existe contenido predeterminado.

deviceIdLifetime

  • Tipo : Número
  • Valor predeterminado: 63244800000 ms = 2 años
  • Descripción : La cantidad de tiempo que deviceId se conserva en las cookies.
La configuración de deviceIdLifetime se puede sobrescribir en la versión 2.3.1 o posterior de at.js.

enabled

  • Tipo : Booleano
  • Valor predeterminado: true
  • Descripción : Cuando está habilitada, se ejecuta automáticamente una Target solicitud para recuperar experiencias y la manipulación DOM para procesar las experiencias. Además, Target las llamadas se pueden ejecutar manualmente mediante getOffer(s) / applyOffer(s) .
    Cuando se deshabilita, Target las solicitudes no se ejecutan de forma automática o manual.

globalMboxAutoCreate

  • Tipo : Número
  • Valor predeterminado: Valor definido mediante la interfaz de usuario.
  • Descripción : Indica si la solicitud de mbox global debe activarse o no.

imsOrgId

  • Tipo : Cadena
  • Valor predeterminado: true
  • Descripción : Representa el identificador de organización de IMS.

optoutEnabled

  • Tipo : Booleano
  • Valor predeterminado: false
  • Descripción : Indica si Destinatario debe llamar a la función de API de Visitante isOptedOut() . Esto forma parte de la habilitación de Device Graph.

overrideMboxEdgeServer

  • Tipo : Booleano
  • Valor predeterminado: true (true a partir de la versión 1.6.2 de at.js)
  • Descripción : Indica si deberíamos usar <clientCode>.tt.omtrdc.net dominio o mboxedge<clusterNumber>.tt.omtrdc.net dominio.
    If this value is true, mboxedge<clusterNumber>.tt.omtrdc.net domain will be saved to a cookie. Actualmente no funciona con CNAME

overrideMboxEdgeServerTimeout

  • Tipo : Número
  • Valor predeterminado: 1860000 => 31 minutos
  • Descripción : Indica la duración de la cookie que contiene el mboxedge<clusterNumber>.tt.omtrdc.net valor.

pageLoadEnabled

  • Tipo : Booleano
  • Valor predeterminado: true
  • Descripción : Cuando está habilitada, recupera automáticamente experiencias que deben devolverse al cargar la página.

secureOnly

  • Tipo : Booleano
  • Valor predeterminado: false
  • Descripción : Indica si at.js debe utilizar solo HTTPS o si se le debe permitir cambiar entre HTTP y HTTPS según el protocolo de la página.

selectorsPollingTimeout

  • Tipo : Número
  • Valor predeterminado: 5000 ms = 5 s
  • Descripción : En at.js 0.9.6, Target se ha introducido esta nueva configuración que se puede anular mediante targetGlobalSettings .
    The selectorsPollingTimeout setting represents how long the client is willing to wait for all the elements identified by selectors to appear on the page.
    Las actividades creadas por medio del Compositor de experiencias visuales (VEC) tienen ofertas que contienen selectores.

serverDomain

  • Tipo : String
  • Valor predeterminado: Valor definido mediante la interfaz de usuario.
  • Descripción : Representa el servidor Edge de Destinatario.

serverState

  • Tipo : Consulte Personalización híbrida a continuación.
  • Valor predeterminado: Consulte Personalización híbrida a continuación.
  • Descripción : Consulte Personalización híbrida a continuación.

timeout

  • Tipo : Número
  • Valor predeterminado: Valor definido mediante la interfaz de usuario.
  • Descripción : Representa el tiempo de espera de la solicitud Target edge.

viewsEnabled

  • Tipo : Booleano
  • Valor predeterminado: true
  • Descripción : Cuando está habilitada, recupera automáticamente vistas que deben devolverse al cargar la página. Las Vistas se admiten en at.js 2.Solamente x.

visitorApiTimeout

  • Tipo : Número
  • Valor predeterminado: 2000 ms = 2 s
  • Descripción : Representa el tiempo de espera de solicitud de la API de Visitante.

Uso

Esta función puede definirse antes de que se cargue at.js o en Configuración > Implementación > Editar la configuración de mbox.js > Configuración del código > Encabezado de la biblioteca .
En el campo Encabezado de la biblioteca se puede introducir JavaScript de formato libre. El código de personalización debe parecerse al del ejemplo siguiente:
window.targetGlobalSettings = {  
   timeout: 200, // using custom timeout  
   visitorApiTimeout: 500, // using custom API timeout  
   enabled: document.location.href.indexOf('https://www.adobe.com') >= 0 // enabled ONLY on adobe.com  
};

Proveedores de datos

Esta configuración permite a los clientes recopilar información de proveedores de datos de terceros, como Demandbase, BlueKai y servicios personalizados, y pasar los datos a Target como parámetros de mbox en la solicitud global de mbox. Admite la recopilación de datos de múltiples proveedores a través de solicitudes de desincronización y sincronización. El uso de este enfoque facilita la administración del parpadeo del contenido predeterminado de la página, al tiempo que incluye tiempos de espera independientes para cada proveedor para limitar el impacto en el rendimiento de la página.
Proveedores de datos requiere at.js 1.3 o posterior.
Los vídeos siguientes contienen más información:
Vídeo
Descripción
Proveedores de datos es una funcionalidad que permite pasar fácilmente datos de terceros a Target. Un tercero podría ser un servicio de pronóstico del clima, un DMP o incluso su propio servicio web. Puede usar estos datos para crear audiencias, dirigir contenido y enriquecer el perfil del visitante.
Detalles de implementación y ejemplos de cómo usar la función dataProviders de Adobe Target para recuperar datos de proveedores de datos de terceros y pasarlos en la solicitud de Target.
La configuración window.targetGlobalSettings.dataProviders es una matriz de proveedores de datos.
Cada proveedor de datos tiene la siguiente estructura:
Clave
Tipo
Descripción
name
Cadena
Nombre del proveedor
version
Cadena
Versión del proveedor. Esta clave se usará para la evolución del proveedor.
timeout
Número
Representa el tiempo de espera del proveedor si se trata de una solicitud de red. Esta clave es opcional.
provider
Función
La función que contiene la lógica de búsqueda de datos del proveedor.
La función tiene un solo parámetro requerido: callback . El parámetro de llamada de retorno es una función que debe invocarse solo cuando los datos se han recuperado correctamente o si hay un error.
La devolución de llamada espera dos parámetros:
  • error: indica si ocurrió un error. Si todo está bien, entonces este parámetro debe establecerse en nulo.
  • params: un objeto JSON, que representa los parámetros que se enviarán en una solicitud de Target.
El siguiente ejemplo muestra dónde está utilizando la ejecución de sincronización el proveedor de datos:
var syncDataProvider = { 
  name: "simpleDataProvider", 
  version: "1.0.0", 
  provider: function(callback) { 
    callback(null, {t1: 1}); 
  } 
}; 
  
window.targetGlobalSettings = { 
  dataProviders: [ 
    syncDataProvider 
  ] 
};

Después de que at.js procese window.targetGlobalSettings.dataProviders , la solicitud de Target contiene un nuevo parámetro: t1=1 .
El siguiente es un ejemplo de si los parámetros que desea agregar a la solicitud de Target se obtienen de un servicio de terceros, como BlueKai, Demandbase, y así sucesivamente:
var blueKaiDataProvider = { 
   name: "blueKai", 
   version: "1.0.0", 
   provider: function(callback) { 
      // simulating network request 
     setTimeout(function() { 
       callback(null, {t1: 1, t2: 2, t3: 3}); 
     }, 1000); 
   } 
} 
  
window.targetGlobalSettings = { 
   dataProviders: [ 
      blueKaiDataProvider 
   ] 
};

Después de que at.js procese window.targetGlobalSettings.dataProviders , la solicitud de Target contiene parámetros adicionales: t1=1 , t2=2 y t3=3 .
El siguiente ejemplo utiliza proveedores de datos para recopilar datos de la API meteorológica y enviarlos como parámetros en una solicitud de Target. La solicitud de Target tendrá parámetros adicionales, como country y weatherCondition .
var weatherProvider = { 
      name: "weather-api", 
      version: "1.0.0", 
      timeout: 2000, 
      provider: function(callback) { 
        var API_KEY = "caa84fc6f5dc77b6372d2570458b8699"; 
        var lat = 44.426767399999996; 
        var lon = 26.1025384; 
        var url = "//api.openweathermap.org/data/2.5/weather?lang=en"; 
        var data = { 
          lat: lat, 
          lon: lon, 
          appId: API_KEY 
        } 
 
        $.ajax({ 
          type: "GET", 
                url: url, 
          dataType: "json", 
          data: data, 
          success: function(data) { 
            console.log("Weather data", data); 
            callback(null, { 
              country: data.sys.country, 
              weatherCondition: data.weather[0].main 
            }); 
          }, 
          error: function(err) { 
            console.log("Error", err); 
            callback(err); 
          } 
        });         
      } 
    }; 
 
    window.targetGlobalSettings = { 
      dataProviders: [weatherProvider] 
    };

Tenga en cuenta lo siguiente al trabajar con la configuración dataProviders :
  • Si los proveedores de datos agregados a window.targetGlobalSettings.dataProviders son asincrónicos, se ejecutarán en paralelo. La solicitud de API del visitante se ejecutará en paralelo con las funciones agregadas a window.targetGlobalSettings.dataProviders para permitir un tiempo de espera mínimo.
  • at.js no intentará almacenar en caché los datos. Si el proveedor de datos obtiene datos solo una vez, el proveedor de datos debe asegurarse de que los datos estén en caché y, cuando se invoque la función del proveedor, sirva los datos de caché para la segunda invocación.

Content Security Policy

at.js 2.3.0+ admite la configuración de las funciones de la directiva de seguridad de contenido en las etiquetas SCRIPT y STYLE que se anexan a la página DOM al aplicar ofertas de Destinatario entregadas.
Las funciones SCRIPT y STYLE deben establecerse en targetGlobalSettings.cspScriptNonce y targetGlobalSettings.cspStyleNonce en consecuencia, antes de cargar at.js 2.3.0+. Vea un ejemplo a continuación:
...
<head>
 <script nonce="<script_nonce_value>">
window.targetGlobalSettings = {
  cspScriptNonce: "<csp_script_nonce_value>",
  cspStyleNonce: "<csp_style_nonce_value>"
};
 </script>
 <script nonce="<script_nonce_value>" src="at.js"></script>
...
</head>
...

Después cspScriptNonce de especificar la configuración y cspStyleNonce , at.js 2.3.0 o posterior los establece como atributos nonce en todas las etiquetas SCRIPT y STYLE que anexa al DOM al aplicar ofertas de Destinatario.

Personalización híbrida

serverState es una configuración disponible en at.js v2.2+ que puede utilizarse para optimizar el rendimiento de la página cuando se implementa una integración híbrida de Destinatario. La integración híbrida significa que se utiliza at.js v2.2+ en el cliente y la API de envío o un SDK de Destinatario en el servidor para ofrecer experiencias. serverState proporciona a at.js v2.2+ la capacidad de aplicar experiencias directamente desde el contenido recuperado en el servidor y devuelto al cliente como parte de la página que se está ofreciendo.

Requisitos previos

Debe tener una integración híbrida de Target.

Ejemplos de código

Para comprender mejor cómo funciona esto, vea los ejemplos de código siguientes que tendría en su servidor. El código supone que está utilizando el SDK de Destinatario Node.js.
// First, we fetch the offers via Target Node.js SDK API, as usual
const targetResponse = await targetClient.getOffers(options);
// A successfull response will contain Target Delivery API request and response objects, which we need to set as serverState
const serverState = {
  request: targetResponse.request,
  response: targetResponse.response
};
// Finally, we should set window.targetGlobalSettings.serverState in the returned page, by replacing it in a page template, for example
const PAGE_TEMPLATE = `
<!doctype html>
<html>
<head>
  ...
  <script>
    window.targetGlobalSettings = {
      overrideMboxEdgeServer: true,
      serverState: ${JSON.stringify(serverState, null, " ")}
    };
  </script>
  <script src="at.js"></script>
</head>
...
</html>
`;
// Return PAGE_TEMPLATE to the client ...

Un objeto de ejemplo serverState JSON para la recuperación previa de vistas tiene el siguiente aspecto:
{
 "request": {
  "requestId": "076ace1cd3624048bae1ced1f9e0c536",
  "id": {
   "tntId": "08210e2d751a44779b8313e2d2692b96.21_27"
  },
  "context": {
   "channel": "web",
   "timeOffsetInMinutes": 0
  },
  "experienceCloud": {
   "analytics": {
    "logging": "server_side",
    "supplementalDataId": "7D3AA246CC99FD7F-1B3DD2E75595498E"
   }
  },
  "prefetch": {
   "views": [
    {
     "address": {
      "url": "my.testsite.com/"
     }
    }
   ]
  }
 },
 "response": {
  "status": 200,
  "requestId": "076ace1cd3624048bae1ced1f9e0c536",
  "id": {
   "tntId": "08210e2d751a44779b8313e2d2692b96.21_27"
  },
  "client": "testclient",
  "edgeHost": "mboxedge21.tt.omtrdc.net",
  "prefetch": {
   "views": [
    {
     "name": "home",
     "key": "home",
     "options": [
      {
       "type": "actions",
       "content": [
        {
         "type": "setHtml",
         "selector": "#app > DIV.app-container:eq(0) > DIV.page-container:eq(0) > DIV:nth-of-type(2) > SECTION.section:eq(0) > DIV.container:eq(1) > DIV.heading:eq(0) > H1.title:eq(0)",
         "cssSelector": "#app > DIV:nth-of-type(1) > DIV:nth-of-type(1) > DIV:nth-of-type(2) > SECTION:nth-of-type(1) > DIV:nth-of-type(2) > DIV:nth-of-type(1) > H1:nth-of-type(1)",
         "content": "<span style=\"color:#FF0000;\">Latest</span> Products for 2020"
        }
       ],
       "eventToken": "t0FRvoWosOqHmYL5G18QCZNWHtnQtQrJfmRrQugEa2qCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==",
       "responseTokens": {
        "profile.memberlevel": "0",
        "geo.city": "dublin",
        "activity.id": "302740",
        "experience.name": "Experience B",
        "geo.country": "ireland"
       }
      }
     ],
     "state": "J+W1Fq18hxliDDJonTPfV0S+mzxapAO3d14M43EsM9f12A6QaqL+E3XKkRFlmq9U"
    }
   ]
  }
 }
}

Después de cargar la página en el explorador, at.js aplica todas las Target ofertas desde serverState inmediatamente, sin activar ninguna llamada de red contra el Target edge. Además, at.js solo oculta los elementos DOM para los que hay Target ofertas disponibles en el servidor de contenido recuperado, lo que tiene un impacto positivo en el rendimiento de carga de página y en la experiencia del usuario final.

Notas importantes

Consider the following when using serverState :
  • En este momento, at.js v2.2 solo admite la entrega de experiencias mediante serverState para:
    • actividades creadas por VEC que se ejecutan al cargar la página.
    • vistas prebuscadas.
      En el caso de los SPA que utilizan Target Vistas y triggerView() en la API de at.js, at.js v2.2 almacena en caché el contenido de todas las Vistas recuperadas previamente en el servidor y lo aplica en cuanto se activa cada Vista mediante triggerView() , de nuevo sin activar ninguna llamada de recuperación de contenido adicional al Destinatario.
    • Nota : Actualmente, los mboxes recuperados en el servidor no son compatibles con serverState .
  • Al aplicar serverState ofertas, at.js tiene en cuenta pageLoadEnabled y viewsEnabled la configuración, por ejemplo: ofertas de carga de página, no se aplicará si la pageLoadEnabled configuración es falsa.
    Para activar esta configuración, habilite la opción de alternancia en Ajustes de # .

Recursos adicionales

Para obtener más información sobre cómo serverState funciona, consulte los siguientes recursos: