Aller au contenu principal
Zenovay
Gratuit10 minutesDébutant

Intégration WordPress

Ajoutez Zenovay à WordPress - installation du plugin, support WooCommerce et intégration avec le thème. Guide complet d'intégration API.

wordpresswoocommerceplugincmsintegration
Dernière mise à jour :

Ajoutez les analytics Zenovay à votre site WordPress avec un simple tag script.

Configuration manuelle uniquement. Zenovay ne fournit pas actuellement de plugin WordPress officiel ni d'extension WooCommerce. Les instructions ci-dessous expliquent comment ajouter le suivi Zenovay à un site WordPress en utilisant le script de suivi standard et des extraits dans header.php / functions.php (cela fonctionne de manière fiable). Les références ci-dessous à un « plugin », à une « intégration WooCommerce » ou à un « suivi automatique » décrivent ce qui est possible avec le code manuel de cet article, et non un plugin installable distinct.

Installation

Option 1 : Ajouter dans l'en-tête du thème (recommandée)

Ajoutez dans le fichier header.php de votre thème avant </head> :

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

Option 2 : Ajouter via functions.php

Ajoutez dans le fichier functions.php de votre thème :

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');

Intégration WooCommerce

Suivi WooCommerce (configuration manuelle)

Avec les extraits ci-dessous :

  • Vues de produit suivies automatiquement
  • Événements d'ajout au panier
  • Étapes du paiement
  • Achat complété
  • Attribution des revenus

Configuration WooCommerce manuelle

Ajoutez dans le fichier functions.php de votre thème :

// Suivre les vues de produit
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
}

// Suivre l'ajout au panier
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
}

// Suivre l'achat
add_action('woocommerce_thankyou', 'zenovay_track_purchase');
function zenovay_track_purchase($order_id) {
    if (!$order_id) return;

    $order = wc_get_order($order_id);

    // Vérifier si déjà suivi
    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();
}

Suivi des objectifs

Soumissions de formulaires

Suivre 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
}

Suivre 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
}

Inscriptions à la newsletter

Suivre MailChimp pour WordPress :

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

Identification des utilisateurs

Suivre les utilisateurs connectés

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
}

Exclure les administrateurs

Exclusion des administrateurs via la configuration

Configurez votre liste d'exclusion de rôles (par exemple via votre plugin de gestion des rôles ou du code personnalisé) :

  • Administrator
  • Editor

Via le code

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

Support Multisite

Sur un réseau multisite WordPress, chaque site est une propriété distincte dans Zenovay. Par conséquent, chaque site a besoin de son propre code de suivi. Créez un site distinct dans Zenovay pour chaque site du réseau, puis affichez le code de suivi correspondant par site.

Configuration par site

Si vous ajoutez l'extrait à partir d'un plugin mu-network activé (ou d'un thème partagé sur le réseau), mappez chaque ID de blog à son propre code de suivi :

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',
        // Ajoutez une entrée par 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
}

Événements personnalisés

Suivi des clics sur les boutons

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

Profondeur de défilement

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
}

Compatibilité avec le cache

Plugins de cache populaires

Compatible avec :

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

Exclusions pour le cache

Si le suivi ne fonctionne pas :

  1. Excluez le script Zenovay de l'optimisation
  2. N'utilisez pas la combinaison/différé en cas de problèmes

Pour WP Rocket :

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

Dépannage

Le suivi ne fonctionne pas

Vérifiez :

  • Le script de suivi est présent dans votre thème (header.php ou functions.php)
  • La valeur data-tracking-code correspond au code de suivi du site web dans Zenovay
  • Vous n'êtes pas exclu par votre propre code d'exclusion de rôles
  • La console du navigateur pour les erreurs de script ou de réseau

WooCommerce ne suit pas

Vérifiez :

  • Les extraits WooCommerce sont ajoutés au functions.php de votre thème
  • La page de remerciement (commande reçue) se charge correctement
  • Le script n'est pas bloqué ou supprimé par un plugin de cache

Conflits avec d'autres plugins

En cas de conflits :

  • Désactivez les autres plugins d'analytics
  • Vérifiez les erreurs JavaScript
  • Testez avec le thème par défaut

Compatibilité avec les constructeurs de pages

Compatible avec :

  • Elementor
  • Divi
  • Beaver Builder
  • Gutenberg
  • WPBakery

Performance

Chargement du script

Le script Zenovay :

  • Se charge de manière asynchrone (defer)
  • Fait moins de 5 Ko
  • Ne bloque pas le rendu
  • Distribué via CDN

Conseils d'optimisation

  • Ne dupliquez pas le script
  • Activez la mise en cache

Prochaines étapes

Cet article vous a-t-il aidé ?