Utilización de la etiqueta de salida para configurar la colocación de los fragmentos de código JavaScript de IBM Digital Analytics

En las páginas JSP de la tienda, la etiqueta de salida (<cm:output/>) actúa como marcador de ubicación para grabar fragmentos de código JavaScript de cada vez que se representa la página. Estos fragmentos de código JavaScript de IBM Digital Analytics se definen en el archivo de configuración de análisis (biConfig.xml), dentro del elemento <output>. El archivo de ejemplo predeterminado biConfig.xml y las últimas tiendas de inicio HCL Commerce ya están configuradas para utilizar la etiqueta de salida para su finalidad prevista. Si es necesario, puede cambiar la ubicación de la etiqueta de salida en las páginas de la tienda de inicio, o puede utilizar la etiqueta <output> para grabar contenido adicional en una ubicación de una página de la tienda.

Implementación predeterminada de la etiqueta de salida

En el archivo de ejemplo predeterminado biConfig.xml, la etiqueta de salida se define utilizando el elemento <output>, tal como se muestra a continuación:
...
<output section = "header">
    <![CDATA[
    <script type="text/javascript" src="//libs.coremetrics.com/eluminate.js"></script> 
    <script type="text/javascript"> 
    cmSetupNormalization("krypto-_-krypto"); 
    // send data to production system 
    //cmSetClientID("99999999",true,"data.coremetrics.com","thesite.com"); 
    // send data to test system 
    cmSetClientID("69999999",false,"testdata.coremetrics.com","thesite.com"); 
    </script> 				
    ]]>
</output>
...

Cuando se representa una página de tienda, todo el contenido dentro del elemento <output> debe grabarse en la página. El objetivo de este contenido JavaScript es incluir el archivo de biblioteca de IBM Digital Analytics (eluminate.js) y llamar a la función cmSetClientID. IBM Digital Analytics utiliza este contenido cuando recopila datos de análisis.

Para marcar la ubicación en la página de la tienda donde debe grabarse el contenido dentro del elemento <output>, las tiendas de inicio Madisons y Elite publicadas con las mejoras de HCL Commerce Versión 7 Feature Pack 3 ya están etiquetadas con la etiqueta <cm:output />. La etiqueta tiene este aspecto:
<cm:output section="header" />

Para estas tiendas, la etiqueta <cm:output /> se coloca en el siguiente archivo: workspace_dir/crs-web/WebContent/store_name/include/CommonJSToInclude.jspf

A continuación se muestra un fragmento de código del final del archivo CommonJSToInclude.jspf que muestra la etiqueta <cm:output />:
...
<%@ include file="CommonJSToIncludeExt.jspf"%>
<%@ include file="CommonJSToIncludeBrazilExt.jspf"%>
<%@ include file="MultipleWishListSetup.jspf" %>
<%@ include file="../ShoppingArea/Configurator/SterlingConfiguratorJS.jspf" %>

<flow:ifEnabled feature="Analytics">
	<cm:output section="header" />
</flow:ifEnabled>

<!-- END CommonJSToInclude.jspf -->

El archivo CommonJSToInclude.jspf es un archivo especial incluido en el elemento <head> de cada página de tienda de inicio. Su finalidad es incluir funciones y variables globales en todas las páginas de tienda de inicio. Al incluir la etiqueta <cm:output /> en este archivo especial, los fragmentos de código JavaScript IBM Digital Analytics definidos en el elemento <output> del archivo biConfig.xml se grabarán en el elemento <head> de cada página de la tienda.

La etiqueta de salida y el programa de utilidad de etiquetado automático

Si tiene una tienda personalizada en lugar de una tienda basada en Madisons o Elite, puede utilizar el programa de utilidad de etiquetado automático para añadir automáticamente la etiqueta <cm:output /> al elemento <head> de todas las páginas de la tienda, al mismo tiempo que el programa de utilidad añade la etiqueta <cm:pageview />. De este modo, no es necesario añadir manualmente la etiqueta <cm:output /> a cada página.

El elemento <output> comparado con el elemento <instrumentation> en el archivo biConfig.xml

La mayoría de los archivos biConfig.xml implementados antes de HCL Commerce Versión 7 Feature Pack 3 tienen un elemento <instrumentation> que contiene fragmentos de código JavaScript IBM Digital Analytics parecidos al elemento <output>. A continuación se proporciona un ejemplo:
...
<instrumentation>
    <![CDATA[
    <script language="JavaScript1.1" type="text/JavaScript" src="//libs.coremetrics.com/eluminate.js"></script>
    <script language="JavaScript1.1" type="text/JavaScript">
    cmSetClientID("12345",true,"data.coremetrics.com","localhost");
    </script>]]>
</instrumentation>

...
Cuando se presenta una página de la tienda, los contenidos del elemento de <instrumentation> se graban encima de la etiqueta </body> cerca del final de la página.

En los archivos de biConfig.xml Feature Pack 3 o posterior, se utiliza el elemento <output> en lugar del <instrumentation>. Esto significa que los fragmentos de código JavaScript IBM Digital Analytics ahora están grabados dentro del elemento <head> en lugar de cerca del final de la página. Determinadas aplicaciones de IBM Digital Analytics, tales como IBM Digital Analytics AdTarget, requieren que los fragmentos de código se graben cerca de la parte superior de la página.

La ventaja añadida del elemento <output> sobre el elemento <instrumentation> es darle el control sobre dónde se graban los fragmentos de código JavaScript; sin embargo, si utiliza el elemento <output>, las páginas de la tienda deben contener una etiqueta <cm:output /> correspondiente para marcar la ubicación donde grabar los fragmentos de JavaScript.

Razones para cambiar la implementación de etiquetas de salida predeterminadas

Existen varias razones para cambiar la implementación de etiquetas de salida predeterminadas:
  1. Es posible que desee grabar el código JavaScript de IBM Digital Analytics en una ubicación diferente en la página de la tienda, o grabar contenido adicional en la página. Para ello, puede cambiar la ubicación de la etiqueta <cm:output /> en las páginas de la tienda y cambiar el contenido dentro del elemento <output> del archivo biConfig.xml.
  2. Es posible que desee grabar varios fragmentos de código JavaScript de IBM Digital Analytics en ubicaciones distintas de la página de la tienda. Si es así, puede definir varias etiquetas de salida en el archivo biConfig.xml, cada uno con un valor de parámetro section distinto. A continuación se muestra un ejemplo que incluye la definición de etiqueta <output> predeterminada para section = "header" y una segunda definición de etiqueta <output> para section = "body":
    
    ...
    <store storeId = "10101" biprovider = "coremetrics" enabled = "true" debug = "true" 
          useHostedCMHLibraries = "true">
        <clientid>69999999</clientid>
        <output section = "header">
            <![CDATA[
            <script type="text/javascript" src="//libs.coremetrics.com/eluminate.js"></script> 
            <script type="text/javascript"> 
            cmSetupNormalization("krypto-_-krypto"); 
            // send data to production system 
            //cmSetClientID("99999999",true,"data.coremetrics.com","thesite.com"); 
            // send data to test system 
            cmSetClientID("69999999",false,"testdata.coremetrics.com","thesite.com"); 
            </script> 				
            ]]>
        </output>
    
        <output section = "body">
            <![CDATA[
            <script type="text/JavaScript">
            your_JavaScript_goes_here
            </script>
            ]]>
        </output>
    </store>
    ...

    A continuación, en las páginas de la tienda debe tener las siguientes etiquetas <cm:output /> en las ubicaciones adecuadas:

    <cm:output section="header" />
    
    <cm:output section="body" />
    
Los procedimientos siguientes proporcionan pasos detallados acerca de cómo cambiar la configuración de la etiqueta de salida.