Infraestructura de la lista de clasificación para acciones de marketing

La infraestructura de la lista de clasificación para acciones de marketing permite realizar un seguimiento de las acciones del cliente en el escaparate. Por ejemplo, de forma predeterminada, HCL Commerce realiza un seguimiento del número de veces que se compran los productos y las categorías que se visualizan.

Plantillas de actividad

Se han añadido cuatro plantillas de actividad nuevas al diálogo Nueva actividad a partir de una plantilla para dar soporte a la infraestructura de lista de clasificación para acciones de marketing:
  1. Mostrar los más vendidos
  2. Mostrar los más visitados
  3. Mostrar productos vistos recientemente
  4. Mostrar categorías vistas recientemente

Para obtener más información, consulte Creación de una actividad web.

Mandatos de tarea de elementos de campaña y parámetros de plantilla

Cada desencadenante, destino y acción tiene un mandato de tarea asociado denominado mandato de tarea de elemento de campaña. El mandato de tarea realiza el trabajo asociado al elemento de campaña. La definición de plantilla de elemento de campaña debe especificar el mandato de tarea a utilizar.

El método validateParameters valida los parámetros del elemento de campaña cuando se activa la actividad de marketing. Valida que el usuario de empresa ha establecido todos los pares nombre-valor necesarios en la interfaz de usuario y puede devolver mensajes de error al usuario de empresa. Puede utilizar otros métodos en el método validateParameters para ayudar a validar el elemento de campaña, por ejemplo, validateCategory o validateProduct.

Por ejemplo, si amplía DisplayProductRankingActionTaskCmdImpl, se invoca el método validateCategory de DisplayProductRankingActionTaskCmdImpl.validateParameters para comprobar que objectGroupId es una categoría válida.

Para obtener más información, consulte Mandatos de tarea de elementos de campaña.

A continuación se indican los pares especiales nombre-valor de elemento que pueden definirse para especificar que un elemento de campaña debe procesare mediante el trabajo planificado SendMarketingTriggers:
repeatSchedule
Indica que el elemento de campaña debe procesarse mediante el trabajo planificado SendMarketingTriggers. El método forwardTriggersForProcessing se invocará en el mandato de tarea de elementos de campaña. El valor runDaily establece que el procesamiento debe tener lugar cada día. Un valor de runOnce establece que el procesamiento debe tener lugar la primera vez que se ejecuta el trabajo planificado SendMarketingTriggers después de que la actividad pase a ser activa y que la hora actual sea posterior a la fecha de inicio de la actividad.
rankingBasedOnOrders
Indica que este elemento de campaña es para una lista de más vendidos, y que los datos del elemento de campaña deben utilizares cuando se ha realizado un pedido para crear las entradas apropiadas en la tabla de base de datos DMRANKINGSTAT.

Para obtener más información, consulte Parámetros de plantilla de elementos de campaña.

Nuevas acciones enviadas conManagement Center

A continuación se indican las acciones entregadas con el Management Center para dar soporte a la infraestructura de lista de clasificación para las acciones de marketing:
Nombre de acción en Management Center Nombre de plantilla de elemento de campaña Mandato de tarea de elemento de campaña Nombre de mandato de coincidencia en la regla de comportamiento
Mostrar los más vendidos ranking_MostSold DisplayProductRankingActionTaskCmd ninguna
Mostrar los más visitados ranking_MostBrowsed DisplayProductRankingActionTaskCmd ProductDisplay

Para obtener más información, consulte Lista de plantillas de elementos de campaña y mandatos de tarea proporcionados.

Políticas de negocio y listas de clasificación

Tanto la acción Los más vendidos como la acción Los más visitados utilizan una política de negocio que evalúa las estadísticas recopiladas y genera las listas de clasificación. También es posible personalizar y crear una nueva lista de clasificación para otros proyectos de negocio, los 10 términos de búsqueda más buscados. Una opción es que la personalización llene la tabla DMRANKINGSTAT con las estadísticas apropiadas de los sucesos de búsqueda y utilice la política de clasificación proporcionada para evaluar las estadísticas. No obstante, si la política de clasificación proporcionada no puede aplicarse al escenario de personalización, puede crearse una política de negocio personalizada o las políticas proporcionadas pueden configurarse con otros parámetros.

Se utiliza una política de negocio para definir cómo generar clasificaciones. Un tipo de clasificación se relaciona con una política de clasificación que contiene dos mandatos BusinessPolicyCommands. Un mandato es para limpiar y resumir los datos de estadísticas de clasificación. El objetivo de este mandato es eliminar los datos obsoletos que ya no son necesarios y resumir los datos en menos de dos filas de base de datos, ayudando a controlar el tamaño de la tabla de estadísticas DMRANKINGSTAT, El mandato cleanup debe implementar la interfaz CleanupRankingPolicyCmd. El otro mandato es para evaluar los datos estadísticos y generar la lista de clasificación. El objetivo de este mandato es analizarlas estadísticas existentes e completar la tabla de base de datos DMRANKINGITEM. El mandato generate debe implementar la interfaz GenerateRankingPolicyCmd.

Cada plantilla de elementos de campaña de clasificación debe definir qué política utiliza en el argumento policyId en la definición de implementación de la plantilla de elementos de campaña.

Para añadir una nueva política de clasificación:
  1. Desarrolle un mandato de política de generación de una clasificación.
    El proceso sobre cómo generar una lista de clasificación se implementa como mandato BusinessPolicyCommand. El mandato de política de negocio debe ampliar la clase AbstractGenerateRankingPolicyCommandImpl que implementa la interfaz GenerateRankingPolicyCommand. Deben proporcionarse estos métodos:
    preGenerate()
    Configura los parámetros del mandato.
    generate()
    Genera la lista de clasificación.
    postGenerate()
    Ajusta la lista de clasificación generada.
    El diagrama siguiente ilustra el proceso: Un mandato de política de generación de una clasificación
  2. Desarrolle un mandato de política de limpieza de datos de clasificación.
    El proceso sobre cómo limpiar las estadísticas de clasificación se implementa como un mandato BusinessPolicyCommand. El mandato de política de negocio debe ampliar la clase AbstractCleanupRankingPolicyCommandImpl que implementa la interfaz CleanupRankingPolicyCommand. Deben proporcionarse estos métodos:
    cleanup()
    Limpia los datos obsoletos y resume los datos existentes para reducir el número de entradas de la tabla de estadísticas.
    El diagrama siguiente ilustra el proceso: Un mandato de política de limpieza de datos de clasificación
  3. Registre la política de clasificación.
    La nueva política de negocio debe ser de tipo Ranking. El parámetro para cada política se define en properties como lista de pares nombre-valor separados por un símbolo ampersand &. El código siguiente muestra un ejemplo de definición de una política:
    
    <policy policy_id="10001" policyname="SalesRankingPolicy" policytype_id="Ranking" storeent_id="10010" properties="ObjectType=0" />
    
    Los mandatos generate y cleanup también deben configurarse. El código siguiente muestra un ejemplo de definición de mandato de política:
    
    <policycmd policy_id="10001" businesscmdclass="MyGenerateRankingPolicyCmdImpl" />
    <policycmd policy_id="10001" businesscmdclass="MyCleanupRankingPolicyCmdImpl" />
    
Las tareas de personalización siguientes pueden reutilizarse para proporcionar clasificaciones para otros objetos de negocio:
  • Utilice los servicios de marketing para detectar si se accede al objeto o se visita. Esta detección se realiza definiendo la regla de comportamiento apropiada para el nuevo elemento de campaña. Para obtener más información, consulte Definición de norma de comportamiento.
  • Utilice los servicios de marketing para registrar las estadísticas. Esto se logra colocando el policyId apropiado en los parámetros de elementos de campaña:
    
    <Argument name="policyId" value="XXX"/>
    
    Los parámetros de política definen un nuevo ObjectType para el nuevo tipo de objeto de negocio que se clasifica:
    
    properties="ObjectType=X"
    
    Donde 0= más vendidos y 1= más visitados.
  • Por lo general, utilice los mandatos de política existentes:
    • CleanupProductRankingPolicyCmdImpl
    • GenerateProductRankingPolicyCmdImpl

Mostrar los recuentos totales en listas de clasificación

Para visualizar el recuento real que está asociado con cada producto en la lista de clasificación, es decir, el número de veces que se ha visitado un producto, o el número de veces que se ha comprado un producto, en el periodo de tiempo especificado, añada el fragmento de código siguiente al fragmento del archivo JSP de la zona de e-Marketing para que cada entrada muestre el valor asociado:

${marketingSpotData.properties['amount']}

Mostrar actualizaciones para los más vendidos

Cuando se crean actividades web que incluyen los más vendidos, se analizan los datos de pedido y la lista de los más vendidos se actualiza una vez al día, donde la hora de actualización se puede configurar en el archivo wc-admin-component.xml:

<_config:property name="dailyScheduledJobTimeForTriggers" value="hh:mm"/>

Donde:
  • hh = dos dígitos que representan la hora (00 - 23)
  • mm = dos dígitos que representan los minutos (00 - 59)

A la hora configurada, la lista de los más vendidos se actualiza para las categorías especificadas en cualquier acción que afecte a los artículos más vendidos para todas las actividades activas en ese momento. Este valor se debe configurar en las horas de menor actividad del sitio.

Estrategia de almacenamiento en caché para los más vendidos

Dado que la lista de los más vendidos sólo se actualiza una vez al día, es muy recomendable que el fragmento de código del archivo JSP de la zona de e-Marketing que muestra la lista de los más vendidos se almacene en la memoria caché utilizando el almacenamiento dinámico en memoria caché.

Por ejemplo, un ID de dependencia, RankingEMarketingSpot se emite cuando se llama al mandato InvalidateRankingServletCmdImpl. Este ID hace que el archivo JSP se renueve cuando se actualiza la lista. El mandato invalidate se invoca una vez al día, después de que se actualicen las listas de los más vendidos:

<cache-entry>
    <class>servlet</class>
    <name>/Madisons/Snippets/Marketing/RightSidebarRankingESpotDisplay.jsp</name>
    <property name="do-not-consume">true</property>
    <property name="save-attributes">false</property>
    <cache-id>
     <component id="emsName" type="parameter">
       <required>true</required>
     </component>
     <component id="categoryId" type="parameter">
<required>true</required>
</component>           
         <component id="DC_storeId" type="attribute">
<required>true</required>
</component>
<component id="catalogId" type="parameter">
<required>true</required>
</component>
<component id="categoryId" type="parameter">
<required>true</required>
</component>
<component id="pageView" type="parameter">
<required>false</required>
</component>
<component id="currentPage" type="parameter">
<required>false</required>
</component>
<component id="DC_lang" type="attribute">
<required>true</required>
</component>
<component id="DC_curr" type="attribute">
<required>true</required>
</component>
<component id="DC_cont" type="attribute">
<required>true</required>
</component>
<component id="DC_mg" type="attribute">
<required>true</required>
</component>
    </cache-id>

<dependency-id>RankingEMarketingSpot</dependency-id>
<dependency-id>dialogMarketingJsp</dependency-id>

</cache-entry>


<cache-entry>
 <class>command</class>
 <name>com.ibm.commerce.marketing.commands.ranking.InvalidateRankingServletCmdImpl</name>
 <invalidation>RankingEMarketingSpot</invalidation>
</cache-entry>

Para obtener más información, consulte Almacenamiento en memoria caché dinámica.

Clasificaciones de sitios ampliados

Si una actividad que contiene la acción de los más vendidos se define en una tienda con elementos de escaparate, se crea una lista distinta de los más vendidos para cada tienda de sitio ampliado que haga referencia a la tienda con elementos de escaparate. Es decir, la lista de los más vendidos de cada escaparate contiene los datos de pedido que corresponden al escaparate para compilar las clasificaciones.

Configuración de clasificaciones de los más vendidos

Si se utiliza la acción de los más vendidos, debe habilitarse ExperimentEvaluationEventListener:

<component compClassName="com.ibm.commerce.marketingcenter.events.runtime.ExperimentEvaluationECEventListenerImpl"
      enable="true" name="Experiment Evaluation Event Listener">
      <property display="false">
        <start enabled="true"/>
      </property>
    </component>

Para crear la lista de los más vendidos, las estadísticas de los sucesos se registran en la tabla de base de datos DMRANKINGSTAT. Estos sucesos se registran primero en memoria y luego se mantienen en una inserción de lote para lograr un rendimiento óptimo. El tamaño de los datos que se registran en memoria se controla mediante el parámetro userBehaviorBatchUpdateCacheSize del archivo wc-admin-component.xml.

Para obtener más información, consulte Archivo de configuración del componente de promociones (wc-admin-component.xml).

Las tablas de base de datos siguientes dan soporte a esta característica:
DMRANKINGSTAT
Esta tabla almacena la información recopilada que se utiliza para generar una lista de clasificación. Por ejemplo, cuando se compra o visita un producto relevante, los datos se registran en esta tabla.
DMRANKINGITEM
Esta tabla almacena la información de clasificación calculada. Por ejemplo, los 10 productos más vendidos de una categoría o los 5 productos más visitados de una categoría. Cada elemento de la clasificación de un grupo de clasificación contiene una secuencia.

Configuración de clasificaciones de los más visitados

Las listas de clasificación de los más visitados muestran los productos más visitados de una categoría.

Si se utiliza la acción de los más visitados, debe habilitarse SensorEventListener:

<component compClassName="com.ibm.commerce.marketing.dialog.trigger.SensorEventListener"
      enable="true" name="SensorEventListener">
      <property display="false">
        <start enabled="true"/>
      </property>
    </component>