Desarrollo para contenido de destino developing-for-targeted-content

CAUTION
AEM 6.4 ha llegado al final de la compatibilidad ampliada y esta documentación ya no se actualiza. Para obtener más información, consulte nuestra períodos de asistencia técnica. Buscar las versiones compatibles here.

En esta sección se describen temas sobre el desarrollo de componentes para su uso con la segmentación de contenido.

NOTE
Cuando se marca un componente como objetivo en el autor AEM, este realiza una serie de llamadas del lado del servidor a Adobe Target para registrar la campaña, configurar ofertas y recuperar segmentos de Adobe Target (si están configurados). No se realizan llamadas del lado del servidor desde publicaciones de AEM a Adobe Target.

Activación de la orientación con Adobe Target en las páginas enabling-targeting-with-adobe-target-on-your-pages

Para utilizar componentes de destino en las páginas que interactúen con Adobe Target, incluya código específico del lado del cliente en la variable <head> elemento.

Sección principal the-head-section

Agregue los dos bloques de código siguientes al <head> de su página:

<!--/* Include Context Hub */-->
<sly data-sly-resource="${'contexthub' @ resourceType='granite/contexthub/components/contexthub'}"/>
<cq:include script="/libs/cq/cloudserviceconfigs/components/servicelibs/servicelibs.jsp"/>

Este código agrega los objetos javascript de analytics necesarios y carga las bibliotecas de servicios de nube asociadas con el sitio web. Para el servicio Target, las bibliotecas se cargan mediante /libs/cq/analytics/components/testandtarget/headlibs.jsp

El conjunto de bibliotecas cargadas depende del tipo de biblioteca de cliente de Target (mbox.js o at.js) que se use en la configuración de Target:

Para el mbox.js predeterminado

<script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/parameters.js"></script>
 <script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/mbox.js"></script>
 <script type="text/javascript" src="/etc/clientlibs/foundation/personalization/integrations/commons.js"></script>
 <script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/util.js"></script>
 <script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/init.js"></script>

Para mbox.js personalizado

<script type="text/javascript" src="/etc/cloudservices/testandtarget/<CLIENT-CODE>/_jcr_content/public/mbox.js"></script>
        <script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/parameters.js"></script>
 <script type="text/javascript" src="/etc/clientlibs/foundation/personalization/integrations/commons.js"></script>
 <script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/util.js"></script>
 <script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/init.js"></script>

Para at.js

<script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/parameters.js"></script>
 <script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/atjs-integration.js"></script>
 <script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/atjs.js"></script>
NOTE
Solo la versión de at.js incluido con el producto es compatible. La versión de at.js enviado con el producto puede obtenerse mirando el at.js archivo en la ubicación /etc/clientlibs/foundation/testandtarget/atjs/source/at.js.

Para at.js personalizados

<script type="text/javascript" src="/etc/cloudservices/testandtarget/<CLIENT-CODE>/_jcr_content/public/at.js"></script>
    <script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/parameters.js"></script>
 <script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/atjs-integration.js"></script>

La funcionalidad de Target del lado del cliente la administra el CQ_Analytics.TestTarget objeto. Por lo tanto, la página contendrá código de inicio como en el siguiente ejemplo:

<script type="text/javascript">
            if ( !window.CQ_Analytics ) {
                window.CQ_Analytics = {};
            }
            if ( !CQ_Analytics.TestTarget ) {
                CQ_Analytics.TestTarget = {};
            }
            CQ_Analytics.TestTarget.clientCode = 'my_client_code';
        </script>
      ...

    <div class="cloudservice testandtarget">
  <script type="text/javascript">
  CQ_Analytics.TestTarget.maxProfileParams = 11;

  if (CQ_Analytics.CCM) {
   if (CQ_Analytics.CCM.areStoresInitialized) {
    CQ_Analytics.TestTarget.registerMboxUpdateCalls();
   } else {
    CQ_Analytics.CCM.addListener("storesinitialize", function (e) {
     CQ_Analytics.TestTarget.registerMboxUpdateCalls();
    });
   }
  } else {
   // client context not there, still register calls
   CQ_Analytics.TestTarget.registerMboxUpdateCalls();
  }
  </script>
 </div>

El JSP agrega los objetos javascript de análisis necesarios y las referencias a bibliotecas javascript del lado del cliente. La variable testandtarget.js contiene el mbox.js funciones. El HTML que genera la secuencia de comandos es similar al siguiente ejemplo:

<script type="text/javascript">
        if ( !window.CQ_Analytics ) {
            window.CQ_Analytics = {};
        }
        if ( !CQ_Analytics.TestTarget ) {
            CQ_Analytics.TestTarget = {};
        }
        CQ_Analytics.TestTarget.clientCode = 'MyClientCode';
</script>
<link rel="stylesheet" href="/etc/clientlibs/foundation/testandtarget/testandtarget.css" type="text/css">
<script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/testandtarget.js"></script>
<script type="text/javascript" src="/etc/clientlibs/foundation/testandtarget/init.js"></script>

Sección del cuerpo (inicio) the-body-section-start

Agregue el siguiente código inmediatamente después de la <body> para añadir las funciones de ClientContext a la página:

<cq:include path="clientcontext" resourceType="cq/personalization/components/clientcontext"/>

La sección del cuerpo (final) the-body-section-end

Agregue el siguiente código inmediatamente antes del </body> etiqueta final:

<cq:include path="cloudservices" resourceType="cq/cloudserviceconfigs/components/servicecomponents"/>

El script JSP de este componente genera llamadas a la API de JavaScript de Target e implementa otras configuraciones necesarias. El HTML que genera la secuencia de comandos es similar al siguiente ejemplo:

<div class="servicecomponents cloudservices">
  <div class="cloudservice testandtarget">
    <script type="text/javascript">
      CQ_Analytics.TestTarget.maxProfileParams = 11;
      CQ_Analytics.CCM.addListener("storesinitialize", function(e) {
        CQ_Analytics.TestTarget.registerMboxUpdateCalls();
      });
    </script>
    <div id="cq-analytics-texthint" style="background:white; padding:0 10px; display:none;">
      <h3 class="cq-texthint-placeholder">Component clientcontext is missing or misplaced.</h3>
    </div>
    <script type="text/javascript">
      $CQ(function(){
      if( CQ_Analytics &&
          CQ_Analytics.ClientContextMgr &&
          !CQ_Analytics.ClientContextMgr.isConfigLoaded )
        {
          $CQ("#cq-analytics-texthint").show();
        }
      });
    </script>
  </div>
</div>

Uso de un archivo de biblioteca de Target personalizado using-a-custom-target-library-file

NOTE
Si no utiliza DTM u otro sistema de marketing de destino, puede utilizar archivos de biblioteca de destino personalizados.
NOTE
De forma predeterminada, los mboxes están ocultos: la clase mboxDefault determina este comportamiento. Ocultar mboxes garantiza que los visitantes no vean el contenido predeterminado antes de que se cambie; sin embargo, ocultar mboxes afecta al rendimiento percibido.

El archivo mbox.js predeterminado que se usa para crear mboxes se encuentra en /etc/clientlibs/foundation/testandtarget/mbox/source/mbox.js. Para utilizar un archivo mbox.js de cliente, agregue el archivo a la configuración de la nube de Target. Para agregar el archivo, la variable mbox.js debe estar disponible en el sistema de archivos.

Por ejemplo, si desea usar la variable Servicio de ID de Marketing Cloud debe descargar mbox.js para que contenga el valor correcto para la variable imsOrgID , que se basa en el inquilino. Esta variable es necesaria para la integración con el servicio de ID de Marketing Cloud. Para obtener más información, consulte Adobe Analytics como fuente de informes para Adobe Target y Antes de la implementación.

NOTE
Si un mbox personalizado está definido en una configuración de Target, todos deben tener acceso de lectura a /etc/cloudservices en servidores de publicación. Sin este acceso, la carga de archivos mbox.js en el sitio web de publicación produce un error 404.
  1. Vaya a CQ Herramientas página y seleccione Cloud Services. (http://localhost:4502/libs/cq/core/content/tools/cloudservices.html)
  2. En el árbol, seleccione Adobe Target y, en la lista de configuraciones, haga doble clic en la configuración de Target.
  3. En la página de configuración, haga clic en Editar.
  4. En la propiedad mbox.js personalizado , haga clic en Examinar y seleccione el archivo.
  5. Para aplicar los cambios, introduzca la contraseña de la cuenta de Adobe Target, haga clic en Volver a conectar con Target y haga clic en Aceptar cuando la conexión se haya realizado correctamente. A continuación, haga clic en Aceptar en el cuadro de diálogo Editar componente.

La configuración de Target incluye un archivo mbox.js personalizado, el código requerido en la sección del encabezado de su página agrega el archivo al marco de biblioteca del cliente en lugar de una referencia a la biblioteca testandtarget.js .

Desactivación del comando de Target para componentes disabling-the-target-command-for-components

La mayoría de los componentes se pueden convertir en componentes de destino mediante el comando Target del menú contextual.

chlimage_1-173

Para quitar el comando Target del menú contextual, agregue la siguiente propiedad al nodo cq:editConfig del componente:

  • Nombre: cq:disableTargeting
  • Tipo: Boolean
  • Valor: True

Por ejemplo, para deshabilitar la segmentación de los componentes de título de las páginas del sitio de demostración de Geometrixx, agregue la propiedad al /apps/geometrixx/components/title/cq:editConfig nodo .

chlimage_1-174

Envío de información de confirmación de pedido a Adobe Target sending-order-confirmation-information-to-adobe-target

NOTE
Si no utiliza DTM, envíe la confirmación del pedido a Adobe Target.

Para realizar un seguimiento del rendimiento de su sitio web, envíe la información de compra desde la página de confirmación de pedido a Adobe Target. (Consulte Creación de un mbox orderConfirmPage en la documentación de Adobe Target). Adobe Target reconoce los datos de mbox como datos de confirmación de pedido cuando el nombre de MBox es orderConfirmPage y utiliza los siguientes nombres de parámetros específicos:

  • productPurchasedId: Una lista de ID que identifican los productos comprados.
  • orderId: ID del pedido.
  • orderTotal: El importe total de la compra.

El código de la página HTML representado que crea el mbox es similar al del siguiente ejemplo:

<script type="text/javascript">
     mboxCreate('orderConfirmPage',
     'productPurchasedId=product1 product2 product3',
     'orderId=order1234',
     'orderTotal=24.54');
</script>

Los valores de cada parámetro son diferentes para cada orden. Por lo tanto, es necesario un componente que genere el código en función de las propiedades de la compra. CQ eCommerce Integration Framework le permite integrarse con su catálogo de productos e implementar un carro de compras y una página de cierre de compra.

El ejemplo de Geometrixx Outdoors muestra la siguiente página de confirmación cuando un visitante compra productos:

chlimage_1-175

El siguiente código para la secuencia de comandos JSP de un componente accede a las propiedades del carro de compras y, a continuación, imprime el código para crear el mbox.

<%--

  confirmationmbox component.

--%><%
%><%@include file="/libs/foundation/global.jsp"%><%
%><%@page session="false"
          import="com.adobe.cq.commerce.api.CommerceService,
                  com.adobe.cq.commerce.api.CommerceSession,
                  com.adobe.cq.commerce.common.PriceFilter,
                  com.adobe.cq.commerce.api.Product,
                  java.util.List, java.util.Iterator"%><%

/* obtain the CommerceSession object */
CommerceService commerceservice = resource.adaptTo(CommerceService.class);
CommerceSession session = commerceservice.login(slingRequest, slingResponse);

/* obtain the cart items */
List<CommerceSession.CartEntry> entries = session.getCartEntries();
Iterator<CommerceSession.CartEntry> cartiterator = entries.iterator();

/* iterate the items and get the product IDs */
String productIDs = new String();
while(cartiterator.hasNext()){
 CommerceSession.CartEntry entry = cartiterator.next();
 productIDs = productIDs + entry.getProduct().getSKU();
    if (cartiterator.hasNext()) productIDs = productIDs + ", ";
}

/* get the cart price and orderID */
String total = session.getCartPrice(new PriceFilter("CART", "PRE_TAX"));
String orderID = session.getOrderId();

%><div class="mboxDefault"></div>
<script type="text/javascript">
     mboxCreate('orderConfirmPage',
     'productPurchasedId=<%= productIDs %>',
     'orderId=<%= orderID %>',
     'orderTotal=<%= total %>');
</script>

Cuando el componente se incluye en la página de cierre de compra del ejemplo anterior, el origen de la página incluye la siguiente secuencia de comandos que crea el mbox:

<div class="mboxDefault"></div>
<script type="text/javascript">

     mboxCreate('orderConfirmPage',
     'productPurchasedId=47638-S, 46587',
     'orderId=d03cb015-c30f-4bae-ab12-1d62b4d105ca',
     'orderTotal=US$677.00');

</script>

Explicación del componente Target understanding-the-target-component

El componente Target permite a los autores crear mboxes dinámicos a partir de componentes de contenido de CQ. (Consulte Segmentación de contenido.) El componente Target se encuentra en /libs/cq/personalization/components/target.

La secuencia de comandos target.jsp accede a las propiedades de la página para determinar el motor de targeting que se utilizará para el componente y, a continuación, ejecuta la secuencia de comandos adecuada:

  • Adobe Target: /libs/cq/personalization/components/target/engine_tnt.jsp
  • Adobe Target con AT.JS: /libs/cq/personalization/components/target/engine_atjs.jsp
  • Adobe Campaign: /libs/cq/personalization/components/target/engine_cq_campaign.jsp
  • Reglas del lado del cliente/ContextHub: /libs/cq/personalization/components/target/engine_cq.jsp

La creación de mboxes the-creation-of-mboxes

NOTE
De forma predeterminada, los mboxes están ocultos: la clase mboxDefault determina este comportamiento. Ocultar mboxes garantiza que los visitantes no vean el contenido predeterminado antes de que se cambie; sin embargo, ocultar mboxes afecta al rendimiento percibido.

Cuando Adobe Target impulsa la segmentación de contenido, la secuencia de comandos engine_tnt.jsp crea mboxes que contienen el contenido de la experiencia de destino:

  • Añade un div elemento con la clase de mboxDefault, tal y como requiere la API de Adobe Target.

  • Añade el contenido de mbox (el contenido de la experiencia segmentada) dentro del div elemento.

A continuación se muestra la mboxDefault elemento div, se inserta el javascript que crea el mbox:

  • El nombre, el ID y la ubicación del mbox se basan en la ruta del repositorio del componente.
  • La secuencia de comandos obtiene nombres y valores de parámetros de Client Context.
  • Se realizan llamadas a las funciones que mbox.js y otras bibliotecas de cliente definen para crear mboxes.

Bibliotecas de clientes para segmentación de contenido client-libraries-for-content-targeting

Las siguientes son las categorías clientlib disponibles:

  • testandtarget.mbox
  • testandtarget.init
  • testandtarget.util
  • testandtarget.atjs
  • testandtarget.atjs-integration
recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e