Comment diffuser les publicités des autres sur votre propre site, et pourquoi c’est un monde complètement différent de Google Ads.

1. Les trois noms que tout le monde confond

Google a trois produits aux noms presque identiques, et les mélanger envoie des projets entiers dans le mur :

ProduitQui l’utiliseCe qu’il fait
Google AdsAnnonceurs (buy side)Vous achetez de l’espace publicitaire pour promouvoir votre propre activité sur Google Search, YouTube et les sites partenaires.
Compte Google Ads Manager (MCC)Agences et freelances (buy side)Un identifiant parapluie au-dessus de Google Ads. Il ne lance aucune campagne : il permet à une agence de gérer de nombreux comptes clients depuis un seul tableau de bord (jusqu’à 85 000 comptes liés, voir l’aide Google Ads).
Google Ad Manager (GAM)Éditeurs (sell side)Vous vendez de l’espace publicitaire. C’est un ad server : il décide en temps réel quelle création d’annonceur s’affiche dans chaque emplacement de votre site.

Cet article parle du troisième : Google Ad Manager, la plateforme quand les publicités de votre site ne sont pas les vôtres. Vous possédez le rayonnage, les annonceurs le louent. Le changement de réflexe est le suivant : dans Google Ads, on pense campagnes, mots-clés et enchères pour gagner l’audience des autres. Dans GAM, on pense inventaire, commandes et priorités pour arbitrer entre des annonceurs qui se disputent votre audience.

2. Ce qu’est vraiment Google Ad Manager

Imaginez un panneau d’affichage numérique dans une gare, où quelqu’un décide, à la seconde où vous le regardez, quelle affiche montrer. GAM est cet ad server : à chaque chargement d’une page avec un emplacement vide, la page demande « que dois-je afficher ? », et GAM répond avec la création gagnante, ou une réponse vide (no-fill). Deux moitiés font le système : GAM côté serveur (inventaire, campagnes, logique de décision) et GPT (Google Publisher Tag, gpt.js) côté site, qui décrit chaque emplacement, appelle GAM et injecte la création dans le bon <div>. Sans GPT déployé, une page génère zéro requête : des audits trouvent régulièrement des sites à 0 impression pendant un trimestre parce que le tag n’a jamais été publié en production.

3. Les briques de base (modèle d’inventaire)

Un network (votre compte, identifié par un network code) contient des ad units, les emplacements vendables, avec un chemin du type /NETWORK_CODE/UNIT_NAME : ce chemin est la clé, la page et le serveur doivent le prononcer à l’identique. Des orders (un par deal d’annonceur) contiennent des line items qui disent où, quoi, quand et avec quelle priorité diffuser, et portent des créations. Les key-values sont des étiquettes que la page ajoute à sa requête pour cibler ou exclure finement.

4. La vie d’une requête publicitaire

C’est l’aller-retour que vous devez savoir rejouer de tête pour déboguer :

  1. La page charge gpt.js, puis defineSlot('/NETWORK/UNIT', [[728,90]], 'div-id') avec ses options (SRA, consentement, lazy load).
  2. display('div-id') ou refresh() déclenche l’appel HTTP vers securepubads.g.doubleclick.net/gampad/ads.
  3. GAM associe les line items éligibles et choisit un gagnant : création injectée, ou no-fill et <div> replié.

La règle d’or : GAM et GPT doivent prononcer exactement le même chemin d’ad unit. Si la page demande une adresse que GAM ne connaît pas (faute de frappe, mauvais chemin), GAM ne trouve personne et renvoie vide. La pub échoue non parce que la campagne est mal configurée, mais parce que la question était mal posée. À l’inverse, une réponse vide avec un chemin parfaitement correct signale un blocage du matching côté serveur (order expiré, taille incompatible, ciblage, site non vérifié…).

5. Comment GAM décide : types de line items et priorités

C’est là que GAM diffère le plus de Google Ads. Dans Google Ads, une enchère décide de tout. Dans GAM, vous fixez des priorités qui ordonnent vos line items, et l’allocation dynamique laisse l’enchère gagner une impression quand elle paie plus que le « coût d’opportunité » d’une ligne garantie, sans que cette ligne sous-livre. Un 100 % Sponsorship bloque totalement l’enchère.

Type de line itemPriorité (par défaut)Usage typique
Sponsorship4« L’annonceur X possède 100 % de l’emplacement sur la période » : parts de voix, roadblocks, habillages de homepage
Standard6 / 8 / 10Campagnes garanties classiques : N impressions entre deux dates, rythme géré par GAM
Price Priority12Non garanti : concourt au CPM contre la demande résiduelle et l’enchère
AdSense / Ad Exchange12 (concourt par allocation dynamique)L’enchère programmatique se dispute ce que la vente directe ne prend pas

Plus le nombre est bas, plus la priorité est haute : une ligne Sponsorship (4) passe avant une ligne Standard (8), et l’enchère ne prend une impression à une ligne garantie que si elle paie plus que son coût d’opportunité (sources : types de line items et priorités, allocation dynamique). C’est tout l’intérêt de GAM : permettre à une équipe commerciale de promettre « votre bannière sera en homepage tout le mois de mars » et de le garantir contre l’enchère ouverte.

6. Tarification : floors et Unified Pricing Rules

Les priorités décident qui diffuse, la tarification décide si l’impression vaut d’être diffusée. Un price floor est le CPM minimum accepté. Trop bas, vous vendez votre meilleur inventaire au prix du résiduel ; trop haut, l’impression reste invendue et un no-fill rapporte exactement zéro. Depuis que l’exchange de Google est passé à une enchère unifiée au premier prix, les floors sont devenus votre principal levier de prix.

Les Unified Pricing Rules (UPR) sont l’endroit où vivent les floors : des règles centrales appliquées à la demande non garantie (Ad Exchange, Open Bidding, backfill AdSense, line items résiduels, pas House ; Unified pricing rules). Chaque règle peut être ciblée par ad unit ou placement, format et taille, appareil, géographie, acheteur ou deal. L’erreur à éviter est un floor unique pour tout le site : votre rubrique la plus lue et votre page 404 ne valent pas la même chose. Gardez au moins un segment en floor manuel comme groupe témoin face à l’optimisation automatique, et revoyez vos floors à date fixe : la demande est saisonnière, pas vos réglages.

7. Configuration, de bout en bout

8. Direct contre programmatique, Open Bidding contre header bidding

En vente directe, votre équipe négocie un prix fixe pour de l’inventaire premium, avec garantie de diffusion et formats libres. En programmatique, une enchère automatisée fixe le prix par impression, sans garantie, avec des tailles IAB standard en pratique. Les éditeurs matures font les deux : le direct prend les emplacements premium, le programmatique monétise le reste.

Header bidding (Prebid)Open Bidding
Où tourne l’enchèreDans le navigateur (ou votre wrapper serveur), avant l’appel GAMCôté serveur, dans la stack de Google
Qui l’exploiteVousGoogle
Latence de pageUn délai mesurable à plafonner par un timeoutMinimale : un seul appel
TransparenceVous voyez chaque réponse d’enchèreVous voyez le résultat, pas la mécanique
CoûtVotre temps d’ingénierieUne commission sur les transactions

Ne mettez jamais le même exchange dans les deux chemins : il enchérirait contre lui-même et vous paieriez la latence deux fois. La bonne question n’est pas « lequel paie plus ce mois-ci » mais « combien de temps d’ingénierie puis-je consacrer durablement à l’infrastructure publicitaire ? ».

9. Débogage : la boîte à outils qui marche

Causes réelles de « les pubs ne s’affichent pas », à peu près par ordre de fréquence :

  1. GPT jamais déployé en production : pas de gpt.js ni de gampad/ads dans Network. Méfiez-vous des bannières <img> statiques du CMS qui ressemblent à de la diffusion mais génèrent 0 impression GAM.
  2. Order ou line item expiré : tout marchait hier, réponses vides aujourd’hui sur tous les domaines à la fois.
  3. Site non vérifié, ou ads.txt avec un mauvais ID éditeur.
  4. Chaîne de consentement cassée : pas de CMP/TCF, mode limité ltd=1, CPM écrasés.
  5. Exclusion de key-value dormante qui s’active, ou page de test différente de la production.

10. Requête ≠ impression ≠ impression viewable

Trois chiffres utilisés indifféremment en réunion. Une ad request signifie que le navigateur a demandé une pub, pas qu’elle est revenue (pas de demande, floor trop haut ou ciblage non rempli finissent en no-fill). Une impression signifie qu’une création a commencé à s’afficher, pas que quelqu’un l’a vue : elle peut être 2 000 pixels sous la ligne de flottaison dans un onglet en arrière-plan. Une impression viewable a atteint le seuil MRC, pas forcément le regard de l’utilisateur. Le standard MRC exige au moins 50 % des pixels à l’écran pendant une seconde continue pour le display standard, deux secondes pour la vidéo, et 30 % des pixels pour les très grands formats (MRC).

« On fait 4 M d’impressions » n’a aucun sens tant que personne ne dit lequel des trois chiffres c’est. Et le lazy loading déplace les chiffres en sens opposés : bien réglé, il baisse les impressions brutes, monte la viewability et le revenu ; trop agressif, la pub arrive après le scroll et vous perdez sur les deux tableaux.

11. Pourquoi vos chiffres et ceux de l’annonceur ne collent jamais

Quand un annonceur dit avoir compté 12 % d’impressions de moins que vous n’avez facturé, personne ne ment : deux systèmes de mesure comptent à des points différents de la chaîne, avec leurs propres filtres anti-fraude, leurs fuseaux horaires, leurs pertes de latence et d’abandon, et chaque redirection ou wrapper peut perdre le beacon. L’aide de Google indique que des écarts jusqu’à 20 % sont courants avec un ad server tiers (discrepancies) ; beaucoup de contrats tolèrent 10 %. Au-delà, cherchez une cause précise : tag dupliqué, lazy loading qui demande des pubs jamais atteintes, chaîne de redirections qui casse le compteur, consentement qui bloque le pixel de l’acheteur mais pas votre ad server. La seule solution durable est contractuelle : nommez une source de vérité pour la facturation avant la campagne, et écrivez l’écart toléré.

12. KPI, reporting et GAM 360

Les annonceurs optimisent le coût d’acquisition (CPC, CPA, ROAS), les éditeurs optimisent le yield : ad server impressions, eCPM, fill rate, viewability, delivery/pacing des lignes garanties et répartition programmatique/direct. Côté reporting, le Query Tool répond à « combien » (rapports agrégés planifiables, accessibles par API). Data Transfer répond à « pourquoi » : des fichiers bruts au niveau événement vers un stockage cloud (option payante, voir Data Transfer), qui permettent de réconcilier avec GA4, d’expliquer un écart événement par événement et de reconstruire un funnel dans BigQuery. Les données agrégées vous laissent observer un problème, seules les données événementielles vous laissent l’expliquer.

L’offre gratuite de GAM en fait bien plus qu’on ne l’imagine (inventaire, vente directe, cascade complète de priorités, programmatique de base) et suffit à un éditeur de taille moyenne. Les limites de GAM 360 portent sur le volume (un plafond mensuel d’impressions que Google révise : vérifiez le chiffre actuel), les fonctionnalités avancées et les données. Le vrai déclencheur n’est presque jamais le trafic : c’est le jour où vous ne pouvez plus expliquer vos propres chiffres. Tant que vous vendez du volume, la version gratuite suffit ; le jour où vous vendez de la performance, il faut pouvoir la prouver.

13. En résumé

Google Ads dépense de l’argent pour placer vos pubs chez les autres. Google Ad Manager en gagne en orchestrant les pubs des autres chez vous : un cerveau côté serveur et une bouche sur la page (GPT) qui doivent prononcer les mêmes chemins d’ad unit. Son super-pouvoir est le système de priorités ; sa fragilité, les pannes silencieuses (tag non publié, order expiré, domaine non vérifié, consentement manquant) qui donnent toutes un emplacement vide.

Sources

Pour aller plus loin, lisez la version complète de l’article (en anglais) : Google Ad Manager: The Complete Publisher’s Guide (and How It Differs from Google Ads).

Vous doutez de votre tracking ?

Réserver un appel Ou commencez par l’audit analytics gratuit →