Guide d'intégration Tag Manager

Analysez vos paiements dans vos propres outils analytics

rgive pousse automatiquement vos données de paiement vers Google Tag Manager (GTM) ou Matomo Tag Manager (MTM). Ce guide vous explique comment les brancher, les configurer et les exploiter dans vos outils analytics — sans écrire une seule ligne de code.

Ce dont vous avez besoin avant de commencer
Un compte GTM ou MTM
Avec accès en édition à votre container. Pas encore de compte ? GTM est gratuit sur tagmanager.google.com.
Accès au back-office rgive
Niveau administrateur pour accéder aux Paramètres du site.
Environ 30 minutes
Pour une première configuration complète. La connexion de base prend moins de 5 minutes.
Une CMP active sur votre site
Obligatoire légalement (RGPD). Votre solution de gestion du consentement doit être en place avant de publier votre container GTM ou MTM.
Ce que vous saurez faire à la fin de ce guide
Connecter GTM ou MTM
en quelques clics depuis votre back-office rgive
Comprendre les événements natifs — paiement et mobilisation
et les configurer dans GTM ou MTM
Analyser les abandons
à chaque étape de votre formulaire de paiement
Suivre les signatures de vos campagnes de mobilisation
pétitions, manifestes et actions de plaidoyer
Bien utiliser les UTMs
pour tracer l'origine réelle de chaque paiement
Exporter votre configuration
GTM ou MTM en un clic, prête à importer
Répondre aux questions
de vos équipes sans solliciter le support rgive

Pas développeur ? Ce guide est fait pour vous. rgive ne permet pas d'injecter du code personnalisé — et c'est une bonne chose pour la sécurité de vos payeurs. GTM et MTM ont précisément été conçus pour que des équipes non-techniques puissent gérer le tracking de façon autonome, sans solliciter un développeur à chaque campagne.

Mise en place

Connecter votre outil de tracking

rgive s'intègre nativement avec Google Tag Manager (GTM) et Matomo Tag Manager (MTM). Il vous suffit de renseigner quelques champs dans votre back-office — aucune ligne de code à toucher.

1

Obligation légale — mettez en place une CMP

Avant de renseigner votre identifiant GTM ou MTM, assurez-vous d'avoir mis en place une solution de gestion du consentement (CMP) sur votre site. C'est un prérequis légal, pas une option.

Obligation légale — RGPDCNIL · ePrivacy
1GTM et MTM ne gèrent pas le consentement par eux-mêmes — ils exécutent les scripts dès leur chargement, sauf si une CMP leur indique d'attendre. Sans CMP configurée, GA4 ou Matomo se chargent avant que le visiteur ait accepté quoi que ce soit.
2C'est une violation directe du RGPD et des recommandations de la CNIL en vigueur depuis 2022. La CNIL a sanctionné des organisations utilisant Google Analytics sans consentement préalable — y compris des associations.
3Avant de publier votre container GTM ou MTM en production, vous devez avoir une CMP active et correctement configurée qui bloque le chargement des scripts tant que le visiteur n'a pas consenti.
Notre recommandation pour les associations
Sirdata propose une solution CMP gratuite pour les associations, sans limite de volume ni de durée. Elle est compatible avec Google Consent Mode v2 (GTM) et avec Matomo Tag Manager (MTM).
La configuration technique de votre CMP dépend de la solution choisie. Rapprochez-vous de votre agence ou prestataire technique pour la mise en place du Consent Mode v2 (GTM) ou de l'intégration Matomo (MTM).
2

Renseignez vos identifiants dans rgive

Rendez-vous dans Paramètres → Paramètres du site → Onglet Configuration → Bloc Analytics
Identifiant GTM*
GTM-XXXXXXX

Format GTM-XXXXXXX, disponible en haut à droite de votre espace de travail sur tagmanager.google.com.

Configuration proxy (avancé) : si votre organisation héberge un serveur GTM côté serveur (server-side tagging), renseignez l'URL de ce serveur dans le champ prévu à cet effet. Cette configuration améliore la conformité RGPD et contourne les bloqueurs de publicité. Laissez ce champ vide si vous n'êtes pas concerné.

URL Matomo Tag Manager
optionnel · si vous utilisez Matomo
https://cdn.matomo.cloud/instance.matomo.cloud/container_xxx.js

URL complète du script MTM. Disponible dans Matomo → Administration → Tag Manager → Installer.

GTM et MTM remplissent le même rôle — choisissez l'un ou l'autre. Voir GTM vs MTM ci-dessous pour choisir.

Ajoutez automatiquement des informations propres à votre organisation dans tous vos événements analytics — sans les reconfigurer dans chaque balise GTM ou MTM. Elles sont injectées une seule fois, au chargement du formulaire.

L'analogie : imaginez que chaque événement est une enveloppe envoyée à vos outils analytics. Les valeurs additionnelles, c'est tamponner automatiquement chaque enveloppe avec l'identifiant de votre entité — sans le faire à la main à chaque envoi.
Valeurs de tracking additionnelles
optionnel

Chaque ligne est une paire Clé (le nom que vous choisissez) + Valeur (son contenu). Ces données accompagnent tous vos événements automatiquement.

Clé
Valeur
entity
fondation_arc
Bon à savoir : le mode d'intégration (landing page, overlay, embed) est déjà tracké nativement via la variable integration — sans rien configurer ici. Les valeurs additionnelles sont utiles principalement pour les organisations qui gèrent plusieurs entités distinctes (causes abritées, sous-égide…) et veulent les distinguer dans leurs rapports.
Vous ne gérez qu'une seule entité ? Laissez ce champ vide. rgive envoie déjà tout ce qu'il faut pour analyser vos paiements.
Comprendre

GTM ou MTM, lequel choisir ?

rgive supporte les deux solutions. Voici les différences essentielles pour faire le bon choix selon vos contraintes et les valeurs de votre organisation.

Google Tag Manager
Gratuit · Propriétaire Google
  • Écosystème Google natif (GA4, Ads, Search Console…)
  • Interface très répandue, tutoriels abondants
  • Mode Aperçu (Preview) pour débugger en temps réel
  • Marketplace de templates communautaires
  • Option server-side tagging disponible
Communauté largeDonnées chez Google
Matomo Tag Manager
Open source · InnoCraft · auto-hébergeable
  • 100 % open source, code auditable publiquement
  • Données hébergées sur vos propres serveurs
  • RGPD natif — aucun partage avec des tiers
  • Intégré à l'écosystème Matomo Analytics
  • Idéal secteur public et associations exigeantes
Souveraineté donnéesRGPD by design
Important : GTM et MTM ne peuvent pas coexister sur le même formulaire rgive. Les événements, variables et structure dataLayer sont identiques dans les deux cas — ce guide s'applique donc pour les deux.
Je choisis GTM si…
Mon équipe utilise déjà Google Analytics 4 ou Google Ads, et je veux accéder à une large communauté et des ressources abondantes.
Je choisis MTM si…
La confidentialité des données de mes payeurs est prioritaire. Je veux héberger mes données sur mes propres serveurs, sans rien partager avec Google.

Rappel : quel que soit l'outil choisi, une CMP doit être active sur votre site avant de publier votre container en production. Voir la section Mise en place pour les détails.

Sécurité & architecture

Pourquoi rgive n'accepte pas de code personnalisé ?

rgive a fait le choix délibéré de ne permettre aucune injection de JavaScript, HTML ou CSS. Ce n'est pas une limitation — c'est une décision d'architecture qui protège vos payeurs et la pérennité de votre intégration.

Les formulaires de paiement traitent des données bancaires sensibles. Toute injection de code tiers dans ce contexte représente un vecteur d'attaque sérieux pour vos payeurs.
Injection de code malveillant
Un script externe mal sécurisé peut être altéré pour intercepter les numéros de carte bancaire du payeur — une attaque dite Magecart, fréquente sur les formulaires de paiement.
Effets de bord imprévus
Un snippet JavaScript peut modifier le comportement du formulaire, bloquer la soumission d'un paiement ou créer des conflits silencieux avec les mises à jour futures de rgive.
Dette technique
Chaque code ajouté doit être maintenu, testé et validé à chaque évolution de rgive. Sans gouvernance, cela crée du code mort que personne ne sait plus démêler.
Conformité PCI-DSS
Les formulaires de paiement sont soumis aux normes PCI-DSS. Des scripts non audités peuvent exposer votre organisation à des risques légaux.
La solution : GTM et MTM ont précisément été conçus pour injecter des scripts de façon gouvernée, auditée et réversible — sans toucher au code source de la plateforme. Vous bénéficiez de toute la flexibilité du tracking, avec toutes les garanties de sécurité. C'est exactement pourquoi rgive les supporte nativement.
Événements natifs

Les 3 événements du parcours payeur (paiement)

rgive pousse automatiquement ces événements dans le dataLayer à chaque étape clé du parcours. Vous n'avez pas à les déclencher manuellement — il vous suffit de créer les déclencheurs correspondants dans GTM ou MTM.

Les noms purchase, items, value, currency, transaction_id et generate_lead suivent la convention e-commerce de Google Analytics 4, reconnue nativement par la plupart des outils analytics. Cette documentation ne couvre pas la configuration de ces outils.

checkout

Déclenché à chaque chargement d'étape du formulaire de paiement : choix du montant, coordonnées, informations de paiement. La variable step indique l'étape en cours (amount, contact, payment, payment-details). C'est l'événement de référence pour suivre la progression du payeur dans le tunnel. L'étape payment-details correspond à l'écran de finalisation propre au moyen de paiement choisi (par exemple les instructions pour un chèque ou un virement). Elle n'apparaît pas pour tous les moyens de paiement.

Déclenché à chaque étape
Dans GTM / MTM : créez un déclencheur "Événement personnalisé" avec le nom exact checkout, puis associez-le à votre balise.
purchase

Déclenché quand un paiement est confirmé avec un paiement immédiat : carte bancaire, PayPal, Apple Pay, Google Pay, prélèvement SEPA. C'est l'événement de conversion principal. Un rechargement de la page de confirmation ne génère pas de second purchase : chaque transaction n'est comptée qu'une fois.

Déclenché par le backendtransaction_id requisDéclenché une seule fois
pledge

Déclenché quand un payeur fait une promesse de paiement à paiement différé : chèque envoyé par courrier ou virement bancaire à effectuer. Le prélèvement SEPA génère un événement purchase, pas un pledge. Le payload de pledge ne contient ni step ni conversion_url.

Événement customDéclenché par le backend
Rappel : purchase couvre tout paiement immédiat (CB, PayPal, SEPA…). pledge couvre uniquement les promesses à paiement différé (chèque, virement). Pour plus de détails, voir la FAQ.
Fin des doublons. Recharger la page de remerciement ne redéclenche plus l'événement purchase. Vos chiffres de paiements et de revenus dans vos outils analytics sont fiables sans traitement particulier.
Pour vérifier que vos événements arrivent bien, activez le mode Aperçu (Preview) dans GTM ou le débogueur de container dans MTM, puis naviguez sur votre formulaire de paiement. Vous verrez les trois événements apparaître en temps réel.
Variables

Toutes les variables disponibles

rgive enrichit chaque événement avec des variables décrivant précisément le paiement, la campagne et le payeur. Dans GTM ou MTM, créez une « Variable de couche de données » pour chaque propriété que vous souhaitez exploiter dans vos rapports.

Dans GTM : Variables → Nouvelle variable → Variable de couche de données. Renseignez le chemin exact de la colonne « Clé dataLayer » comme nom de variable. Les sous-variables items sont des propriétés imbriquées dans le tableau e-commerce — elles ne nécessitent pas de variables de couche de données séparées dans GTM.
VariableClé dataLayerTypeDescriptionExemple / ValeursÉvénements
campaign_idecommerce.campaign_idStringCode de la campagne tel que renseigné dans le back-office. Vide ("") si aucun code n'est renseigné.CAMP_123checkout, purchase, pledge
campaign_uuidecommerce.campaign_uuidStringIdentifiant technique de la campagne (6 premiers caractères de son UUID). Toujours renseigné, même sans code de campagne.0ebf97checkout, purchase, pledge
campaign_nameecommerce.campaign_nameStringNom de la campagneDon été 2025checkout, purchase, pledge
campaign_typeecommerce.campaign_typeStringType de campagnedonation·membership·subscription·paymentcheckout, purchase, pledge
campaign_media_codeecommerce.campaign_media_codeStringCode média de la campagne. Facultatif, saisi dans le back-office. Vide ("") si non renseigné.EMAIL_MAIcheckout, purchase, pledge
campaign_origin_codeecommerce.campaign_origin_codeStringCode origine de la campagne. Facultatif, saisi dans le back-office. Vide ("") si non renseigné.NEWSLETTERcheckout, purchase, pledge
campaign_assignment_codeecommerce.campaign_assignment_codeStringCode d'affiliation de la campagne. Facultatif, saisi dans le back-office. Vide ("") si non renseigné.FHcheckout, purchase, pledge
integrationecommerce.integrationStringMode d'intégration du formulairepage·overlay·embedcheckout, purchase, pledge
form_typeecommerce.form_typeStringFormat du formulaire de paiement3-step·expresscheckout, purchase, pledge
stepecommerce.stepStringÉtape actuelle du formulaire au moment de l'événementamount·contact·payment·payment-details·push-regular1checkout, purchase
firststepecommerce.firststepStringÉtape par laquelle le payeur est arrivé directement sur le formulaireamount·contact·paymentcheckout, purchase, pledge
donation_typeecommerce.donation_typeStringFréquence du paiementone-off·monthlycheckout, purchase, pledge
amount_typeecommerce.amount_typeStringMontant choisi dans la grille ou personnalisédefault·customcheckout, purchase, pledge
initial_amountecommerce.initial_amountFloatMontant initialement choisi avant le déclenchement éventuel du widget push don régulier. Absent du payload si le widget ne s'est pas déclenché ou si le payeur maintient le don ponctuel.23checkout, purchase, pledge
payment_methodecommerce.payment_methodStringMoyen de paiement utiliséCarte Bancaire·PayPal·Apple Pay·Google Pay·IBAN·Virement·chequepurchase, pledge
donor_emailecommerce.donor_emailStringEmail du payeur. Renseigné dès le premier checkout quand l'email est déjà connu (paramètre URL, ou session en cours après une signature de pétition par exemple), sinon complété à la confirmation. Donnée personnelle : vérifiez que vos outils de destination sont autorisés à la recevoir.contact@exemple.frcheckout, purchase, pledge
affiliationecommerce.affiliationStringNom de l'organisation collectrice. Utile quand une association crée des formulaires pour des entités abritées ou sous-égide — permet de distinguer l'entité concernée dans les rapports.NOM MARQUEcheckout, purchase, pledge
referrer_urlecommerce.referrer_urlStringURL de la page d'origine du visiteur avant son arrivée sur votre site : moteur de recherche, réseau social, autre site. Fiabilisée sur l'ensemble du parcours. Vide en accès direct.https://www.google.com/checkout, purchase, pledge
landing_urlecommerce.landing_urlStringURL complète de la page par laquelle le visiteur est entré sur votre site pour la visite en cours, paramètres UTM inclus. Permet une attribution marketing fiable même quand le formulaire n'est pas la première page vue.https://don.votreasso.fr/?utm_source=newsletter&utm_medium=email&utm_campaign=relance-doncheckout, purchase, pledge
conversion_urlecommerce.conversion_urlStringURL de la page sur laquelle le paiement a été confirmé. Absente sur les promesses de paiement (chèque, virement).https://don.votreasso.fr/campagne/mercipurchase
typeecommerce.typeStringType de don (dédicace, mémoire)dédicace·en mémoirepurchase, pledge
valueecommerce.valueFloatMontant du paiement23.0checkout, purchase, pledge
currencyecommerce.currencyStringDevise au format ISOEUR·USD·GBPcheckout, purchase, pledge
transaction_idecommerce.transaction_idStringIdentifiant unique du paiementa1b2c3d4-e5f6-...purchase, pledge
itemsecommerce.itemsArrayTableau des articles au format e-commerce standard. Contient les sous-variables item_id, item_name, affiliation, item_category, item_category2, price et quantity.voir sous-variables items ci-dessouscheckout, purchase, pledge
Sous-variables de l'objet items[ ] — propriétés du tableau e-commerce
items.item_idecommerce.items.0.item_idStringIdentifiant du formulaire ou de la cause (multi-cause à venir)FORM_456checkout, purchase, pledge
items.item_nameecommerce.items.0.item_nameStringNom du formulaire ou valeur technique de l'affectationNOM MARQUEcheckout, purchase, pledge
items.affiliationecommerce.items.0.affiliationStringNom de l'organisation collectrice au niveau du produit e-commerceNOM MARQUEcheckout, purchase, pledge
items.item_categoryecommerce.items.0.item_categoryStringFréquence du paiement au niveau du produit e-commerceone-off·monthlycheckout, purchase, pledge
items.item_category2ecommerce.items.0.item_category2StringMoyen de paiement au niveau du produit e-commerceCarte Bancaire·cheque·PayPalpurchase, pledge
items.priceecommerce.items.0.priceFloatValeur du paiement au niveau du produit e-commerce.23checkout, purchase, pledge
items.quantityecommerce.items.0.quantityFloatQuantité du produit e-commerce. Toujours égale à 1 sur rgive.1checkout, purchase, pledge
Les variables campaign_type, step, donation_type, payment_method et form_type ont des valeurs prédéfinies — respectez la casse exacte indiquée pour garantir la cohérence de vos rapports dans le temps.
Trois URL, trois questions. referrer_url répond à « d'où vient le visiteur ? », landing_url à « par où est-il entré, avec quels UTM ? », conversion_url à « sur quelle page a-t-il payé ? ». Ces trois valeurs reflètent la visite en cours — pas la toute première visite du navigateur.
Référence technique

Payloads complets du dataLayer

Voici des exemples de payloads que rgive pousse dans le dataLayer pour chaque événement. Les valeurs réelles dépendent de la configuration de votre formulaire.

{
  "event": "checkout",
  "ecommerce": {
    "affiliation": "NOM MARQUE",
    "campaign_id": "",
    "campaign_uuid": "0ebf97",
    "campaign_code": "",
    "campaign_media_code": "",
    "campaign_origin_code": "",
    "campaign_assignment_code": "",
    "campaign_name": "Amplifiez votre impact avec un don",
    "campaign_type": "donation",
    "integration": "page",
    "form_type": "3-step",
    "step": "amount",
    "donation_type": "one-off",
    "amount_type": "default",
    "currency": "EUR",
    "value": 20,
    "donor_email": "contact@exemple.fr",
    "referrer_url": "",
    "landing_url": "https://don.votreasso.fr/?utm_source=newsletter&utm_medium=email&utm_campaign=relance-don",
    "items": [
      {
        "item_id": "",
        "item_name": "Amplifiez votre impact avec un don",
        "affiliation": "NOM MARQUE",
        "item_category": "one-off",
        "price": 20,
        "quantity": 1
      }
    ]
  }
}
Analyse avancée

Suivre les abandons à chaque étape du formulaire

rgive utilise des fragments d'URL pour identifier chaque étape du tunnel de paiement. GTM peut détecter ces changements automatiquement et les exploiter dans vos balises — sans aucun développement supplémentaire de la part de rgive.

La méthode la plus directe : l'événement checkout étant poussé à chaque étape avec la variable step, vous pouvez construire votre entonnoir dans votre outil analytics directement dessus — checkout (step = amount) → checkout (step = contact) → checkout (step = payment) → purchase ou pledge. Aucune configuration supplémentaire n'est requise au-delà de la variable de couche de données step. La méthode par fragments d'URL ci-dessous reste une alternative valide, notamment pour recouper les deux mesures.
Les étapes et leurs fragments d'URL
Étape 1/votre-formulaire/Choix du montant — arrivée initiale
Étape 2/votre-formulaire/#contactSaisie des coordonnées
Étape 3/votre-formulaire/#paymentInformations de paiement
Étape 4/votre-formulaire/#payment-detailsFinalisation du moyen de paiement (chèque, virement…) — n'apparaît pas pour tous les moyens de paiement

Configuration GTM en 2 étapes

1
Vérifier en mode Aperçu

Avant toute configuration, activez le mode Aperçu (Preview) dans GTM. Naviguez sur votre formulaire de paiement en passant de l'étape 1 à 2, puis à 3. Dans le panneau Tag Assistant, vérifiez que des événements History Change apparaissent à chaque changement d'étape. Si ces événements apparaissent, la solution est viable.

2
Configurer GTM

a) Activer les variables intégrées

Variables → Variables intégrées → Configurer → cochez New History Fragment et History Source.

b) Créer les déclencheurs

Déclencheurs → Nouveau → Type : Modification de l'historique.

— Déclencheur 1 : "New History Fragment" contient contact → nommer rgive - Passage étape 2 Contact

— Déclencheur 2 : "New History Fragment" est égal à payment → nommer rgive - Passage étape 3 Paiement

N'utilisez pas "contient" : le fragment #payment-details déclencherait une seconde fois cette balise.

c) Associer vos balises

Créez une balise pour votre outil analytics (événement form_step_contact sur le déclencheur "rgive - Passage étape 2 Contact", événement form_step_payment sur le déclencheur "rgive - Passage étape 3 Paiement").

d) Tester puis publier

Repassez en mode Aperçu, vérifiez que les deux balises se déclenchent. Une fois validé, publiez le conteneur.

Vous disposez alors, dans votre outil analytics, de la séquence page_viewform_step_contactform_step_paymentcheckout (step = payment) → purchase ou pledge pour construire votre entonnoir.

checkout n'est pas un clic sur un bouton : l'événement checkout est poussé à chaque chargement d'étape du formulaire, avec la variable step qui identifie l'étape en cours (amount, contact, payment, payment-details) — pas au clic sur « Je paye ». Pour mesurer un paiement effectivement abouti, appuyez-vous sur purchase ou pledge, pas sur checkout.
Mobilisation

Pétitions, manifestes, plaidoyer : les campagnes de mobilisation

Le module mobilisation de rgive permet de collecter des signatures plutôt que des paiements. Le tracking suit la même logique que les formulaires de paiement — événements poussés automatiquement dans le dataLayer, aucun code à écrire — mais avec ses propres événements et ses propres variables. Comme il n'y a pas de transaction, les données ne sont pas dans l'objet ecommerce mais dans un objet dédié mobilization.

mobilization_start

Déclenché lorsque le visiteur commence réellement à interagir avec le formulaire de signature (première saisie). Sert à mesurer l'intention et calculer le taux d'abandon. Ne compte pas une signature.

Déclenché côté navigateur
mobilization_submit

Déclenché lorsque le formulaire a été soumis avec succès et que la signature a été enregistrée. Selon la configuration de la campagne, signature_status vaut confirmed (sans validation e-mail) ou pending_confirmation (avec validation e-mail). La variable step vaut contact sur cet événement.

Poussé après confirmation du serveursignature_id requis
mobilization_confirm

Déclenché uniquement dans le parcours avec validation d'e-mail, lorsque le signataire clique sur le lien reçu et que sa signature devient définitive. Absent des campagnes sans validation e-mail. La variable step vaut confirmation. Ce payload ne contient pas les codes de campagne (campaign_media_code, campaign_origin_code, campaign_assignment_code).

Déclenché par le backendParcours e-mail uniquement
generate_lead

Événement de conversion standard, poussé en complément. Il est déclenché au moment où la signature devient définitive : avec mobilization_submit si la campagne n'a pas de validation e-mail, avec mobilization_confirm sinon. Contient value (toujours 0) et currency. Ne contient ni step, ni integration, ni form_type.

Poussé après confirmation du serveur
Quel événement pour compter vos signatures ? Utilisez generate_lead : il est déclenché une seule fois par signature, au moment où elle est définitive, quel que soit le parcours. mobilization_start mesure l'intention, pas la signature.
Les variables de mobilisation

Dans GTM ou MTM, créez une variable de couche de données avec le chemin exact de la colonne « Clé dataLayer ». Les variables ecommerce.* ne sont pas alimentées sur les campagnes de mobilisation.

Variables communes avec les campagnes de paiement (même signification, préfixe mobilization.)
VariableClé dataLayerTypeDescriptionExemple / ValeursÉvénements
campaign_idmobilization.campaign_idStringCode de la campagne. Vide ("") si aucun code n'est renseigné dans le back-office.Tous
campaign_uuidmobilization.campaign_uuidStringIdentifiant technique de la campagne (6 premiers caractères de son UUID), toujours renseigné7c354cmobilization_start, mobilization_submit
campaign_namemobilization.campaign_nameStringNom de la campagneProtégeons les océansTous
campaign_typemobilization.campaign_typeStringType de campagnemobilization (toujours)Tous
campaign_media_codemobilization.campaign_media_codeStringCode média de la campagne. Facultatif, saisi dans le back-office. Vide ("") si non renseigné.EMAIL_MAImobilization_start, mobilization_submit
campaign_origin_codemobilization.campaign_origin_codeStringCode origine de la campagne. Facultatif, saisi dans le back-office. Vide ("") si non renseigné.NEWSLETTERmobilization_start, mobilization_submit
campaign_assignment_codemobilization.campaign_assignment_codeStringCode d'affiliation de la campagne. Facultatif, saisi dans le back-office. Vide ("") si non renseigné.FHmobilization_start, mobilization_submit
integrationmobilization.integrationStringMode d'intégrationpage (uniquement, pour le moment)mobilization_start, mobilization_submit, mobilization_confirm
form_typemobilization.form_typeStringFormat du formulaire1-step (uniquement, pour le moment)mobilization_start, mobilization_submit, mobilization_confirm
stepmobilization.stepStringÉtape en courscontact (start, submit) · confirmation (confirm)mobilization_start, mobilization_submit, mobilization_confirm
affiliationmobilization.affiliationStringNom de l'organisation collectriceNOM ORGANISATIONTous
referrer_urlmobilization.referrer_urlStringPage d'origine du visiteurhttps://www.facebook.com/Tous
landing_urlmobilization.landing_urlStringPage d'entrée de la visite en cours, UTM inclushttps://agir.votreasso.fr/oceans?utm_source=facebook&utm_medium=paid-socialTous
Variables dédiées à la mobilisation
VariableClé dataLayerTypeDescriptionExemple / ValeursÉvénements
mobilization_typemobilization.mobilization_typeStringNature fonctionnelle de la campagnepetition · manifesto · advocacyTous
signature_idmobilization.signature_idStringIdentifiant unique de la signature. Clé de dédoublonnage recommandée.72fcf307-0c6f-45f0-bfce-a01a2eb19cbfsubmit, confirm, generate_lead
signature_statusmobilization.signature_statusStringStatut de la signature au moment de l'événementpending_confirmation · confirmedsubmit, confirm, generate_lead
validation_methodmobilization.validation_methodStringMéthode de validation configurée sur la campagnenone · emailTous
valuemobilization.valueStringToujours 00generate_lead
currencymobilization.currencyStringDevise ISO de la campagneEURgenerate_lead
Exemples de payloads

Voici des exemples de payloads poussés par rgive sur une campagne de mobilisation. Les valeurs réelles dépendent de la configuration de votre campagne.

{
  "event": "mobilization_submit",
  "mobilization": {
    "affiliation": "NOM ORGANISATION",
    "campaign_id": "",
    "campaign_uuid": "7c354c",
    "campaign_code": "",
    "campaign_media_code": "",
    "campaign_origin_code": "",
    "campaign_assignment_code": "",
    "campaign_name": "Pour des aires marines vraiment protégées",
    "campaign_type": "mobilization",
    "mobilization_type": "petition",
    "integration": "page",
    "form_type": "1-step",
    "step": "contact",
    "signature_id": "72fcf307-0c6f-45f0-bfce-a01a2eb19cbf",
    "signature_status": "pending_confirmation",
    "validation_method": "email",
    "referrer_url": "https://www.facebook.com/",
    "landing_url": "https://agir.votreasso.fr/oceans?utm_source=facebook&utm_medium=paid-social&utm_campaign=oceans-2026"
  }
}
Aucun événement n'est poussé au chargement d'une page de mobilisation. Utilisez l'événement de page vue de votre outil comme première étape de votre entonnoir.
Configuration GTM / MTM et entonnoir
  • Créez quatre déclencheurs « Événement personnalisé » avec les noms exacts mobilization_start, mobilization_submit, mobilization_confirm, generate_lead.
  • Créez une variable de couche de données par propriété souhaitée, avec le préfixe mobilization.
  • Entonnoir recommandé : page_viewmobilization_startmobilization_submitmobilization_confirm (si validation e-mail). Variables utiles pour segmenter : campaign_name, mobilization_type, validation_method.
Exemples de balises dans GTM

Pour chaque événement, créez une balise pour votre outil analytics associée au déclencheur correspondant. Voici des exemples de configuration — adaptez les paramètres à vos besoins.

Balise — mobilization_start
Déclencheur : Événement personnalisé : mobilization_start
Paramètres d'événement
campaign_id={{mobilization.campaign_id}}
campaign_name={{mobilization.campaign_name}}
mobilization_type={{mobilization.mobilization_type}}
Balise — mobilization_submit
Déclencheur : Événement personnalisé : mobilization_submit
Paramètres d'événement
campaign_id={{mobilization.campaign_id}}
campaign_name={{mobilization.campaign_name}}
mobilization_type={{mobilization.mobilization_type}}
signature_id={{mobilization.signature_id}}
signature_status={{mobilization.signature_status}}
validation_method={{mobilization.validation_method}}
Balise — mobilization_confirm
Déclencheur : Événement personnalisé : mobilization_confirm
Paramètres d'événement
campaign_id={{mobilization.campaign_id}}
campaign_name={{mobilization.campaign_name}}
signature_id={{mobilization.signature_id}}
signature_status={{mobilization.signature_status}}
Balise — generate_lead
Déclencheur : Événement personnalisé : generate_lead
Paramètres d'événement
campaign_id={{mobilization.campaign_id}}
campaign_name={{mobilization.campaign_name}}
signature_id={{mobilization.signature_id}}
value={{mobilization.value}}
currency={{mobilization.currency}}
Tracking des sources

UTM / MTM — comprendre et bien utiliser

Les paramètres UTM sont des informations que vous ajoutez à vos liens pour savoir précisément d'où viennent vos payeurs. Sans eux, vos rapports analytics sont partiellement aveugles. Avec eux, vous savez quelle campagne, quel canal et quel contenu a généré chaque paiement.

Sans UTM — ce que voient vos outils analytics
SourceMediumSessions
gmail.com(none)312
yahoo.fr(none)187
orange.fr(none)143
(direct)(none)114

Vos newsletters apparaissent comme du trafic webmail — impossible de savoir que c'est votre campagne.

Avec UTM — la vraie réalité
CampagneMediumSessions
newsletter-mai-25email298
newsletter-avr-25email231
relance-donemail107
campagne-metapaid-social120

Vous savez exactement quelle campagne a amené ces payeurs et généré ces paiements.

Les 6 paramètres disponibles

Aucun n'est techniquement obligatoire — mais 3 sont essentiels. La logique est identique sur Matomo (MTM).

utm_sourceEssentiel

D'où vient le payeur ? Identifie l'émetteur du lien — la plateforme ou le canal d'origine.

Ex : newsletter · google · facebook · instagram · linkedin
utm_mediumEssentiel

Quel type de canal marketing ? Permet de regrouper les sources par famille dans vos rapports.

Ex : email · cpc · paid-social · organic · referral
utm_campaignEssentiel

Le nom de votre campagne. C'est la dimension la plus utile au quotidien pour comparer vos actions de collecte.

Ex : relance-don-mai · noel-2025 · marathon-paris
utm_contentOptionnel

Quelle variante créative ? Utile pour les tests A/B — comparer deux visuels, deux boutons ou deux accroches dans la même campagne.

Ex : bouton-faire-un-don · visuel-enfants-v2 · banniere-rouge
utm_termOptionnel · SEA uniquement

Le mot-clé ciblé. Pertinent uniquement pour les campagnes Google Ads Search — inutile sur email ou social.

Ex : faire un don association · don mensuel ong
utm_idOptionnel

Un identifiant unique de campagne. Utile si vous gérez vos campagnes dans un outil externe et voulez faire le lien avec vos données analytics.

Ex : camp_2025_001 · email_nov_relance

Nos recommandations par canal

Les conventions ci-dessous sont celles que nous recommandons à nos clients nonprofit pour garantir des rapports cohérents et comparables dans le temps.

Email / Newsletter
utm_source
newsletter-mai-2025
utm_medium
email
utm_campaign
relance-don-ponctuel
utm_content
bouton-faire-un-don

utm_term est inutile sur email — il n'y a pas de mot-clé de recherche. Précisez le nom de la newsletter dans utm_source pour pouvoir comparer vos éditions entre elles.

Google Ads (Search)
utm_source
google
utm_medium
cpc
utm_campaign
don-mensuel-2025
utm_term
faire un don association

cpc (coût par clic) est la convention la plus répandue pour les moteurs de recherche payants. Activez l'auto-tagging dans Google Ads pour remplir utm_term automatiquement.

Meta Ads (Facebook / Instagram)
utm_source
facebook
utm_medium
paid-social
utm_campaign
don-mensuel-2025
utm_content
visuel-enfants-v2

paid-social distingue la publicité sociale du search payant (cpc). Même logique pour TikTok, LinkedIn et Instagram — adaptez uniquement utm_source.

Les règles de nommage — à respecter absolument

Les outils analytics sont sensibles à la casse et traite chaque variante comme une valeur distincte. Email et email et e-mail — ce sont trois sources différentes dans vos rapports.

1
Toujours en minuscules

Les outils analytics sont sensibles à la casse. Une majuscule suffit à créer une nouvelle entrée distincte dans vos rapports — vos données se fragmentent sans que vous vous en aperceviez.

Newsletter-MaiNEWSLETTERnewsletter-mai
2
Un seul séparateur — tiret ou underscore, jamais les deux

Choisissez une convention une fois pour toutes et ne la changez jamais. Le tiret est la convention la plus répandue. Évitez absolument les espaces.

newsletter mainewsletter_mainewsletter-mai-2025
3
Un seul mot par canal — pour toujours, dans tous vos outils

Décidez une fois comment vous appelez chaque canal et documentez-le. Toute l'équipe doit utiliser les mêmes valeurs dans tous les outils — emailing, CMS, réseaux sociaux.

emailingmaile-mailemail
Ne jamais mettre d'UTM sur vos liens internes. Un UTM sur un lien interne (menu, bouton CTA, bannière sur votre propre site) écrase la source d'origine du payeur dans vos rapports. Un payeur venu via votre newsletter sera réattribué à votre CTA interne — vous perdez la vraie source. Règle simple : les UTMs servent exclusivement à mesurer le trafic avant l'arrivée sur votre site. Source externe → votre site = UTM ✓. Page A → Page B interne = jamais d'UTM ✗.

Comment rgive gère vos UTMs

rgive capture et conserve vos paramètres UTM de façon native — même si le payeur refuse les cookies.

Cookie-less — fonctionne même si refus de cookies

Les valeurs UTM sont enregistrées côté serveur dans la base de données, indépendamment du consentement cookies du payeur. Rien n'est perdu.

Enregistrement par paiement

Chaque paiement stocke utm_source, utm_medium, utm_campaign, utm_content, utm_term et utm_id associés à la transaction.

Filtres dans votre back-office

Filtrez vos paiements par utm_source, utm_medium ou utm_campaign directement dans rgive pour isoler les résultats d'une campagne.

Export CSV et Metabase

Les valeurs UTM sont exportables en CSV et disponibles comme dimensions dans Metabase pour vos tableaux de bord personnalisés.

Générateur d'URL UTM

Construisez votre URL trackée en remplissant les champs ci-dessous. L'URL se génère automatiquement en temps réel, prête à coller dans votre email ou votre campagne.

URL du formulaire* essentiel
utm_source*
utm_medium*
utm_campaign*
utm_contentoptionnel
utm_termoptionnel · SEA
Remplissez les champs ci-dessus…

Les valeurs sont automatiquement converties en minuscules. Les espaces sont remplacés par des tirets.

Export clé en main

Générer votre configuration prête à importer

Configurer GTM ou MTM manuellement prend du temps — il faut créer une variable pour chaque propriété rgive et un déclencheur pour chaque événement. Ce fichier JSON fait tout ça automatiquement : importez-le en un clic dans votre container et votre configuration de base est prête en moins d'une minute.

Créer 25 variables à la main (44 avec la mobilisation)
Configurer 3 déclencheurs manuellement (7 avec la mobilisation)
Choisir votre outil

Le fichier exporté est adapté au format natif de la plateforme choisie.

Nom de votre organisation
Dans GTM, lors de l'import, sélectionnez toujours « Fusionner » et non « Écraser » — vous conservez ainsi vos balises existantes. Dans MTM, importez d'abord dans un environnement de test avant de publier en production.
Contenu du fichier exporté
Variables de couche de données — une par propriété rgive, dont les trois nouvelles URL d'attribution (referrer_url, landing_url, conversion_url)
Déclencheurs événement personnalisé — un pour checkout, un pour purchase, un pour pledge
Si l'option mobilisation est cochée : les variables mobilization.*, les déclencheurs mobilization_start, mobilization_submit, mobilization_confirm et generate_lead
Aide

Questions fréquentes

Les réponses aux questions que nos clients posent le plus souvent lors de l'intégration GTM ou MTM avec rgive.

Non. rgive ne charge qu'un seul outil de tracking à la fois. Si vous renseignez les deux champs dans les paramètres, MTM sera ignoré. Choisissez celui qui correspond à votre outil d'analytics principal. Les événements, variables et structure dataLayer sont strictement identiques dans les deux cas — ce guide s'applique donc quelle que soit votre solution.

Oui — c'est une obligation légale, pas une recommandation.

1
GTM et MTM ne gèrent pas le consentement par eux-mêmes. Sans CMP configurée, ils chargent tous vos scripts (GA4, Matomo, pixels publicitaires…) dès l'arrivée du visiteur, sans attendre son accord — ce qui constitue une violation du RGPD.
2
La CNIL a sanctionné des organisations sur ce sujet précis depuis 2022, y compris pour l'utilisation de Google Analytics sans consentement préalable. Les associations ne sont pas exemptées.
3
Pour GTM, votre CMP doit implémenter le Consent Mode v2 de Google. Pour MTM, elle doit s'intégrer au système de consentement natif de Matomo. Nous recommandons Sirdata, qui propose une offre gratuite pour les associations sans limite de volume ni de durée, compatible avec les deux solutions.
4
La configuration de votre CMP est un prérequis distinct de la configuration GTM / MTM décrite dans ce guide. Elle nécessite généralement l'intervention de votre agence ou prestataire technique.

Si vous n'avez pas encore de CMP, mettez en place ce prérequis avant de publier votre container GTM ou MTM en production.

Pour trois raisons principales :

Sécurité
Les formulaires traitent des données bancaires sensibles — un script externe peut être altéré pour intercepter les numéros de carte (attaque de type Magecart).
Stabilité
Un snippet JavaScript peut bloquer silencieusement la soumission d'un paiement ou créer des conflits avec les mises à jour futures de rgive.
Conformité PCI-DSS
Les formulaires de paiement sont soumis à des normes strictes — des scripts non audités exposent votre organisation à des risques légaux.

GTM et MTM ont précisément été conçus pour répondre à ce besoin de façon gouvernée, auditée et réversible.

purchase est déclenché pour tout paiement immédiat et confirmé : carte bancaire, PayPal, Apple Pay, Google Pay, et prélèvement SEPA. pledge est réservé exclusivement aux promesses de paiement à paiement différé : chèque envoyé par courrier et virement bancaire classique. Le prélèvement SEPA est un paiement immédiat — il génère donc un purchase, pas un pledge. Cette distinction est importante pour l'interprétation de vos taux d'abandon.
Non. checkout n'est pas lié à un clic : il est poussé automatiquement à chaque chargement d'étape du formulaire, avec la variable step qui identifie l'étape en cours (amount, contact, payment, payment-details). Un payeur qui parcourt les trois étapes génère donc trois événements checkout, distingués par leur valeur de step. Pour mesurer les paiements aboutis, utilisez purchase (paiement immédiat) ou pledge (promesse à paiement différé), pas checkout.
Oui, sans aucun développement supplémentaire de la part de rgive. rgive utilise des fragments d'URL (#contact, #payment, #payment-details) pour identifier chaque étape. GTM peut détecter ces changements via un déclencheur « Modification de l'historique » et pousser un événement à chaque passage d'étape. Utilisez la condition « est égal à » sur le fragment payment, sinon #payment-details déclencherait une seconde fois la balise. Vous pouvez ensuite construire votre entonnoir dans votre outil analytics. Consultez la section Abandons pour le guide de configuration complet.

Les causes les plus fréquentes :

1
Des majuscules ou séparateurs incohérents fragmentent vos données — Email, email et e-mail sont trois sources distinctes pour vos outils analytics.
2
Des UTMs sont posés sur des liens internes de votre site — ils écrasent la source d'origine du payeur.
3
La variable correspondante n'a pas été créée dans votre container GTM ou MTM.
4
Le consentement cookie bloque le script côté client — mais rgive conserve les UTMs côté serveur indépendamment du consentement.
Non, à condition de sélectionner « Fusionner » (et non « Écraser ») lors de l'import dans GTM. Cette option ajoute les nouvelles variables, déclencheurs et balises sans supprimer ce qui existe déjà. Si deux éléments portent le même nom, GTM vous demandera comment gérer le conflit. Pour MTM, importez toujours dans un environnement de test avant de publier en production — c'est une bonne pratique qui vous permet de valider la configuration sans risque.
referrer_url est la page externe d'où vient le visiteur (Google, Facebook, un autre site). landing_url est la première page de votre site qu'il a vue pendant cette visite, avec ses paramètres UTM. Le premier dit d'où il vient, le second par où il est entré chez vous. Les deux reflètent la visite en cours.
Non. L'événement purchase n'est envoyé qu'une seule fois par transaction, même si le payeur recharge la page de confirmation. Le champ transaction_id reste disponible comme clé de dédoublonnage.
Appuyez-vous sur l'événement generate_lead, déclenché une seule fois par signature au moment où elle devient définitive. N'utilisez pas mobilization_start, qui mesure l'intention et non la signature.
campaign_id reprend le code de campagne saisi dans le back-office rgive. S'il n'est pas renseigné, la variable est transmise vide. Utilisez campaign_uuid, toujours renseigné, ou saisissez un code de campagne dans les paramètres de la campagne.
Les campagnes de mobilisation n'ont pas de transaction : leurs données sont dans l'objet mobilization, pas dans ecommerce. Créez des variables de couche de données avec le préfixe mobilization. (voir la section Campagnes de mobilisation).