Ir al contenido principal
Zenovay
Gratis10 minutosPrincipiante

Integración con WordPress

Añada Zenovay a WordPress: instalación del script, soporte para WooCommerce e integración con temas. Guía de integración para API.

wordpresswoocommerceplugincmsintegration
Última actualización:

Añada las analíticas de Zenovay a su sitio WordPress con una simple etiqueta de script.

Solo configuración manual. Zenovay no ofrece actualmente un plugin oficial de WordPress ni una extensión de WooCommerce. Las instrucciones a continuación muestran cómo añadir el seguimiento de Zenovay a un sitio WordPress usando el script de seguimiento estándar y fragmentos en header.php / functions.php (que funcionan de forma fiable). Las referencias más abajo a un «plugin», a una «integración con WooCommerce» o a un «seguimiento automático» describen lo que es posible con el código manual de este artículo, no un plugin instalable separado.

Instalación

Opción 1: Añadir al encabezado del tema (Recomendado)

Añada al header.php de su tema antes de </head>:

<script
  defer
  data-tracking-code="YOUR_TRACKING_CODE"
  src="https://api.zenovay.com/z.js">
</script>

Opción 2: Añadir mediante functions.php

Añada al functions.php de su tema:

function zenovay_tracking_script() {
    ?>
    <script
      defer
      data-tracking-code="YOUR_TRACKING_CODE"
      src="https://api.zenovay.com/z.js">
    </script>
    <?php
}
add_action('wp_head', 'zenovay_tracking_script');

Integración con WooCommerce

Seguimiento de WooCommerce (configuración manual)

Con los fragmentos a continuación:

  • Vistas de producto rastreadas automáticamente
  • Eventos de añadir al carrito
  • Pasos del checkout
  • Completación de compra
  • Atribución de ingresos

Configuración manual de WooCommerce

Añada al functions.php de su tema:

// Rastrear vistas de producto
add_action('woocommerce_after_single_product', 'zenovay_track_product_view');
function zenovay_track_product_view() {
    global $product;
    ?>
    <script>
    if (window.zenovay) {
        zenovay('track', 'view_product', {
            product_id: '<?php echo esc_js($product->get_id()); ?>',
            product_name: '<?php echo esc_js($product->get_name()); ?>',
            price: <?php echo $product->get_price(); ?>,
            category: '<?php echo esc_js(wp_get_post_terms($product->get_id(), 'product_cat')[0]->name ?? ''); ?>'
        });
    }
    </script>
    <?php
}

// Rastrear añadir al carrito
add_action('woocommerce_add_to_cart', 'zenovay_track_add_to_cart', 10, 6);
function zenovay_track_add_to_cart($cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data) {
    $product = wc_get_product($product_id);
    ?>
    <script>
    if (window.zenovay) {
        zenovay('track', 'add_to_cart', {
            product_id: '<?php echo esc_js($product_id); ?>',
            product_name: '<?php echo esc_js($product->get_name()); ?>',
            price: <?php echo $product->get_price(); ?>,
            quantity: <?php echo $quantity; ?>
        });
    }
    </script>
    <?php
}

// Rastrear compra
add_action('woocommerce_thankyou', 'zenovay_track_purchase');
function zenovay_track_purchase($order_id) {
    if (!$order_id) return;

    $order = wc_get_order($order_id);

    // Verificar si ya fue rastreado
    if ($order->get_meta('_zenovay_tracked')) return;

    $items = array();
    foreach ($order->get_items() as $item) {
        $product = $item->get_product();
        $items[] = array(
            'id' => $product->get_id(),
            'name' => $item->get_name(),
            'price' => $product->get_price(),
            'quantity' => $item->get_quantity()
        );
    }
    ?>
    <script>
    if (window.zenovay) {
        zenovay('revenue', <?php echo $order->get_total(); ?>, '<?php echo esc_js($order->get_currency()); ?>', {
            order_id: '<?php echo esc_js($order_id); ?>',
            items: <?php echo json_encode($items); ?>
        });
    }
    </script>
    <?php

    $order->update_meta_data('_zenovay_tracked', true);
    $order->save();
}

Seguimiento de objetivos

Objetivos de envío de formularios

Rastrear Contact Form 7:

add_action('wp_footer', 'zenovay_cf7_tracking');
function zenovay_cf7_tracking() {
    ?>
    <script>
    document.addEventListener('wpcf7mailsent', function(event) {
        if (window.zenovay) {
            zenovay('goal', 'contact_form', {
                form_id: event.detail.contactFormId
            });
        }
    });
    </script>
    <?php
}

Rastrear Gravity Forms:

add_action('gform_after_submission', 'zenovay_gf_tracking', 10, 2);
function zenovay_gf_tracking($entry, $form) {
    ?>
    <script>
    if (window.zenovay) {
        zenovay('goal', 'form_submission', {
            form_id: '<?php echo $form['id']; ?>',
            form_name: '<?php echo esc_js($form['title']); ?>'
        });
    }
    </script>
    <?php
}

Suscripciones al boletín

Rastrear MailChimp para WordPress:

add_action('mc4wp_form_success', 'zenovay_mc4wp_tracking');
function zenovay_mc4wp_tracking() {
    ?>
    <script>
    if (window.zenovay) {
        zenovay('goal', 'newsletter_signup');
    }
    </script>
    <?php
}

Identificación de usuarios

Rastrear usuarios con sesión iniciada

add_action('wp_footer', 'zenovay_identify_user');
function zenovay_identify_user() {
    if (!is_user_logged_in()) return;

    $user = wp_get_current_user();
    ?>
    <script>
    if (window.zenovay) {
        zenovay('identify', '<?php echo esc_js($user->ID); ?>', {
            email: '<?php echo esc_js($user->user_email); ?>',
            name: '<?php echo esc_js($user->display_name); ?>',
            role: '<?php echo esc_js($user->roles[0]); ?>'
        });
    }
    </script>
    <?php
}

Excluir usuarios administradores

Excluir administradores mediante configuración

Configure su lista de roles a excluir (p. ej., mediante un plugin de gestión de roles o código personalizado):

  • Administrador
  • Editor

Mediante código

add_action('wp_head', 'zenovay_conditional_tracking');
function zenovay_conditional_tracking() {
    // No rastrear administradores
    if (current_user_can('manage_options')) {
        return;
    }
    ?>
    <script
      defer
      data-tracking-code="YOUR_TRACKING_CODE"
      src="https://api.zenovay.com/z.js">
    </script>
    <?php
}

Soporte para Multisitio

En una red multisitio de WordPress, cada sitio es una propiedad separada en Zenovay, por lo que cada uno necesita su propio código de seguimiento. Cree un sitio web separado en Zenovay para cada sitio en la red, luego coloque el código de seguimiento correspondiente por sitio.

Configuración por sitio

Si añade el fragmento desde un complemento mu-network activado (o un tema compartido en la red), asigne cada ID de blog a su propio código de seguimiento:

add_action('wp_head', 'zenovay_multisite_tracking');
function zenovay_multisite_tracking() {
    $codes = array(
        1 => 'TRACKING_CODE_FOR_SITE_1',
        2 => 'TRACKING_CODE_FOR_SITE_2',
        // Añada una entrada por ID de blog
    );
    $blog_id = get_current_blog_id();
    if (empty($codes[$blog_id])) {
        return;
    }
    ?>
    <script
      defer
      data-tracking-code="<?php echo esc_attr($codes[$blog_id]); ?>"
      src="https://api.zenovay.com/z.js">
    </script>
    <?php
}

Eventos personalizados

Seguimiento de clics en botones

<button onclick="zenovay('track', 'cta_click', {button: 'hero'})">
  Comenzar
</button>

Profundidad de desplazamiento

add_action('wp_footer', 'zenovay_scroll_tracking');
function zenovay_scroll_tracking() {
    ?>
    <script>
    let maxScroll = 0;
    window.addEventListener('scroll', function() {
        const scrollPercent = Math.round(
            (window.scrollY / (document.body.scrollHeight - window.innerHeight)) * 100
        );
        if (scrollPercent > maxScroll && scrollPercent % 25 === 0) {
            maxScroll = scrollPercent;
            if (window.zenovay) {
                zenovay('track', 'scroll_depth', { depth: scrollPercent });
            }
        }
    });
    </script>
    <?php
}

Compatibilidad con caché

Plugins de caché populares

Funciona con:

  • WP Super Cache
  • W3 Total Cache
  • WP Rocket
  • LiteSpeed Cache
  • Cloudflare

Exclusiones de caché

Si el seguimiento no funciona:

  1. Excluya el script de Zenovay de la optimización
  2. No lo combine ni difiera si hay problemas

Para WP Rocket:

add_filter('rocket_exclude_js', function($excluded) {
    $excluded[] = 'api.zenovay.com';
    return $excluded;
});

Resolución de problemas

El seguimiento no funciona

Verifique:

  • El script de seguimiento está presente en su tema (header.php o functions.php)
  • El valor data-tracking-code coincide con el código de seguimiento de su sitio web en Zenovay
  • No está excluido por su propio código de exclusión de roles
  • La consola del navegador para errores de script o de red

WooCommerce no rastrea

Confirme:

  • Los fragmentos de WooCommerce están añadidos al functions.php de su tema
  • La página de agradecimiento (pedido recibido) se carga correctamente
  • El script no está bloqueado ni eliminado por un plugin de caché

Conflictos con otros plugins

Si hay conflictos:

  • Desactive otros plugins de analítica
  • Compruebe si hay errores de JavaScript
  • Pruebe con el tema predeterminado

Compatibilidad con constructores de páginas

Funciona con:

  • Elementor
  • Divi
  • Beaver Builder
  • Gutenberg
  • WPBakery

Rendimiento

Carga del script

El script de Zenovay:

  • Se carga de forma asíncrona (defer)
  • Pesa menos de 5 KB
  • No bloquea el renderizado
  • Se entrega a través de CDN

Consejos de optimización

  • No duplique el script
  • Habilite el caché

Siguientes pasos

¿Fue útil este artículo?