Besoin d'aide ?
Contactez-nous
Nous aidons les entreprises de toutes tailles à fiabiliser leur tracking et leur conformité RGPD.
Comment créer des dimensions personnalisés dans Google Analytics 4 pour corriger votre attribution

Sommaire
À quoi servent les dimensions personnalisées ?
Les dimensions personnalisées dans GA4 permettent de récupérer des informations d'attribution cruciales qui seraient autrement perdues, en particulier lors de l'utilisation du Measurement Protocol en configuration server-side.
Cette solution technique, implémentée via Google Tag Manager, permet d’apporter une nouvelle vue au problème des conversions "(not set)" qui représentent souvent une part significative des données, rendant impossible l'analyse précise du ROI marketing et l'optimisation des campagnes.
La méthode présentée ici a été testée et validée sur plusieurs sites e-commerce, permettant de réduire considérablement le taux de données non attribuées et d'améliorer la qualité des analyses marketing.
Lorsque vous utilisez GA4 en configuration server-side, particulièrement avec le Measurement Protocol, vous pouvez rencontrer un problème majeur d'attribution :
Nos analyses sur plusieurs sites e-commerce révèlent que jusqu'à 48% des conversions peuvent être attribuées à "(not set)" dans une configuration server-side standard.
Cette observation clé montre que les achats correctement attribués en (452) correspondent presque exactement au nombre total d'achats en client-side (443), confirmant que le problème est lié à la transmission du session_id.

Les dimensions personnalisées dans GA4 offrent une solution technique élégante à ce problème :
Contrairement aux mécanismes d'attribution standards de GA4, les dimensions personnalisées peuvent fonctionner même sans session_id, offrant ainsi une solution robuste au problème des "(not set)".
L'utilisation de dimensions personnalisées pour corriger l'attribution transforme la qualité de vos analyses marketing :
Cet impact se traduit directement par une meilleure prise de décision marketing et une optimisation des investissements.
Avant d'implémenter les dimensions personnalisées, réalisez un audit complet de vos données actuelles :
Cet audit vous permettra de quantifier précisément l'ampleur du problème et d'adapter la solution à votre situation spécifique.
Créez un document de référence qui servira de guide pour l'implémentation et la maintenance :
Ce document garantit une approche cohérente et facilite la communication entre équipes techniques et marketing.
La première étape consiste à créer les variables nécessaires dans Google Tag Manager :
function() {
// Configuration
var COOKIE_NAME = '_te';
var COOKIE_DURATION_DAYS = 30;
// Fonction pour lire le cookie d'attribution
function getAttributionCookie() {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
if (cookie.indexOf(COOKIE_NAME + '=') === 0) {
try {
return JSON.parse(decodeURIComponent(cookie.substring(COOKIE_NAME.length + 1)));
} catch (e) {
return null;
}
}
}
return null;
}
// Fonction pour définir le cookie d'attribution
function setAttributionCookie(data) {
var expiryDate = new Date();
expiryDate.setDate(expiryDate.getDate() + COOKIE_DURATION_DAYS);
document.cookie = COOKIE_NAME + '=' + encodeURIComponent(JSON.stringify(data)) +
';expires=' + expiryDate.toUTCString() +
';path=/;SameSite=Lax';
}
// Extraction des paramètres UTM de l'URL
function getUTMParameters() {
var urlParams = new URLSearchParams(window.location.search);
var utmParams = {
utm_source: urlParams.get('utm_source') || '',
utm_medium: urlParams.get('utm_medium') || '',
utm_campaign: urlParams.get('utm_campaign') || '',
utm_content: urlParams.get('utm_content') || '',
utm_term: urlParams.get('utm_term') || '',
timestamp: Date.now()
};
// Si aucun UTM n'est présent, vérifier le référent
if (!utmParams.utm_source && document.referrer) {
try {
var referrer = new URL(document.referrer);
utmParams.utm_source = referrer.hostname;
utmParams.utm_medium = 'referral';
} catch (e) {
// Gérer les erreurs d'URL invalide
}
}
return utmParams;
}
// Gestion de l'attribution
var existingData = getAttributionCookie();
var currentUTMs = getUTMParameters();
// Si nous avons des UTMs actuels ou s'il n'y a pas de données existantes
if ((currentUTMs.utm_source || currentUTMs.utm_medium) || !existingData) {
setAttributionCookie(currentUTMs);
return currentUTMs;
}
// Sinon retourner les données existantes
return existingData;
}

function() {
// Configuration
var COOKIE_NAME = '_te';
var COOKIE_DURATION_DAYS = 30;
// Fonction pour lire le cookie d'attribution
function getAttributionCookie() {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i].trim();
if (cookie.indexOf(COOKIE_NAME + '=') === 0) {
try {
return JSON.parse(decodeURIComponent(cookie.substring(COOKIE_NAME.length + 1)));
} catch (e) {
return null;
}
}
}
return null;
}
// Fonction pour définir le cookie d'attribution
function setAttributionCookie(data) {
var expiryDate = new Date();
expiryDate.setDate(expiryDate.getDate() + COOKIE_DURATION_DAYS);
document.cookie = COOKIE_NAME + '=' + encodeURIComponent(JSON.stringify(data)) +
';expires=' + expiryDate.toUTCString() +
';path=/;SameSite=Lax';
}
// Extraction des paramètres UTM de l'URL
function getUTMParameters() {
var urlParams = new URLSearchParams(window.location.search);
var utmParams = {
utm_source: urlParams.get('utm_source') || '',
utm_medium: urlParams.get('utm_medium') || '',
utm_campaign: urlParams.get('utm_campaign') || '',
utm_content: urlParams.get('utm_content') || '',
utm_term: urlParams.get('utm_term') || '',
timestamp: Date.now()
};
// Si aucun UTM n'est présent, vérifier le référent
if (!utmParams.utm_source && document.referrer) {
try {
var referrer = new URL(document.referrer);
utmParams.utm_source = referrer.hostname;
utmParams.utm_medium = 'referral';
} catch (e) {
// Gérer les erreurs d'URL invalide
}
}
return utmParams;
}
// Gestion de l'attribution
var existingData = getAttributionCookie();
var currentUTMs = getUTMParameters();
// Si nous avons des UTMs actuels ou s'il n'y a pas de données existantes
if ((currentUTMs.utm_source || currentUTMs.utm_medium) || !existingData) {
setAttributionCookie(currentUTMs);
return currentUTMs;
}
// Sinon retourner les données existantes
return existingData;
}
function() {
var attribution = {{JS - Cookie Attribution}};
return attribution && attribution.utm_source ? attribution.utm_source : '(not set)';
}
function() {
var attribution = {{JS - Cookie Attribution}};
return attribution && attribution.utm_medium ? attribution.utm_medium : '(not set)';
}
function() {
var attribution = {{JS - Cookie Attribution}};
return attribution && attribution.utm_campaign ? attribution.utm_campaign : '(not set)';
}
function() {
// Adapter à votre CMP
if (typeof OnetrustActiveGroups !== 'undefined') {
return OnetrustActiveGroups.includes('C0002') ? 'opt-in' : 'opt-out';
}
return 'unknown';
}
Configurez un tag pour initialiser le cookie d'attribution :
<script>
// Ce tag initialise simplement la variable d'attribution// pour déclencher la logique de création/mise à jour du cookie
(function () {
return {{JS - Cookie Attribution}};
})();
// Aucune action supplémentaire nécessaire,// la variable s'occupe de la logique de cookie
</script>
Configurez les dimensions personnalisées dans l'interface GA4 :
Afficher l'image
Modifiez vos tags GA4 pour inclure les dimensions personnalisées :
Afficher l'image
Afficher l'image
Pour exploiter pleinement les dimensions personnalisées, créez des rapports dédiés :

Résultats observés avec les sources retrouvées :

Validez votre implémentation en utilisant à la fois le mode Preview de GTM et DebugView de GA4 :
Afficher l'image
Mettez en place un processus de surveillance régulier :
Anticipez les problèmes courants et optimisez votre solution :
L'implémentation de dimensions personnalisées via Google Tag Manager offre une solution robuste au problème critique des "(not set)" dans l'attribution server-side GA4. Cette approche, testée et validée sur plusieurs sites e-commerce, permet de récupérer une visibilité précieuse sur l'origine réelle de vos conversions.
La combinaison de GTM et des dimensions personnalisées GA4 présente plusieurs avantages clés :
La réduction significative des conversions non attribuées se traduit directement par une meilleure optimisation des investissements marketing et une analyse ROI plus précise, créant ainsi un avantage compétitif tangible pour votre organisation.
Si vous voulez plus d’infos sur nos services et technologies :
Coaching personnalisé :
Vous voulez que nous vérifiions ou mettions en place cette configuration chez vous ? Notre équipe peut s'en charger de bout en bout.
Discuter avec un expert
