Analyste de Pages d'Atterrissage GA4
Un examen des pages d'atterrissage qui lit GA4 au lieu de demander des exports. Chaque conclusion provient d'une requête exécutée par cette compétence, et chaque conclusion affiche les chiffres qui la sous-tendent.
Avant de commencer
Vous devez avoir l'outil InsightfulPipe connecté avec une propriété GA4. Google Ads et Search Console sont optionnels ; ils ajoutent les coûts et les clics organiques par page.
- Appelez
query_contextsavecrequest="accounts"etplatform="google-analytics". Notezworkspace_id,brand_idetproperty_id. S'il y a plusieurs propriétés, demandez laquelle. Passez la propriété commeproperties/<id>. - Appelez
query_contextsavecrequest="actions_details"pourget_report,pages,list_key_events,list_data_streamsetget_enhanced_measurement_settings, et suivez les formes de corps qu'il renvoie. - Si l'utilisateur souhaite des détails payants ou organiques, exécutez aussi
accountspourgoogle-adsetgoogle-search-console, puisactions_detailspourgaql(platform="google-ads") etsearch_analytics(platform="google-search-console"). Utilisez le compte Google Ads quelist_google_ads_linksmontre comme lié à cette propriété, et le site Search Console qui correspond audefaultUridu flux. Le corps Google Ads nomme le compteaccount_id(10 chiffres, sans tirets), pascustomer_id. - Demandez trois choses, et utilisez les valeurs par défaut s'ils ne savent pas :
- La conversion principale. Par défaut : les événements clés de
list_key_events. - Le titre de la page 404 du site. Par défaut : les titres qui contiennent "not found" ou "404".
- Période. Par défaut : les 30 derniers jours complets, comparés aux 30 jours précédents.
- La conversion principale. Par défaut : les événements clés de
Indiquez les dates, le nom de la propriété, son fuseau horaire et sa devise en haut du rapport.
Comment exécuter les requêtes
Chaque corps ci-dessous passe par query_data avec platform="google-analytics" sauf s'il nomme une autre plateforme. Remplacez <WORKSPACE_ID>, <BRAND_ID>, <PROPERTY_ID>, <START> et <END>. Règles appliquées par l'API :
- Les filtres sont en camelCase. Utilisez
dimensionFilter,metricFilteretorderBys. Undimension_filteren snake_case est ignoré silencieusement et vous recevez toutes les lignes, donc vérifiez qu'un rapport filtré est vraiment filtré. - Limites de lignes. Passez
limit. La réponsemeta.paging.total_availablecontient le nombre total de lignes ; dites quand vous n'en lisez qu'une partie. - Il n'y a pas de métrique de sortie dans l'API Data GA4. Ne promettez pas de taux de sortie. Les fuites sont mesurées comme des sessions non engagées (ci-dessous).
- Le coût publicitaire ne peut pas être divisé par page d'atterrissage dans GA4.
advertiserAdCostaveclandingPagerenvoie une erreur. Prenez le coût par page d'atterrissage depuis Google Adslanding_page_view. - Les métriques de Recherche Organique dans GA4 (
organicGoogleSearchClickset autres) fonctionnent uniquement lorsque Search Console est liée à la propriété. Si elles génèrent une erreur, utilisez plutôt l'action Search Console. - Les taux reviennent sous forme de fractions (0,42 signifie 42 %). Les durées sont en secondes.
Si une requête échoue, continuez. Marquez cette zone inconnue et dites quelle requête a échoué et pourquoi. Ne comblez jamais un vide avec une supposition.
Taille d'échantillon. Ne jugez pas une page avec moins de 30 sessions dans la période. Listez ces pages sous "trafic insuffisant pour juger".
Les six zones
Attribuez à chaque zone une note pass, warn, fail ou unknown. Le résultat d'une zone est sa pire vérification. Les seuils sont des points de départ ; dites-le quand le modèle du site en rend un inapproprié (une page de documentation est faite pour être lue et quittée, une page de contact est faite pour être courte).
1. Santé des données : les chiffres sont-ils fiables ?
{"platform": "google-analytics", "action": "get_property", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>"}
{"platform": "google-analytics", "action": "list_key_events", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>"}
{"platform": "google-analytics", "action": "list_data_streams", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>"}
{"platform": "google-analytics", "action": "get_enhanced_measurement_settings", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "data_stream_id": "<STREAM_ID>"}
Prenez <STREAM_ID> du numéro à la fin du name du flux web.
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["date"], "metrics": ["sessions", "engagedSessions", "keyEvents", "screenPageViews"], "start_date": "<START>", "end_date": "<END>", "orderBys": [{"dimension": {"dimensionName": "date"}}]}
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["eventName"], "metrics": ["eventCount", "keyEvents"], "start_date": "<START>", "end_date": "<END>"}
| Vérification | Résultat |
|---|---|
| Événements clés | fail quand aucun n'est défini. warn quand des événements clés sont définis mais aucun ne s'est déclenché dans la période : les vérifications de conversion dans les zones 2 et 3 deviennent inconnues, et les pages sont classées sur les sessions engagées à la place. La solution vient du site (les événements ne sont pas envoyés), pas d'un nouvel événement clé. Quand un événement ressemblant à une conversion se déclenche (il apparaît dans le rapport eventName) mais n'est pas un événement clé, proposez create_key_event. |
| Page d'atterrissage "(not set)" | Part des sessions où landingPage est "(not set)" ou vide : ces sessions ont commencé sans affichage de page (bannières de consentement, balises qui se déclenchent tard, sessions qui expirent et redémarrent). warn au-dessus de 5 %, fail au-dessus de 15 %. |
| Lacunes | warn pour tout jour avec 0 session, ou un jour sous 20 % de la médiane quotidienne de la période, à l'intérieur de la période. Dites quelles dates. |
| Plusieurs flux | Notez quand une propriété a plusieurs flux web (un flux de test ou de staging peut ajouter du trafic parasite). Vérifiez hostName si les chiffres semblent élevés. |
| Mesure améliorée | Notez si scrollsEnabled et siteSearchEnabled sont activés. Les zones 4 et 6 en dépendent. |
2. Performance des pages d'atterrissage et fuites
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage"], "metrics": ["sessions", "engagedSessions", "engagementRate", "keyEvents", "sessionKeyEventRate", "newUsers", "averageSessionDuration"], "start_date": "<START>", "end_date": "<END>", "orderBys": [{"metric": {"metricName": "sessions"}, "desc": true}], "limit": 250}
Exécutez-le à nouveau pour la période précédente avec la même longueur.
- Taux du site. Taux d'engagement et taux d'événements clés pour toutes les sessions, en excluant les pages d'atterrissage "(not set)".
- Fuites. Pour chaque page avec 30+ sessions : sessions non engagées = sessions − engagedSessions. Fuite excessive = sessions non engagées − sessions × (1 − taux d'engagement du site). C'est le nombre de visiteurs que la page perd au-delà de ce qu'une page moyenne perdrait. Calculez-le pour chaque page avec 30+ sessions et classez toutes les pages avec une fuite excessive positive ; ce classement alimente les 5 correctifs principaux. Une page très fréquentée juste en dessous du taux du site peut perdre plus de visiteurs qu'une petite page bien en dessous. Par ailleurs, étiquetez une page fuite quand son engagement est inférieur à 75 % du taux du site ; l'étiquette de fuite détermine le résultat de cette zone et le verdict du tableau des pages d'atterrissage, pas le classement des correctifs. warn quand les fuites ensemble détiennent plus de 10 % des sessions, fail au-dessus de 25 %.
- Convertisseurs. Avec des événements clés qui se déclenchent : les pages avec le taux d'événements clés le plus élevé (30+ sessions), et les pages avec le plus de sessions et un taux d'événements clés inférieur à la moitié du taux du site. Ce sont les pages à corriger en premier.
- Changement. Pages avec 50+ sessions dans l'une ou l'autre période dont les sessions ont bougé de plus de 30 %. Séparez les pages qui sont nouvelles ou disparues des pages qui ont augmenté ou diminué.
- Chaînes de requête. Si un chemin apparaît avec de nombreuses variantes sous
landingPagePlusQueryString, la page est correcte ; ne la divisez pas. UtilisezlandingPage(chemin uniquement) pour chaque jugement.
3. Adéquation des sources de trafic : quelles pages fonctionnent pour quels visiteurs
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage", "sessionDefaultChannelGroup"], "metrics": ["sessions", "engagedSessions", "keyEvents"], "start_date": "<START>", "end_date": "<END>", "orderBys": [{"metric": {"metricName": "sessions"}, "desc": true}], "limit": 1000}
- Taux par source publicitaire. Pour chaque groupe de canaux avec 30+ sessions : taux d'engagement et taux d'événements clés par page d'atterrissage. Laissez les pages d'atterrissage "(not set)" en dehors de chaque taux, comme dans la zone 2 ; elles se situent principalement dans la Recherche Organique et le Direct et tirent ces canaux vers le bas. Les canaux payants sont Recherche Payante, Social Payant, Shopping Payant, Vidéo Payante, Autre Payant, Display et Cross-network.
- Pages payantes sous-performantes. Une page dont les sessions payantes s'engagent à moins de 75 % du taux organique ou direct de la même page est un problème d'adéquation du message : la publicité promet quelque chose que la page ne montre pas. Avec des événements clés qui se déclenchent, comparez plutôt les taux d'événements clés.
- Pages d'atterrissage organiques. Les meilleures pages d'atterrissage de Recherche Organique par sessions, avec leur taux d'engagement. warn quand une page porte plus de 50 % des sessions organiques (à un changement de classement d'une baisse de trafic).
- Sources faibles. Un canal avec 100+ sessions qui s'engage à moins de 75 % du taux du site envoie des visiteurs que la page d'atterrissage ne sert pas. Le Direct n'est pas une source que vous pouvez cibler : un taux Direct faible signifie généralement des liens non balisés (email, applications, chat), donc la correction passe par les balises UTM, pas par la page. warn, et listez les 3 meilleures pages d'atterrissage sur lesquelles ce canal atterrit, pour que la correction aille vers la bonne page (ou vers le post ou le lien qui les envoie). Pour le classement des correctifs, comptez la perte par page, jamais pour l'ensemble du canal : sessions de cette page provenant du canal × taux d'engagement du site − sessions engagées de cette page provenant du canal. Un canal a deux comptes de sessions : toutes ses sessions, et les sessions avec une page d'atterrissage connue (la base de son taux). Donnez le compte complet et nommez l'exclusion à côté, par ex. "500 sessions, 460 avec une page d'atterrissage connue" ; n'imprimez jamais le compte plus petit seul.
- Part payante. Indiquez quelle part des sessions est payante. Si les sessions payantes sont inférieures à 30 au total, dites que la qualité payante ne peut pas être jugée et sautez les vérifications payantes.
Détail de la recherche payante, uniquement lorsque les sessions de recherche payante sont de 30 ou plus :
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage", "sessionGoogleAdsCampaignName"], "metrics": ["sessions", "engagedSessions", "keyEvents"], "start_date": "<START>", "end_date": "<END>", "dimensionFilter": {"filter": {"fieldName": "sessionDefaultChannelGroup", "stringFilter": {"matchType": "EXACT", "value": "Paid Search"}}}, "limit": 500}
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["sessionGoogleAdsCampaignName"], "metrics": ["sessions", "advertiserAdCost", "advertiserAdClicks"], "start_date": "<START>", "end_date": "<END>"}
Avec le compte Google Ads connecté, prenez le coût et les conversions par URL finale. Remplacez <ACCOUNT_ID> par l'identifiant du compte lié :
{"platform": "google-ads", "action": "gaql", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<ACCOUNT_ID>", "query": "SELECT landing_page_view.unexpanded_final_url, metrics.clicks, metrics.cost_micros, metrics.conversions FROM landing_page_view WHERE segments.date BETWEEN '<START>' AND '<END>' ORDER BY metrics.cost_micros DESC LIMIT 100"}
- Faites correspondre une URL finale à une
landingPageGA4 par son chemin : supprimez l'hôte, la chaîne de requête et les modèles de suivi comme{ignore}. - Coût par session engagée payante = coût ÷ sessions engagées payantes GA4 sur cette page. Signalez les pages dans la moitié supérieure par coût dont le coût par session engagée est plus de deux fois la moyenne payante.
- Les événements clés GA4 et les conversions Google Ads comptent différemment (attribution, comptage, import). Rapportez les deux côte à côte ; ne soustrayez jamais l'un de l'autre.
Avec Search Console connectée (platform="google-search-console", action="search_analytics") :
{"platform": "google-search-console", "action": "search_analytics", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "site_url": "<SITE_URL>", "dimensions": ["page"], "start_date": "<START>", "end_date": "<END>", "row_limit": 250}
- Faites la jointure sur le chemin. Pour les pages avec 30+ clics Search Console, warn quand les sessions de Recherche Organique GA4 sont inférieures à 60 % des clics : cette page perd le suivi (consentement, une balise tardive, ou des sessions qui atterrissent comme "(not set)"). GA4 peut afficher plus de sessions organiques que les clics Google, car son canal Recherche Organique compte aussi Bing, DuckDuckGo et autres ; ce n'est pas un problème. Une page avec des impressions élevées et un faible CTR relève du titre et du snippet, pas de la page d'atterrissage ; confiez-la à une compétence SEO.
4. Engagement sur le contenu et défilement
{"platform": "google-analytics", "action": "pages", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["pagePath"], "metrics": ["screenPageViews", "activeUsers", "userEngagementDuration", "scrolledUsers"], "start_date": "<START>", "end_date": "<END>", "limit": 250}
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["percentScrolled"], "metrics": ["eventCount"], "start_date": "<START>", "end_date": "<END>", "dimensionFilter": {"filter": {"fieldName": "eventName", "stringFilter": {"matchType": "EXACT", "value": "scroll"}}}}
- Temps d'engagement par vue = userEngagementDuration ÷ screenPageViews, pour les pages avec 100+ vues.
- **Défilement ... [truncated for translation]