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 :
- Excluez le script Zenovay de l'optimisation
- 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.phpoufunctions.php) - La valeur
data-tracking-codecorrespond 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.phpde 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