Modificaciones en feed de Google Shopping para remarketing dinámico con prestashop

Publicado el 07 enero 2014 por Jesusredondoiva

Esta semana me ha tocado preparar el etiquetado de una web para realizar remarketing dinámico con la cuenta de Merchant Center de un ecommerce montado en prestashop, y me he encontrado con un problema que he podido superar con un poco de investigación.

Gracias a la aportación de este post de la comunidad de Google Adwords, resulta sencillo modificar el codigo de remarketing por defecto que te bajas de adwords, este sería el código por defecto de la etiqueta de remarketing:

<!-- Google Code para etiquetas de remarketing -->
<!-------------------------------------------------- Es posible que las etiquetas de remarketing todavía no estén asociadas a la información de identificación personal o que estén en páginas relacionadas con las categorías delicadas. Para obtener más información e instrucciones sobre cómo configurar la etiqueta, consulte http://google.com/ads/remarketingsetup. --------------------------------------------------->
<script type="text/javascript">// <![CDATA[
  var google_tag_params = { ecomm_prodid: 'REPLACE_WITH_VALUE', ecomm_pagetype: 'REPLACE_WITH_VALUE', ecomm_totalvalue: 'REPLACE_WITH_VALUE', };
// ]]></script>
<script type="text/javascript">// <![CDATA[
/* < ![CDATA[ */ var google_conversion_id = xxxxxxxxxx; var google_custom_params = window.google_tag_params; var google_remarketing_only = true; /* ]]> */
// ]]></script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">// <![CDATA[

// ]]></script></pre>
<noscript>
<div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/xxxxxxxxxx/?value=0&guid=ON&script=0"/></div>
</noscript>

Lo que se trata ahora, es de modificar de forma dinámica los parámetros “prodid, pagetype y totalvalue”, para que en cada url que nos encontremos tomen el valor de la ficha de producto y esté en consonancia con el feed de datos de nuestro Google Merchant Center. Notar que donde aparece “xxxxxxxxxx” hemos de introducir nuestra ID de Adwords. Según el post que habiamos visto antes el código que hemos de introducir es el siguiente:

<!-- Google Code para etiquetas de remarketing -->
<!------------------------------------------------ -- Es posible que las etiquetas de remarketing todavía no estén asociadas a la información de identificación personal o que estén en páginas relacionadas con las categorías delicadas. Para obtener más información e instrucciones sobre cómo configurar la etiqueta, consulte http://google.com/ads/remarketingsetup. --------------------------------------------------->
<script type="text/javascript">// <![CDATA[
var google_tag_params = {
            {if $page_name == 'index'}
                        ecomm_pagetype: 'home'
            {elseif $page_name == 'search'}
                        ecomm_pagetype: 'searchresults'
            {elseif $page_name == 'category'}
                        ecomm_pagetype: 'category'
            {elseif $page_name == 'order'}
                        ecomm_pagetype: 'cart'
            {elseif $page_name == 'order-confirmation'}
                        ecomm_pagetype: 'purchase'
            {elseif $page_name == 'product'}
                        ecomm_pagetype: 'product',
                        ecomm_prodid: '{$product->id|intval}',
                        ecomm_totalvalue: '{$product->getPrice(true, $smarty.const.NULL, $priceDisplayPrecision)}'
            {else}
                        ecomm_pagetype: 'other'
            {/if}
            };
// ]]></script>
<script type="text/javascript">// <![CDATA[
/* <![CDATA[ */ var google_conversion_id = xxxxxxxxx; var google_custom_params = window.google_tag_params; var google_remarketing_only = true; /* ]]> */
// ]]></script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">// <![CDATA[

// ]]></script></pre>
<noscript>
<div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/xxxxxxxxx/?value=0&guid=ON&script=0"/></div>
</noscript>
<pre>

Este código genera de forma dinámica la etiqueta correcta para cada url. En mi caso, la tienda en la que estaba implementado el etiquetado, tenía instalado un plugin de prestashop, como este http://www.igwane.com/license y que genera el feed xml para google shopping, el problema es que dicho plugin introduce en la ID del producto una etiqueta de idioma “numeroid-es”con el siguiente código en el fichero googleshopping.php, con lo cual el ID de producto en nuestro merchant center no va a coincidir con el ID de producto que genera nuestra etiqueta de remarketing. Por ejemplo nuestro producto 123456, será en el merchant center 123456-es, tendremos que la etiqueta genera el valor “123456″ para el ID de producto en el merchant center “123456-es” y por lo tanto la etiqueta en su parametro ecomm_prodid no resultará valida.

$xml_googleshopping .= '' . $product['id_product'] .'-' . $lang['iso_code'] . '' . "\n";

Para solucionar el problema basta con buscar esta linea en el código del archivo php del módulo y eliminar la cadena.

'-' . $lang['iso_code'] .

Luego tendremos que renovar nuestro feed de google shopping en el merchant center, y si tenemos instalada la extensión “Google Tag Assistant”, podremos comprobar que nuestra etiqueta funciona correctamente en cada uno de los productos. Como en este ejemplo: