PageSourceSearch

https://sydney-boisseau.com/google-ads/audit/

html sydney-boisseau.com collected 2026-10-02 01:45:02 UTC 70,278 bytes, 823 lines download raw bytes

1<!DOCTYPE html>
2<html lang="fr">
3<head>
4<meta charset="UTF-8" />
5<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6<title>Audit Google Ads, Identifiez vos leviers de croissance</title>
7<meta name="description" content="Audit complet de votre compte Google Ads : structure, tracking, mots-cles, encheres. Repartez avec un plan d action concret pour ameliorer vos performances." />
8<link rel="canonical" href="https://sydney-boisseau.com/google-ads/audit/" />
9<meta property="og:title" content="Audit Google Ads, Identifiez vos leviers de croissance" />
10<meta property="og:description" content="Audit complet de votre compte Google Ads : structure, tracking, mots-cles, encheres. Repartez avec un plan d action concret pour ameliorer vos performances." />
11<meta property="og:type" content="article" />
12<meta property="og:locale" content="fr_FR" />
13<meta property="og:url" content="https://sydney-boisseau.com/google-ads/audit/" />
14<meta property="og:image" content="https://sydney-boisseau.com/assets/og-image.jpg" />
15<meta name="twitter:card" content="summary_large_image" />
16<meta name="twitter:title" content="Audit Google Ads, Identifiez vos leviers de croissance" />
17<meta name="twitter:description" content="Audit complet de votre compte Google Ads : structure, tracking, mots-cles, encheres. Repartez avec un plan d action concret pour ameliorer vos performances." />
18<meta name="twitter:image" content="https://sydney-boisseau.com/assets/og-image.jpg" />
19<link rel="preconnect" href="https://fonts.googleapis.com" />
20<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
21<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Instrument+Serif:ital@0;1&display=swap" rel="stylesheet" />
22<script type="application/ld+json">
23{"@context": "https://schema.org", "@type": "Article", "headline": "Audit Google Ads : 35 points contrôlés, plan d'action en 72 h", "description": "Audit complet de votre compte Google Ads : structure, tracking, mots-cles, encheres. Repartez avec un plan d action concret pour ameliorer vos performances.", "author": {"@type": "Person", "name": "Sydney Boisseau", "jobTitle": "Expert media buying Google Ads, Meta Ads et SEO", "url": "https://sydney-boisseau.com/"}, "publisher": {"@type": "Organization", "name": "Sydney Boisseau", "logo": {"@type": "ImageObject", "url": "https://sydney-boisseau.com/assets/logo-mark-512.png"}}, "image": "https://sydney-boisseau.com/assets/og-image.jpg", "datePublished": "2026-02-01", "dateModified": "2026-05-07", "inLanguage": "fr-FR", "mainEntityOfPage": {"@type": "WebPage", "@id": "https://sydney-boisseau.com/google-ads/audit/"}}
24</script>
vendor: 1 bytes, line 24
24
25<script type="application/ld+json">
26{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Accueil", "item": "https://sydney-boisseau.com/"}, {"@type": "ListItem", "position": 2, "name": "Audit Google Ads", "item": "https://sydney-boisseau.com/google-ads/audit/"}]}
27</script>
vendor: 1 bytes, line 27
27
28<script type="application/ld+json">
29{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "Que couvre exactement l'audit en 35 points ?", "acceptedAnswer": {"@type": "Answer", "text": "Six dimensions : structure du compte (8 pts), ciblage et mots-clés (7 pts), annonces et créatifs (6 pts), tracking et conversions (7 pts), performance et budget (5 pts), stratégie globale (2 pts). Chaque point est documenté avec une capture d'écran et un niveau de criticité explicite."}}, {"@type": "Question", "name": "Quelle différence avec l'audit automatique proposé par Google ?", "acceptedAnswer": {"@type": "Answer", "text": "L'audit automatique de Google se concentre sur des métriques de surface (CTR, CPA) sans prendre en compte votre contexte business, la qualité de votre tracking ou la pertinence stratégique de vos campagnes. Un audit professionnel couvre 35 points, livre un rapport visuel et un plan d'action priorisé, pas de simples suggestions in-interface."}}, {"@type": "Question", "name": "Le tracking est-il inclus dans le périmètre de l'audit ?", "acceptedAnswer": {"@type": "Answer", "text": "Oui, 7 points sont dédiés au tracking : conversions configurées, doublons, modèle d'attribution, liaison GA4, liaison Search Console, Enhanced Conversions et Consent Mode RGPD. C'est souvent là que se cachent les anomalies les plus impactantes sur la qualité des données."}}, {"@type": "Question", "name": "Quels accès vous faut-il pour démarrer ?", "acceptedAnswer": {"@type": "Answer", "text": "Un accès en lecture au compte Google Ads, à GA4 et à GTM suffit. Vous restez propriétaire de vos comptes et de toutes les données. L'accès est accordé via votre Google Ads Manager Account, aucun partage de mot de passe n'est nécessaire."}}, {"@type": "Question", "name": "L'audit est-il vraiment livré en 72 h dans tous les cas ?", "acceptedAnswer": {"@type": "Answer", "text": "72 h ouvrées après réception des accès et du brief. Ce délai couvre l'analyse complète des 35 points, la rédaction du rapport visuel et la préparation de la visio de restitution."}}, {"@type": "Question", "name": "Que se passe-t-il après la restitution de l'audit ?", "acceptedAnswer": {"@type": "Answer", "text": "Vous recevez le rapport PDF, le plan d'action priorisé et nous tenons la visio de restitution. Ensuite, vous avez le choix : mettre en oeuvre les recommandations seul, déléguer la gestion via une mission d'accompagnement, ou former votre équipe avec une formation Google Ads."}}]}
30</script>
30
31<style>
32  /* =========================================================
33     TOKENS  (partagés avec la home, ne pas diverger)
34     ========================================================= */
35  *, *::before, *::after { box-sizing: border-box; }
36  html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 92px; }
37  body {
38    margin: 0; background: #FFFFFF; color: #0A0A0B;
39    font-family: 'Inter', system-ui, -apple-system, sans-serif;
40    font-size: 16px; line-height: 1.6; font-weight: 400;
41    -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
42  }
43  img { max-width: 100%; display: block; }
44  button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
45  a { color: inherit; text-decoration: none; transition: color .2s ease; }
46
47  :root {
48    --bg: #FFFFFF; --bg-soft: #F7F5F1; --ink: #0A0A0B; --ink-2: #52525B; --ink-3: #71717A;
49    --surface: #FAFAF8; --border: #E4E4E7; --border-strong: #D4D4D8; --border-2: #3F3F46;
50    --inverse-bg: #0A0A0B; --inverse-bg-2: #161618; --inverse-fg: #FAFAF8; --inverse-fg-2: #A1A1AA;
51    --accent: #C2410C; --accent-soft: #FBE9DD; --accent-strong: #9A330A;
52    --serif: 'Instrument Serif', Georgia, serif; --sans: 'Inter', system-ui, sans-serif;
53    --max: 1180px; --gutter: clamp(20px, 4vw, 48px);
54    --radius: 16px; --radius-sm: 10px;
55    --shadow-sm: 0 1px 2px rgba(10,10,11,0.04), 0 1px 1px rgba(10,10,11,0.04);
56    --shadow-md: 0 4px 12px rgba(10,10,11,0.06), 0 2px 4px rgba(10,10,11,0.04);
57  }
58
59  /* =========================================================
60     LAYOUT
61     ========================================================= */
62  .wrap { max-width: var(--max); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
63
64  /* =========================================================
65     TYPO HELPERS
66     ========================================================= */
67  .eyebrow { display: inline-flex; align-items: center; gap: 8px; background: var(--accent-soft);
68    color: var(--accent-strong); font-size: 12.5px; font-weight: 600; padding: 5px 11px; border-radius: 999px;
69    letter-spacing: 0.01em; white-space: nowrap; }
70  .eyebrow .dot { width: 6px; height: 6px; background: var(--accent); border-radius: 999px; }
71  h1, h2, h3, h4 { font-family: var(--sans); font-weight: 700; letter-spacing: -0.025em; line-height: 1.1; margin: 0; color: var(--ink); }
72  h2 em, h1 em { font-family: var(--serif); font-style: italic; font-weight: 400; letter-spacing: -0.01em; }
73  .accent { color: var(--accent); }
74
75  /* =========================================================
76     BUTTONS
77     ========================================================= */
78  .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 13px 20px;
79    border-radius: 10px; font-size: 14.5px; font-weight: 600; line-height: 1;
80    transition: transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
81    border: 1px solid transparent; white-space: nowrap; cursor: pointer; }
82  .btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
83  .btn-primary { background: var(--accent); color: #fff; box-shadow: 0 1px 0 rgba(255,255,255,0.2) inset, 0 6px 14px rgba(194,65,12,0.22); }
84  .btn-primary:hover { background: var(--accent-strong); transform: translateY(-1px); }
85  .btn-ghost { background: #fff; color: var(--ink); border-color: var(--border-strong); }
86  .btn-ghost:hover { border-color: var(--ink); transform: translateY(-1px); }
87  .btn .arrow { width: 16px; height: 16px; }
88
89  /* =========================================================
90     HEADER  (module partagé)
91     ========================================================= */
92  .site-header { position: sticky; top: 0; z-index: 50; height: 68px;
93    background: rgba(255,255,255,0.86); backdrop-filter: saturate(180%) blur(14px);
94    -webkit-backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid var(--border); }
95  .site-header .inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
96    height: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gutter); }
97  .brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; font-size: 16px; letter-spacing: -0.01em; color: var(--ink); }
98  .brand-mark { width: 32px; height: 32px; border-radius: 8px; background: var(--ink); color: #fff;
99    display: grid; place-items: center; font-weight: 700; font-size: 14px; font-family: var(--sans); }
100  .site-nav { display: flex; gap: 28px; justify-content: center; }
101  .site-nav a { font-size: 14px; font-weight: 500; color: var(--ink-2); }
102  .site-nav a:hover { color: var(--ink); }
103  .site-nav a.current { color: var(--ink); font-weight: 600; }
104  .header-cta { justify-self: end; display: flex; gap: 10px; align-items: center; }
105  .header-cta .btn { padding: 10px 16px; font-size: 14px; }
106  .avail-chip { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink-2);
107    border: 1px solid var(--border); border-radius: 999px; padding: 5px 12px 5px 10px; background: #fff; white-space: nowrap; }
108  .avail-chip .pulse { position: relative; width: 8px; height: 8px; }
109  .avail-chip .pulse::after { content: ''; position: absolute; inset: 0; border-radius: 999px; background: #16A34A;
110    box-shadow: 0 0 0 0 rgba(22,163,74,0.5); animation: pulse 2.4s infinite; }
111  @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(22,163,74,0.5); } 70% { box-shadow: 0 0 0 6px rgba(22,163,74,0); } 100% { box-shadow: 0 0 0 0 rgba(22,163,74,0); } }
112  .avail-chip strong { font-weight: 600; color: var(--ink); }
113  .brand-group { display: inline-flex; align-items: center; gap: 14px; }
114  @media (max-width: 1000px) { .avail-chip { display: none; } }
115  @media (max-width: 800px) { .site-nav { display: none; } .site-header .inner { grid-template-columns: 1fr auto; } }
116
117  /* ----- Menu mobile (hamburger + panneau) ----- */
118  .hamburger { display: none; width: 42px; height: 42px; border-radius: 9px; border: 1px solid var(--border-strong);
119    background: #fff; align-items: center; justify-content: center; flex-shrink: 0; }
120  .hamburger svg { width: 20px; height: 20px; color: var(--ink); }
121  .hamburger .ic-close { display: none; }
122  .hamburger[aria-expanded="true"] .ic-open { display: none; }
123  .hamburger[aria-expanded="true"] .ic-close { display: block; }
124  @media (max-width: 800px) { .hamburger { display: inline-flex; } }
125  .mobile-menu { position: fixed; top: 68px; left: 0; right: 0; z-index: 49; background: #fff;
126    border-bottom: 1px solid var(--border); box-shadow: var(--shadow-md); padding: 12px var(--gutter) 20px; display: none; }
127  .mobile-menu.open { display: block; animation: mm-in .18s ease-out; }
128  @keyframes mm-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
129  .mobile-menu nav { display: grid; gap: 0; }
130  .mobile-menu .mm-link { font-size: 16px; font-weight: 600; color: var(--ink); padding: 15px 8px; border-bottom: 1px solid var(--border); }
131  .mobile-menu .mm-link.current { color: var(--accent); }
132  .mobile-menu .mm-cta { margin-top: 16px; }
133  .mobile-menu .mm-cta .btn { width: 100%; padding: 14px; font-size: 15px; }
134  .menu-backdrop { position: fixed; inset: 68px 0 0; z-index: 48; background: rgba(10,10,11,0.35); display: none; }
135  .menu-backdrop.open { display: block; }
136
137  /* =========================================================
138     BREADCRUMB
139     ========================================================= */
140  .breadcrumb { padding: 22px 0 0; }
141  .breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; padding: 0; font-size: 13px; color: var(--ink-3); }
142  .breadcrumb a { color: var(--ink-3); }
143  .breadcrumb a:hover { color: var(--accent); }
144  .breadcrumb li[aria-current] { color: var(--ink-2); font-weight: 500; }
145  .breadcrumb .sep { color: var(--border-strong); }
146
147  /* =========================================================
148     MASTHEAD ÉDITORIAL (entête d'article, sobre, aligné gauche)
149     ========================================================= */
150  .masthead { padding: 30px 0 0; }
151  .masthead .eyebrow { margin-bottom: 18px; }
152  .masthead h1 { font-size: clamp(33px, 4.4vw, 52px); line-height: 1.06; letter-spacing: -0.032em; max-width: 20ch; margin: 0 0 20px; text-wrap: balance; }
153  .masthead .standfirst { font-size: clamp(17px, 1.55vw, 20px); line-height: 1.55; color: var(--ink-2); max-width: 62ch; margin: 0 0 26px; text-wrap: pretty; }
154  .masthead .standfirst strong { color: var(--ink); font-weight: 600; }
155  .masthead .standfirst a { color: var(--accent); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
156  .article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; font-size: 13px; color: var(--ink-3); padding-bottom: 28px; border-bottom: 1px solid var(--border); }
157  .article-meta .am { display: inline-flex; align-items: center; gap: 7px; }
158  .article-meta svg { width: 14px; height: 14px; color: var(--ink-3); }
159  .article-meta .dot-sep { width: 3px; height: 3px; border-radius: 999px; background: var(--border-strong); }
160  .article-meta .author { font-weight: 600; color: var(--ink-2); }
161
162  /* =========================================================
163     GRILLE ARTICLE  (corps + sommaire collant)
164     ========================================================= */
165  .article { padding: 44px 0 88px; }
166  .article-grid { display: grid; grid-template-columns: minmax(0, 1fr) 284px; gap: 72px; align-items: start; }
167  .article-body { min-width: 0; }
168  .article-body > section { margin: 0 0 60px; scroll-margin-top: 92px; }
169  .article-body > section:last-child { margin-bottom: 0; }
170
171  /* ----- en-tête de bloc ----- */
172  .block-head { margin: 0 0 22px; }
173  .block-head .kicker { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); margin-bottom: 12px; }
174  .block-head h2 { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(28px, 3.3vw, 40px); letter-spacing: -0.02em; line-height: 1.08; }
175  .block-head .intro { color: var(--ink-2); font-size: 16px; line-height: 1.6; margin: 12px 0 0; max-width: 60ch; }
176
177  /* ----- prose ----- */
178  .prose p { color: var(--ink-2); font-size: 16.5px; line-height: 1.75; margin: 0 0 20px; max-width: 68ch; text-wrap: pretty; }
179  .prose p:last-child { margin-bottom: 0; }
180  .prose a { color: var(--accent); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
181  .prose a:hover { color: var(--accent-strong); }
182  .prose p.lead::first-letter { font-family: var(--serif); font-style: italic; font-size: 3.3em; line-height: .82; float: left; margin: 5px 12px 0 0; color: var(--accent); }
183  .prose h3 { font-size: 20px; font-weight: 600; letter-spacing: -0.01em; margin: 34px 0 10px; }
184
185  /* ----- secteurs (tags calmes) ----- */
186  .sector-block { margin: 26px 0 0; padding: 20px 22px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
187  .sector-block .lbl { font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 12px; }
188  .sector-tags { display: flex; flex-wrap: wrap; gap: 8px; }
189  .sector-tags .tag { font-size: 13px; color: var(--ink-2); background: #fff; border: 1px solid var(--border); border-radius: 7px; padding: 5px 11px; }
190
191  /* ----- rôle : liste de définitions à icônes (aplati) ----- */
192  .role-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 36px; }
193  .role-item { display: flex; gap: 14px; padding: 22px 0; border-top: 1px solid var(--border); }
194  .role-item .ic { width: 38px; height: 38px; border-radius: 9px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; flex-shrink: 0; }
195  .role-item .ic svg { width: 19px; height: 19px; }
196  .role-item h3 { font-size: 16px; font-weight: 600; margin: 0 0 4px; letter-spacing: -0.01em; }
197  .role-item h3 a { color: var(--ink); } .role-item h3 a:hover { color: var(--accent); }
198  .role-item p { font-size: 14.5px; color: var(--ink-2); line-height: 1.55; margin: 0; }
199  .role-item p a { color: var(--accent); font-weight: 500; }
200
201  /* ----- tableau comparatif ----- */
202  .ctable-wrap { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
203  table.ctable { width: 100%; border-collapse: collapse; font-size: 14.5px; }
204  table.ctable th, table.ctable td { text-align: left; padding: 15px 18px; vertical-align: top; line-height: 1.45; }
205  table.ctable thead th { font-size: 12.5px; font-weight: 700; letter-spacing: 0.02em; background: var(--ink); color: var(--inverse-fg); }
206  table.ctable thead th:first-child { color: var(--inverse-fg-2); font-weight: 600; }
207  table.ctable thead th.me { position: relative; }
208  table.ctable thead th.me::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--accent); }
209  table.ctable tbody th { font-weight: 600; color: var(--ink); width: 30%; }
210  table.ctable tbody td { color: var(--ink-2); }
211  table.ctable tbody td.me { color: var(--ink); font-weight: 500; background: rgba(194,65,12,0.04); }
212  table.ctable tbody tr:nth-child(even) td:not(.me), table.ctable tbody tr:nth-child(even) th { background: var(--surface); }
213  table.ctable tbody tr + tr { border-top: 1px solid var(--border); }
214  @media (max-width: 600px) {
215    table.ctable thead { display: none; }
216    table.ctable tbody th, table.ctable tbody td { display: block; width: auto; padding: 5px 16px; }
217    table.ctable tbody th { padding-top: 16px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-3); }
218    table.ctable tbody td::before { content: attr(data-label) " · "; font-weight: 600; color: var(--ink); }
219    table.ctable tbody td.me { background: transparent; } table.ctable tbody td:last-child { padding-bottom: 14px; }
220  }
221
222  /* ----- checklist (quand faire appel) ----- */
223  .checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 36px; }
224  .check-item { display: flex; gap: 13px; }
225  .check-item .tick { width: 24px; height: 24px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; flex-shrink: 0;
225 margin-top: 1px; }
226  .check-item .tick svg { width: 13px; height: 13px; }
227  .check-item h3 { font-size: 15.5px; font-weight: 600; margin: 0 0 4px; line-height: 1.35; }
228  .check-item p { font-size: 14px; color: var(--ink-2); line-height: 1.55; margin: 0; }
229
230  /* ----- étapes (méthode, liste numérotée verticale) ----- */
231  .steps { display: grid; gap: 0; }
232  .step { display: flex; gap: 18px; padding: 20px 0; border-top: 1px solid var(--border); }
233  .step:last-child { border-bottom: 1px solid var(--border); }
234  .step .n { width: 34px; height: 34px; border-radius: 999px; border: 1px solid var(--border-strong); color: var(--ink); font-weight: 700; font-size: 14px; display: grid; place-items: center; flex-shrink: 0; font-family: var(--sans); }
235  .step .n.is-accent { background: var(--accent); border-color: var(--accent); color: #fff; }
236  .step h3 { font-size: 16px; font-weight: 600; margin: 0 0 4px; }
237  .step p { font-size: 14.5px; color: var(--ink-2); line-height: 1.55; margin: 0; }
238
239  /* ----- callout (encart inline) ----- */
240  .callout { border: 1px solid var(--border); border-left: 3px solid var(--accent); border-radius: 0 12px 12px 0; background: var(--surface); padding: 22px 24px; margin: 28px 0 0; }
241  .callout p { margin: 0; font-size: 15px; color: var(--ink-2); line-height: 1.6; }
242  .callout .btn { margin-top: 16px; }
243
244  /* ----- FAQ accordéon ----- */
245  .faq-cat { font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); margin: 28px 0 14px; }
246  .faq-cat:first-of-type { margin-top: 0; }
247  .faq-list { display: grid; gap: 10px; }
248  .faq-item { background: #fff; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; transition: border-color .2s ease; }
249  .faq-item[open] { border-color: var(--border-strong); }
250  .faq-q { width: 100%; text-align: left; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 15.5px; font-weight: 600; color: var(--ink); line-height: 1.4; cursor: pointer; }
251  .faq-chevron { flex-shrink: 0; color: var(--accent); transition: transform .3s ease; width: 17px; height: 17px; }
252  .faq-item[open] .faq-chevron { transform: rotate(180deg); }
253  .faq-a { padding: 0 20px 20px; color: var(--ink-2); font-size: 14.5px; line-height: 1.65; }
254  .faq-a a { color: var(--accent); font-weight: 500; }
255  details > summary { list-style: none; cursor: pointer; }
256  details > summary::-webkit-details-marker { display: none; }
257  details > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
258
259  /* ----- maillage interne ----- */
260  .related-list { display: grid; gap: 10px; }
261  .related-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid var(--border);
262    border-radius: 11px; padding: 16px 20px; background: var(--surface); transition: border-color .2s ease, transform .2s ease, background .2s ease; }
263  .related-link:hover { border-color: var(--accent); transform: translateX(2px); background: #fff; }
264  .related-link span { font-size: 15px; font-weight: 600; color: var(--ink); }
265  .related-link .arrow { width: 17px; height: 17px; color: var(--accent); flex-shrink: 0; }
266
267  /* =========================================================
268     SIDEBAR, sommaire collant + carte CTA
269     ========================================================= */
270  .article-aside { position: sticky; top: 92px; display: grid; gap: 18px; }
271  .toc { border: 1px solid var(--border); border-radius: 14px; padding: 20px 18px; background: #fff; }
272  .toc .toc-title { font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-3); font-weight: 600; margin: 0 0 12px; padding: 0 8px; }
273  .toc ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; }
274  .toc a { display: block; font-size: 13.5px; color: var(--ink-2); padding: 7px 10px; border-radius: 8px; border-left: 2px solid transparent; line-height: 1.35; transition: color .15s, background .15s, border-color .15s; }
275  .toc a:hover { color: var(--ink); background: var(--surface); }
276  .toc a.active { color: var(--accent); border-left-color: var(--accent); font-weight: 600; background: var(--accent-soft); }
277  .aside-cta { border: 1px solid var(--border); border-radius: 14px; padding: 22px; background: var(--bg-soft); }
278  .aside-cta .ac-eyebrow { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; color: var(--accent); margin-bottom: 10px; }
279  .aside-cta .ac-eyebrow .pulse { position: relative; width: 7px; height: 7px; }
280  .aside-cta .ac-eyebrow .pulse::after { content: ''; position: absolute; inset: 0; border-radius: 999px; background: #16A34A; }
281  .aside-cta h4 { font-family: var(--sans); font-size: 16px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); margin: 0 0 8px; }
282  .aside-cta p { font-size: 13.5px; color: var(--ink-2); line-height: 1.5; margin: 0 0 16px; }
283  .aside-cta .btn { width: 100%; }
284
285  @media (max-width: 960px) {
286    .article-grid { grid-template-columns: 1fr; gap: 0; }
287    .article-aside { position: static; grid-template-columns: 1fr; margin-top: 40px; }
288    .toc { display: none; }
289  }
290
291  /* =========================================================
292     CONTACT (variante claire, calme)
293     ========================================================= */
294  .contact-block { padding: 84px 0; background: var(--bg-soft); border-top: 1px solid var(--border); }
295  .contact-head { text-align: center; max-width: 580px; margin: 0 auto 40px; }
296  .contact-head h2 { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(30px, 3.4vw, 42px); letter-spacing: -0.02em; margin: 14px 0 12px; }
297  .contact-head p { color: var(--ink-2); font-size: 16px; line-height: 1.6; margin: 0; }
298  .contact-card { max-width: 760px; margin: 0 auto; background: #fff; border: 1px solid var(--border); border-radius: var(--radius); padding: 40px; box-shadow: var(--shadow-sm); }
299  form.contact { display: grid; gap: 22px; }
300  .field { display: grid; gap: 7px; }
301  .field label { font-size: 13px; font-weight: 500; color: var(--ink-2); }
302  .field input, .field textarea { background: #fff; border: 1px solid var(--border-strong); color: var(--ink);
303    font-family: var(--sans); font-size: 15px; padding: 11px 13px; border-radius: 8px; outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
304  .field input:focus, .field textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(194,65,12,0.14); }
305  .field textarea { resize: vertical; min-height: 96px; }
306  .field input::placeholder, .field textarea::placeholder { color: var(--ink-3); }
307  .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
308  .radio-group { display: flex; flex-wrap: wrap; gap: 8px; }
309  .radio-pill { position: relative; }
310  .radio-pill input { position: absolute; opacity: 0; pointer-events: none; }
311  .radio-pill label { display: inline-flex; align-items: center; border: 1px solid var(--border-strong); background: #fff;
312    color: var(--ink-2); font-size: 13.5px; padding: 9px 13px; border-radius: 8px; cursor: pointer; transition: border-color .2s ease, background .2s ease, color .2s ease; }
313  .radio-pill input:checked + label { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-strong); font-weight: 600; }
314  .radio-pill input:focus-visible + label { outline: 2px solid var(--accent); outline-offset: 2px; }
315  form.contact .submit-row { display: flex; flex-direction: column; gap: 14px; align-items: stretch; }
316  form.contact .btn-primary { height: 48px; font-size: 15px; }
317  .rgpd { font-size: 12px; color: var(--ink-3); text-align: center; line-height: 1.5; margin: 0; }
318  .rgpd a { color: var(--ink-2); text-decoration: underline; text-underline-offset: 2px; }
319  @media (max-width: 600px) { .field-row { grid-template-columns: 1fr; } .contact-card { padding: 26px; } }
320
321  /* =========================================================
322     FOOTER  (module partagé)
323     ========================================================= */
324  footer.site-footer { background: var(--inverse-bg); color: var(--inverse-fg); padding: 72px 0 40px; }
325  footer .foot-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 56px; }
326  footer h4 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--inverse-fg-2); margin: 0 0 18px; font-weight: 600; }
327  footer .col-1 .brand { color: var(--inverse-fg); }
328  footer .col-1 .brand-mark { background: var(--accent); }
329  footer .tagline { font-size: 14px; color: var(--inverse-fg-2); margin: 16px 0 18px; max-width: 320px; line-height: 1.55; }
330  footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
331  footer a { color: var(--inverse-fg); font-size: 14px; }
332  footer a:hover { color: var(--accent); }
333  .foot-email { color: var(--inverse-fg); display: inline-block; font-weight: 500; }
334  .foot-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 28px; border-top: 1px solid #27272A; gap: 24px; flex-wrap: wrap; }
335  .foot-bottom .copy { font-size: 13px; color: var(--inverse-fg-2); }
336  .foot-social { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
337  .foot-social a { display: inline-flex; padding: 4px; }
338  .foot-social svg { width: 20px; height: 20px; fill: currentColor; display: block; }
339  @media (max-width: 900px) { footer .foot-grid { grid-template-columns: 1fr 1fr; } }
340  @media (max-width: 600px) { footer .foot-grid { grid-template-columns: 1fr; } }
341
342  /* RESPONSIVE, colonnes contenu */
343  @media (max-width: 560px) {
344    .role-list { grid-template-columns: 1fr; }
345    .checklist { grid-template-columns: 1fr; }
346  }
347
348  /* FADE-UP + FOCUS */
349  .fade-up { opacity: 0; transform: translateY(14px); transition: opacity .55s ease-out, transform .55s ease-out; }
350  .fade-up.in { opacity: 1; transform: translateY(0); }
351  a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 4px; }
352
353  /* --- Le nom de marque ne doit jamais passer a la ligne (fix 11/08/2026) --- */
354  .brand span { white-space: nowrap; }
355  @media (max-width: 520px) {
356    .brand { font-size: 14.5px; gap: 8px; }
357    .brand-mark { width: 28px; height: 28px; }
358    .header-cta { gap: 8px; }
359    .header-cta .btn { padding: 9px 11px; font-size: 12.5px; }
360  }
361  @media (max-width: 400px) {
362    .brand { font-size: 13px; gap: 7px; }
363    .brand-mark { width: 26px; height: 26px; }
364    .header-cta { gap: 6px; }
365    .header-cta .btn { padding: 8px 9px; font-size: 11.5px; }
366    .site-header .inner { padding-left: 14px; padding-right: 14px; }
367  }
368  /* Sous 360px, le CTA du header cede la place : il reste dans le menu burger. */
369  @media (max-width: 359px) { .header-cta > .btn { display: none; } }
370</style>
371</head>
372<body>
373
374<!-- MODULE, HEADER (identique sur toutes les pages) -->
375<header class="site-header" data-screen-label="Header">
376  <div class="inner">
377    <div class="brand-group">
378      <a href="https://sydney-boisseau.com/" class="brand">
379        <img loading="lazy" decoding="async" src="/assets/logo-mark-512.png" alt="Sydney Boisseau" class="brand-mark" width="32" height="32" style="background:none;object-fit:contain;padding:0" />
380        <span class="brand-name">Sydney Boisseau</span>
381      </a>
382    </div>
383    <nav class="site-nav" aria-label="Navigation principale">
384      <a href="/consultant-google-ads/" class="current">Consultant</a>
385      <a href="/google-ads/audit/">Audit</a>
386      <a href="/google-ads/formation/">Formation</a>
387      <a href="/consultant-google-ads/tarifs/">Tarifs</a>
388    </nav>
389    <div class="header-cta">
390      <a href="#contact" class="btn btn-primary"><span>Réserver 30 min</span></a>
391      <button class="hamburger" id="hamburger" aria-label="Ouvrir le menu" aria-expanded="false" aria-controls="mobileMenu">
392        <svg class="ic-open" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
393        <svg class="ic-close" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><line x1="5" y1="5" x2="19" y2="19"/><line x1="19" y1="5" x2="5" y2="19"/></svg>
394      </button>
395    </div>
396  </div>
397</header>
398
399<!-- MODULE, MENU MOBILE (panneau déroulant, ≤800px) -->
400<div class="menu-backdrop" id="menuBackdrop" aria-hidden="true"></div>
401<div class="mobile-menu" id="mobileMenu">
402  <nav aria-label="Navigation mobile">
403    <a class="mm-link current" href="/consultant-google-ads/">Consultant</a>
404    <a class="mm-link" href="/google-ads/audit/">Audit</a>
405    <a class="mm-link" href="/google-ads/formation/">Formation</a>
406    <a class="mm-link" href="/consultant-google-ads/tarifs/">Tarifs</a>
407  </nav>
408  <div class="mm-cta">
409    <a href="#contact" class="btn btn-primary">Réserver 30 min</a>
410  </div>
411</div>
412
413<main id="top">
414<!-- ============================================================
415     BREADCRUMB
416     ============================================================ -->
417<nav class="breadcrumb wrap" aria-label="Fil d'ariane" data-screen-label="Breadcrumb">
418  <ol>
419    <li><a href="https://sydney-boisseau.com/">Accueil</a></li>
420    <li class="sep" aria-hidden="true">›</li>
421    <li><a href="/google-ads/">Google Ads</a></li>
422    <li class="sep" aria-hidden="true">›</li>
423    <li aria-current="page">Audit Google Ads</li>
424  </ol>
425</nav>
426
427<header class="masthead wrap" data-screen-label="Masthead">
428  <span class="eyebrow"><span class="dot"></span> Audit Google Ads</span>
429  <h1>Audit Google&nbsp;Ads : 35 points contrôlés, plan d'action en <em>72&nbsp;h</em></h1>
430  <p class="standfirst">Analyse complète de la structure, du ciblage, des annonces et du <a href="/google-tag-manager/">tracking</a>. L'objectif : un <strong>rapport visuel + un plan d'action priorisé</strong> en 3 jours ouvrés, pour savoir exactement où part votre budget et comment l'optimiser.</p>
431  <div class="article-meta">
432    <span class="am author">Par Sydney Boisseau</span>
433    <span class="dot-sep" aria-hidden="true"></span>
434    <span class="am"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg> ≈ 7 min de lecture</span>
435    <span class="dot-sep" aria-hidden="true"></span>
436    <span class="am"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9h18M7 3v3M17 3v3"/><rect x="3" y="5" width="18" height="16" rx="2"/></svg> Mis à jour le 7 mai 2026</span>
437    <span class="dot-sep" aria-hidden="true"></span>
438    <span class="am"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"/></svg> Certifié Google Ads</span>
439  </div>
440</header>
441
442<div class="article">
443  <div class="wrap article-grid">
444    <div class="article-body">
445
446      <section id="intro" class="prose fade-up" data-screen-label="Intro">
447        <p class="lead">Un audit <a href="/google-ads/">Google Ads</a> professionnel est bien plus qu'une vérification de surface. Là où les outils automatiques de Google analysent des métriques génériques, un audit mené par un consultant expérimenté examine en profondeur la structure, le ciblage, les annonces et le tracking pour identifier les vraies causes d'un ROAS décevant ou d'un budget mal alloué.</p>
448        <p>Un audit raté, ou délégué à un outil automatique, conduit à des décisions basées sur des données incomplètes et compromet vos investissements publicitaires. L'enjeu : comprendre non seulement ce qui ne fonctionne pas, mais pourquoi, et définir les priorités pour y remédier avec un plan d'action concret et priorisé.</p>
449        <div class="sector-block">
450          <p class="lbl">Secteurs accompagnés</p>
451          <div class="sector-tags">
452            <span class="tag">Services B2C</span>
453            <span class="tag">Services B2B</span>
454            <span class="tag">E-commerce</span>
455            <span class="tag">Applications mobiles</span>
456            <span class="tag">TPE &amp; PME</span>
457            <span class="tag">Restauration</span>
458            <span class="tag">Sport &amp; Bien-être</span>
459            <span class="tag">Mode</span>
460            <span class="tag">Enseignement</span>
461            <span class="tag">Automobile</span>
462          </div>
463        </div>
464      </section>
465
466      <section id="points" class="fade-up" data-screen-label="Les 35 points">
467        <div class="block-head">
468          <span class="kicker">Périmètre</span>
469          <h2>Les 35 points contrôlés</h2>
470          <p class="intro">Six dimensions analysées en profondeur. Chaque point est documenté, capturé et évalué selon son niveau de criticité.</p>
471        </div>
472        <div class="role-list">
473          <div class="role-item">
474            <div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></svg></div>
475            <div><h3>Structure du compte, 8 points</h3><p>Architecture campagnes / groupes, naming conventions, partage de budget, stratégies d'enchères, ciblage géo et device, calendrier de diffusion, audiences (in-market, similaires), exclusions emplacements.</p></div>
476          </div>
477          <div class="role-item">
478            <div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/></svg></div>
479            <div><h3>Ciblage et mots-clés, 7 points</h3><p>Pertinence des mots-clés, types de correspondance, couverture des intentions, mots-clés négatifs (compte + campagne), termes de recherche déclencheurs, audiences en observation vs targeting, cannibalisation entre campagnes.</p></div>
480          </div>
481          <div class="role-item">
482            <div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4z"/></svg></div>
483            <div><h3>Annonces et créa, 6 points</h3><p>Pertinence titres / descriptions, extensions actives (sitelinks, callouts), score de qualité par mot-clé, tests A/B en cours, pertinence images PMAX / Display, cohérence annonce / landing page.</p></div>
484          </div>
485          <div class="role-item">
486            <div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7.5 3H21v13.5L12 21l-9-9z"/><circle cx="8.5" cy="8.5" r="1.4"/></svg></div>
487            <div><h3>Tracking et conversions, 7 points</h3><p>Conversions configurées, doublons / tracking serveur, modèle d'attribution, liaison <a href="/google-analytics/">GA4</a>, liaison Search Console, Enhanced Conversions activées, Consent Mode (RGPD).</p></div>
488          </div>
489          <div class="role-item">
490            <div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="3 17 9 11 13 15 21 7"/><polyline points="15 7 21 7 21 13"/></svg></div>
491            <div><h3>Performance et budget, 5 points</h3><p>CPC moyens vs marché, CPA / ROAS par campagne, distribution budget vs ROI, saisonnalité et tendances, comparaison vs benchmark secteur.</p></div>
492          </div>
493          <div class="role-item">
494            <div class="ic"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="9"/><polygon points="16 8 10 10 8 16 14 14"/></svg></div>
495            <div><h3>Stratégie globale, 2 points</h3><p>Cohérence avec les objectifs business, roadmap 90 jours recommandée pour repartir avec un cap clair après la restitution.</p></div>
496          </div>
497        </div>
498      </section>
499
500      <section id="comparatif" class="fade-up" data-screen-label="Comparatif">
501        <div class="block-head">
502          <span class="kicker">Faire le bon choix</span>
503          <h2>Audit professionnel ou audit automatique&nbsp;?</h2>
504          <p class="intro">Ce qui change concrètement par rapport aux recommandations automatiques proposées par Google.</p>
505        </div>
506        <div class="ctable-wrap">
507          <table class="ctable">
508            <thead>
509              <tr><th scope="col">Critère</th><th scope="col" class="me">Audit professionnel</th><th scope="col">Audit automatique Google</th></tr>
510            </thead>
511            <tbody>
512              <tr><th scope="row">Profondeur</th><td class="me" data-label="Audit pro">35 points : structure, ciblage, annonces, tracking, stratégie</td><td data-label="Audit auto">Métriques de surface (CTR, CPA moyen)</td></tr>
513              <tr><th scope="row">Personnalisation</th><td class="me" data-label="Audit pro">Analyse adaptée à votre secteur et vos objectifs business</td><td data-label="Audit auto">Recommandations génériques, sans contexte</td></tr>
514              <tr><th scope="row">Tracking</th><td class="me" data-label="Audit pro">7 points dédiés : GA4, Consent Mode, Enhanced Conversions</td><td data-label="Audit auto">Non vérifié</td></tr>
515              <tr><th scope="row">Livrables</th><td class="me" data-label="Audit pro">Rapport PDF 15-25 pages + plan d'action priorisé</td><td data-label="Audit auto">Suggestions in-interface, sans document</td></tr>
516              <tr><th scope="row">Restitution</th><td class="me" data-label="Audit pro">Visio 45 min pour expliquer et prioriser</td><td data-label="Audit auto">Aucune</td></tr>
517              <tr><th scope="row">Délai</th><td class="me" data-label="Audit pro">Livré en 72 h ouvrées</td><td data-label="Audit auto">Immédiat mais incomplet</td></tr>
518            </tbody>
519          </table>
520        </div>
521      </section>
522
523      <section id="livrables" class="fade-up" data-screen-label="Ce que vous recevez">
524        <div class="block-head">
525          <span class="kicker">Livrables</span>
526          <h2>Ce que vous recevez</h2>
527          <p class="intro">Quatre livrables concrets pour repartir avec un cap clair et des priorités établies.</p>
528        </div>
529        <div class="checklist">
530          <div class="check-item"><div class="tick"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6"><polyline points="20 6 9 17 4 12"/></svg></div><div><h3>Rapport visuel PDF (15-25 pages)</h3><p>Captures d'écran, observations et niveau de criticité par point. Lisible par un dirigeant non technique.</p></div></div>
531          <div class="check-item"><div class="tick"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6"><polyline points="20 6 9 17 4 12"/></svg></div><div><h3>Plan d'action priorisé</h3><p>Liste des actions classées par impact / effort. Quick wins en haut, optimisations long terme en bas.</p></div></div>
532          <div class="check-item"><div class="tick"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6"><polyline points="20 6 9 17 4 12"/></svg></div><div><h3>Tableau de bord Looker (en option)</h3><p>Dashboard de pilotage personnalisé pour suivre les indicateurs clés post-audit.</p></div></div>
533          <div class="check-item"><div class="tick"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.6"><polyline points="20 6 9 17 4 12"/></svg></div><div><h3>Visio de restitution (45 min)</h3><p>Présentation des conclusions, échanges sur les priorités, questions ouvertes répondues en live.</p></div></div>
534        </div>
535      </section>
536
537      <section id="methode" class="fade-up" data-screen-label="Méthode">
538        <div class="block-head">
539          <span class="kicker">Méthode</span>
540          <h2>L'audit en 72&nbsp;h : comment ça se passe&nbsp;?</h2>
541          <p class="intro">Quatre étapes du premier échange à la restitution des livrables.</p>
542        </div>
543        <div class="steps">
544          <div class="step"><div class="n is-accent">1</div><div><h3>Échange initial + accès comptes</h3><p>Brief de 20 min : objectifs business, historique, contraintes. Accès en lecture aux comptes Google Ads, GA4 et GTM.</p></div></div>
545          <div class="step"><div class="n is-accent">2</div><div><h3>Audit en profondeur</h3><p>Passage des 35 points sur le compte. Captures, prises de notes, identification des anomalies critiques.</p></div></div>
546          <div class="step"><div class="n is-accent">3</div><div><h3>Rapport et plan d'action</h3><p>Rédaction du rapport visuel, hiérarchisation des actions par impact / effort, préparation de la restitution.</p></div></div>
547          <div class="step"><div class="n is-accent">4</div><div><h3>Restitution + livrables</h3><p>Visio de 45 min pour présenter les conclusions, partage du rapport et du plan d'action. Vous repartez avec un cap clair.</p></div></div>
548        </div>
549        <div class="callout">
550          <p>Le premier échange est gratuit et sans engagement. On regarde ensemble ce que révèle votre compte et quelles actions auraient le plus d'impact immédiat.</p>
551          <a href="#contact" class="btn btn-primary">Réserver mon audit
552            <svg class="arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
553          </a>
554        </div>
555      </section>
556
557      <section id="strategie" class="prose fade-up" data-screen-label="Approche stratégique">
558        <div class="block-head">
559          <span class="kicker">Aller plus loin</span>
560          <h2>Mettre en oeuvre les recommandations</h2>
561        </div>
562        <p>Une fois l'audit terminé, l'enjeu est de transformer le plan d'action en résultats concrets. Le rapport priorise les actions selon leur impact et leur effort : certaines peuvent être appliquées en quelques heures, d'autres s'inscrivent dans une optimisation sur plusieurs semaines.</p>
563        <h3>Quick wins vs optimisations long terme</h3>
564        <p>Les quick wins, exclusion de mots-clés non pertinents, correction d'un tracking défaillant, ajustement d'une stratégie d'enchères, sont identifiés en priorité. Ils libèrent rapidement du budget mal alloué et améliorent la qualité des données sur lesquelles Google Ads s'appuie pour optimiser. Les chantiers structurels (refonte de campagnes, tests créatifs, stratégie PMAX) s'inscrivent dans la roadmap 90 jours incluse dans le rapport.</p>
565        <h3>Le tracking d'abord</h3>
566        <p>Un point revient systématiquement dans les audits : le tracking. Conversions doublées, GA4 mal lié, Consent Mode absent, modèle d'attribution par défaut, sans données fiables, Google Ads optimise sur de mauvaises bases. Corriger le tracking est souvent la première étape, avant même de toucher aux enchères ou aux annonces.</p>
567        <h3>Après l'audit : accompagnement ou autonomie&nbsp;?</h3>
568        <p>L'audit est conçu pour être exploitable en autonomie : le plan d'action est suffisamment détaillé pour être mis en oeuvre sans aide extérieure. Si vous souhaitez déléguer l'exécution, une <a href="/consultant-google-ads/">mission de gestion</a> peut prendre le relais directement. Si vous préférez monter en compétences en interne, une <a href="/google-ads/formation/">formation</a> d'un à deux jours permet à votre équipe de prendre en main les recommandations.
568</p>
569      </section>
570
571      <section id="faq" class="fade-up" data-screen-label="FAQ">
572        <div class="block-head">
573          <span class="kicker">FAQ</span>
574          <h2>Questions fréquentes</h2>
575          <p class="intro">Tout ce qu'on me demande avant de commander un audit. Une autre question ? <a href="#contact" style="color:var(--accent);font-weight:600">Écrivez-moi.</a></p>
576        </div>
577
578        <p class="faq-cat">Sur le contenu de l'audit</p>
579        <div class="faq-list">
580          <details class="faq-item"><summary class="faq-q"><span>Que couvre exactement l'audit en 35 points ?</span><svg class="faq-chevron" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="3,6 8,11 13,6"/></svg></summary><div class="faq-a">Six dimensions : structure du compte (8 pts), ciblage et mots-clés (7 pts), annonces et créatifs (6 pts), tracking et conversions (7 pts), performance et budget (5 pts), stratégie globale (2 pts). Chaque point est documenté avec une capture d'écran et un niveau de criticité explicite.</div></details>
581          <details class="faq-item"><summary class="faq-q"><span>Quelle différence avec l'audit automatique proposé par Google ?</span><svg class="faq-chevron" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="3,6 8,11 13,6"/></svg></summary><div class="faq-a">L'audit automatique de Google se concentre sur des métriques de surface (CTR, CPA) sans prendre en compte votre contexte business, la qualité de votre tracking ou la pertinence stratég
581ique de vos campagnes. Un audit professionnel couvre 35 points, livre un rapport visuel et un plan d'action priorisé, pas de simples suggestions in-interface.</div></details>
582          <details class="faq-item"><summary class="faq-q"><span>Le tracking est-il inclus dans le périmètre de l'audit ?</span><svg class="faq-chevron" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="3,6 8,11 13,6"/></svg></summary><div class="faq-a">Oui, 7 points sont dédiés au tracking : conversions configurées, doublons, modèle d'attribution, liaison GA4, liaison Search Console, Enhanced Conversions et Consent Mode RGPD. C'est souvent là que se cachent les anomalies les plus impactantes sur la qualité des données.</div></details>
583        </div>
584
585        <p class="faq-cat">Pratique et livrables</p>
586        <div class="faq-list">
587          <details class="faq-item"><summary class="faq-q"><span>Quels accès vous faut-il pour démarrer ?</span><svg class="faq-chevron" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="3,6 8,11 13,6"/></svg></summary><div class="faq-a">Un accès en lecture au compte Google Ads, à GA4 et à GTM suffit. Vous restez propriétaire de vos comptes et de toutes les données. L'accès est accordé via votre Google Ads Manager Account, aucun partage de mot de passe n'est nécessaire.</div></details>
588          <details class="faq-item"><summary class="faq-q"><span>L'audit est-il vraiment livré en 72 h dans tous les cas ?</span><svg class="faq-chevron" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="3,6 8,11 13,6"/></svg></summary><div class="faq-a">72 h ouvrées après réception des accès et du brief. Ce délai couvre l'analyse complète des 35 points, la rédaction du rapport visuel et la préparation de la visio de restitution.</div></details>
589          <details class="faq-item"><summary class="faq-q"><span>Que se passe-t-il après la restitution de l'audit ?</span><svg class="faq-chevron" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><polyline points="3,6 8,11 13,6"/></svg></summary><div class="faq-a">Vous recevez le rapport PDF, le plan d'action priorisé et nous tenons la visio de restitution. Ensuite, vous avez le choix : mettre en oeuvre les recommandations seul, déléguer la gestion via une <a href="/consultant-google-ads/">mission d'accompagnement</a>, ou former votre équipe avec une <a href="/google-ads/formation/">formation Google Ads</a>.</div></details>
590        </div>
591      </section>
592
593      <section id="ressources" class="fade-up" data-screen-label="Ressources">
594        <div class="block-head">
595          <span class="kicker">Ressources</span>
596          <h2>Pour aller plus loin</h2>
597        </div>
598        <div class="related-list">
599          <a class="related-link" href="/consultant-google-ads/"><span>Consultant Google Ads freelance</span><svg class="arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
600          <a class="related-link" href="/google-tag-manager/"><span>Mise en place du tracking GTM</span><svg class="arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
601          <a class="related-link" href="/google-ads/formation/"><span>Formation Google Ads</span><svg class="arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
602          <a class="related-link" href="/consultant-google-ads/tarifs/"><span>Tarifs consultant Google Ads</span><svg class="arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><path d="M5 12h14M13 6l6 6-6 6"/></svg></a>
603        </div>
604      </section>
605
606    </div>
607
608    <aside class="article-aside" data-screen-label="Sommaire">
609      <nav class="toc" aria-label="Sommaire">
610        <p class="toc-title">Sur cette page</p>
611        <ul>
612          <li><a href="#intro">Introduction</a></li>
613          <li><a href="#points">Les 35 points</a></li>
614          <li><a href="#comparatif">Audit pro vs automatique</a></li>
615          <li><a href="#livrables">Ce que vous recevez</a></li>
616          <li><a href="#methode">L'audit en 72&nbsp;h</a></li>
617          <li><a href="#strategie">Après l'audit</a></li>
618          <li><a href="#faq">Questions fréquentes</a></li>
619          <li><a href="#ressources">Pour aller plus loin</a></li>
620        </ul>
621      </nav>
622      <div class="aside-cta">
623        <span class="ac-eyebrow"><span class="pulse"></span> Disponible</span>
624        <h4>Réserver mon audit</h4>
625        <p>35 points contrôlés, rapport visuel + plan d'action priorisé. Livré en 72 h ouvrées. Sans engagement.</p>
626        <a href="#contact" class="btn btn-primary">Réserver mon audit</a>
627      </div>
628    </aside>
629
630  </div>
631</div><section class="contact-block" id="contact" data-screen-label="Contact">
632  <div class="wrap">
633    <div class="contact-head">
634      <span class="eyebrow"><span class="dot"></span> Parlons-en</span>
635      <h2>Parlez-moi de votre projet</h2>
636      <p>Un message, je réponds sous 24&nbsp;h ouvrées. Si on est aligné, on cale un appel de 30 minutes, gratuit, sans pitch commercial.</p>
637    </div>
638    <div class="contact-card">
639      <form class="contact" id="contactForm" novalidate>
640        <div class="field-row">
641          <div class="field"><label for="firstname">Prénom &amp; nom</label><input type="text" id="firstname" name="firstname" placeholder="Camille Aubert" required /></div>
642          <div class="field"><label for="company">Entreprise</label><input type="text" id="company" name="company" placeholder="Nom de votre société" /></div>
643        </div>
644        <div class="field-row">
645          <div class="field"><label for="email">Email professionnel</label><input type="email" id="email" name="email" placeholder="[email protected]" required /></div>
646          <div class="field"><label for="website">Site web</label><input type="url" id="website" name="website" placeholder="https://" /></div>
647        </div>
648        <div class="field">
649          <label>Budget publicitaire mensuel *</label>
650          <div class="radio-group">
651            <span class="radio-pill"><input type="radio" id="b1" name="budget" value="under-1k" required><label for="b1">&lt; 1 000 €</label></span>
652            <span class="radio-pill"><input type="radio" id="b2" name="budget" value="1-2k"><label for="b2">1 000 – 2 000 €</label></span>
653            <span class="radio-pill"><input type="radio" id="b3" name="budget" value="2-5k"><label for="b3">2 000 – 5 000 €</label></span>
654            <span class="radio-pill"><input type="radio" id="b4" name="budget" value="5-10k"><label for="b4">5 000 – 10 000 €</label></span>
655            <span class="radio-pill"><input type="radio" id="b5" name="budget" value="over-10k"><label for="b5">&gt; 10 000 €</label></span>
656          </div>
657        </div>
658        <div class="field"><label for="message">Votre projet en quelques mots</label><textarea id="message" name="message" placeholder="Objectifs, comptes existants, contexte…" required></textarea></div>
659        <div class="submit-row">
660          <button type="submit" class="btn btn-primary">Envoyer ma demande
661            <svg class="arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
662          </button>
663          <p class="rgpd">Vos données ne servent qu'à vous recontacter. Aucune revente, aucune newsletter automatique. <a href="/mentions-legales/">Mentions légales</a>.</p>
664        </div>
665      </form>
666    </div>
667  </div>
668</section>
669
670</main>
671
672<!-- MODULE, FOOTER (identique sur toutes les pages) -->
673<footer class="site-footer" data-screen-label="Footer"><style id="sb-seo-footer-css">.sb-footer-heading{display:block;font-weight:700;margin:0 0 .5em;line-height:1.2}.sb-footer-h3{font-size:1.25em}.sb-footer-h4{font-size:1.1em}.sb-footer-h5{font-size:1em}.sb-footer-h6{font-size:.95em}.sb-footer-extra-links{max-width:1200px;margin:1.5em auto;padding:0 20px;text-align:center;font-size:.9em;opacity:.85}.sb-footer-extra-links a{margin:0 .75em;text-decoration:underline;color:inherit}</style>
674  <div class="wrap">
675    <div class="foot-grid">
676      <div class="col-1">
677        <div class="brand"><img loading="lazy" decoding="async" src="/assets/logo-mark-512.png" alt="Sydney Boisseau" class="brand-mark" width="32" height="32" style="object-fit:contain;padding:0" /> <span>Sydney Boisseau</span></div>
678        <p class="tagline">Expert media buying : Google Ads, Meta Ads et SEO. Bordeaux et Sud-Ouest, visio dans toute la France.</p>
679        <a class="foot-email" href="mailto:[email protected]">[email protected]</a>
680      </div>
681      <div>
682        <div role="heading" aria-level="4" class="sb-footer-heading sb-footer-h4">Services</div>
683        <ul>
684          <li><a href="/consultant-google-ads/">Consultant Google Ads</a></li>
685          <li><a href="/google-ads/">Google Ads / SEA</a></li>
686          <li><a href="/google-ads/audit/">Audit Google Ads</a></li>
687          <li><a href="/google-analytics/">Google Analytics</a></li>
688          <li><a href="/google-tag-manager/">Google Tag Manager</a></li>
689        </ul>
690      </div>
691      <div>
692        <div role="heading" aria-level="4" class="sb-footer-heading sb-footer-h4">Ressources</div>
693        <ul>
694          <li><a href="/consultant-google-ads/tarifs/">Tarifs</a></li>
695          <li><a href="/google-ads/formation/">Formation Google Ads</a></li>
696          <li><a href="/google-ads/prix-google-ads-par-mois/">Prix Google Ads</a></li>
697          <li><a href="/google-ads/freelance-google-ads-consultant-vs-agence-vs-interne/">Agence vs freelance</a></li>
698          <li><a href="/consultant-google-ads/tpe/">Google Ads pour TPE</a></li>
699        </ul>
700      </div>
701      <div>
702        <div role="heading" aria-level="4" class="sb-footer-heading sb-footer-h4">Villes</div>
703        <ul>
704          <li><a href="/consultant-google-ads/consultant-google-ads-bordeaux/">Bordeaux</a></li>
705          <li><a href="/consultant-google-ads/consultant-google-ads-pessac/">Pessac</a></li>
706          <li><a href="/consultant-google-ads/consultant-google-ads-talence/">Talence</a></li>
707          <li><a href="/consultant-google-ads/consultant-google-ads-begles/">Bègles</a></li>
708          <li><a href="/consultant-google-ads/consultant-google-ads-nice/">Nice</a></li>
709          <li><a href="/consultant-google-ads/consultant-google-ads-angouleme/">Angoulême</a></li>
710        </ul>
711      </div>
712      <div>
713        <div role="heading" aria-level="4" class="sb-footer-heading sb-footer-h4">Informations</div>
714        <ul>
715          <li><a href="/formulaire-contact/">Contact</a></li>
716          <li><a href="/mentions-legales/">Mentions légales</a></li>
717          <li><a href="/politique-de-confidentialite/">Confidentialité</a></li>
718          <li><a href="/plan-du-site/">Plan du site</a></li>
719        </ul>
720      </div>
721    </div>
722    <div class="foot-bottom">
723      <span class="copy">© 2026 Sydney Boisseau. Tous droits réservés. · <a href="/mentions-legales/" style="color:var(--inverse-fg-2)">Mentions légales</a> · <a href="/plan-du-site/" style="color:var(--inverse-fg-2)">Plan du site</a></span>
724      <div class="foot-social">
725        <a href="https://www.linkedin.com/in/sydney-boisseau/" target="_blank" rel="noopener" aria-label="LinkedIn" title="LinkedIn"><svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg></a>
726        <a href="https://www.youtube.com/@sydney-boisseau/" target="_blank" rel="noopener" aria-label="YouTube" title="YouTube"><svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg></a>
727        <a href="https://www.instagram.com/sydney.growth/" target="_blank" rel="noopener" aria-label="Instagram" title="Instagram"><svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.007-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077"/></svg></a>
728        <a href="https://www.tiktok.com/@sydney.growth_" target="_blank" rel="noopener" aria-label="TikTok" title="TikTok"><svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor" aria-hidden="true"><path d="M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08
728-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z"/></svg></a>
729        <a href="https://www.malt.fr/profile/sydneyboisseau1" target="_blank" rel="noopener" aria-label="Malt" title="Malt"><svg viewBox="0 0 24 24" width="20" height="20" fill="currentColor" aria-hidden="true"><rect x="1" y="9.75" width="22" height="4.5" rx="2.25"/><rect x="1" y="9.75" width="22" height="4.5" rx="2.25" transform="rotate(120 12 12)"/><rect x="10.5" y="9.75" width="12.5" height="4.5" rx="2.25" transform="rotate(60 12 12)"/><rect x="1" y="9.75" width="6.5" height="4.5" rx="2.25" transform="rotate(60 12 12)"/></svg></a>
730      </div>
731    </div>
732  </div>
733</footer>
734
735<script>
736  // Disponibilité : mois suivant
737  (function() {
738    const months = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];
739    const nextMonth = new Date(new Date().getFullYear(), new Date().getMonth() + 1, 1);
740    const el = document.getElementById('availMonth'); if (el) el.textContent = months[nextMonth.getMonth()];
741  })();
742
743  // Fade-up au scroll
744  (function() {
745    const items = document.querySelectorAll('.fade-up');
746    if (!('IntersectionObserver' in window)) { items.forEach(el => el.classList.add('in')); return; }
747    const io = new IntersectionObserver((entries) => {
748      entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('in'); io.unobserve(e.target); } });
749    }, { threshold: 0.1, rootMargin: '0px 0px -40px 0px' });
750    items.forEach(el => io.observe(el));
751  })();
752
753  // Accordéon : un seul ouvert par liste
754  document.querySelectorAll('.faq-list').forEach(list => {
755    list.querySelectorAll('.faq-item').forEach(item => {
756      item.addEventListener('toggle', () => {
757        if (item.open) list.querySelectorAll('.faq-item[open]').forEach(o => { if (o !== item) o.open = false; });
758      });
759    });
760  });
761
762  // Sommaire : scrollspy (surligne la section visible)
763  (function() {
764    const links = Array.from(document.querySelectorAll('.toc a'));
765    if (!links.length || !('IntersectionObserver' in window)) return;
766    const map = new Map();
767    links.forEach(a => { const id = a.getAttribute('href').slice(1); const sec = document.getElementById(id); if (sec) map.set(sec, a); });
768    let current = null;
769    const io = new IntersectionObserver((entries) => {
770      entries.forEach(e => { if (e.isIntersecting) {
771        if (current) current.classList.remove('active');
772        current = map.get(e.target); if (current) current.classList.add('active');
773      }});
774    }, { rootMargin: '-88px 0px -70% 0px', threshold: 0 });
775    map.forEach((a, sec) => io.observe(sec));
776  })();
777
778  // Menu mobile (hamburger)
779  (function() {
780    const burger = document.getElementById('hamburger');
781    const menu = document.getElementById('mobileMenu');
782    const backdrop = document.getElementById('menuBackdrop');
783    if (!burger || !menu) return;
784    function setMenu(open) {
785      burger.setAttribute('aria-expanded', open ? 'true' : 'false');
786      burger.setAttribute('aria-label', open ? 'Fermer le menu' : 'Ouvrir le menu');
787      menu.classList.toggle('open', open);
788      if (backdrop) backdrop.classList.toggle('open', open);
789    }
790    burger.addEventListener('click', () => setMenu(burger.getAttribute('aria-expanded') !== 'true'));
791    menu.querySelectorAll('a').forEach(a => a.addEventListener('click', () => setMenu(false)));
792    if (backdrop) backdrop.addEventListener('click', () => setMenu(false));
793    document.addEventListener('keydown', (e) => { if (e.key === 'Escape') setMenu(false); });
794    // Referme si on repasse en desktop
795    window.matchMedia('(min-width: 801px)').addEventListener('change', (e) => { if (e.matches) setMenu(false); });
796  })();
797
798  // Formulaire (démo, à brancher sur l'endpoint WordPress)
799  (function() {
800    const f = document.getElementById('contactForm');
801    if (f) f.addEventListener('submit', async (e) => {
802      e.preventDefault();
803      const btn = f.querySelector('button[type="submit"]');
804      const data = Object.fromEntries(new FormData(f).entries());
805      if (!data.budget) { alert('Merci d\u2019indiquer votre budget publicitaire mensuel.'); return; }
806      if (data.budget === 'under-1k') {
807        try { if (window.dataLayer) window.dataLayer.push({ event: 'lp_lead_under_budget', form_budget: data.budget }); } catch (err) {}
808        window.location.href = '/demarrer-la-publicite/';
809        return;
810      }
811      data.source = window.location.pathname;
812      if (btn) { btn.disabled = true; btn.textContent = 'Envoi…'; }
813      try {
814        const r = await fetch('/wp-json/sb-form/v1/submit', { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify(data) });
815        if (r.ok) { f.innerHTML = '<p style="font-size:18px;color:var(--ink);padding:24px 0;">Merci, votre demande a bien été envoyée. Je vous réponds sous 24h.</p>'; }
816        else { alert('Une erreur est survenue. Réessayez ou écrivez à [email protected]'); if (btn){ btn.disabled=false; btn.textContent='Envoyer ma demande'; } }
817      } catch (err) { alert('Erreur réseau, réessayez.'); if (btn){ btn.disabled=false; btn.textContent='Envoyer ma demande'; } }
818    });
819  })();
820</script>
820
821
822</body>
823</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.