Voix de Marque
Un guide de la voix construit à partir de ce que la marque dit déjà et de ce à quoi ses clients répondent déjà. La voix est la personnalité qui reste la même partout. Le ton est la manière dont cette personnalité s'adapte au moment : une annonce de recherche, des excuses, un client inquiet qui écrit à 23h. Le style est l'ensemble des petites règles qui rendent les deux reproductibles. Cette compétence documente les trois, et fonde chaque choix sur le texte propre de la marque, ses résultats de clics, les mots de ses clients et les lacunes que ses concurrents laissent ouvertes.
Elle exécute également un mode seul : l'audit de messagerie web (après l'étape 7). Ce mode lit les pages clés du site ensemble et vérifie qu'elles racontent la même histoire que les annonces, puis classe les corrections par trafic.
Avant de commencer
Vous devez avoir l'API MCP InsightfulPipe connectée avec au moins une source de texte propre de la marque : un compte Google Ads ou Meta Ads, une Page Facebook, Instagram ou une Page LinkedIn, ou un site web que DataForSEO peut lire. Sans aucun d'entre eux, utilisez « Sans connexion » à la fin.
- Appelez
query_contextsavecrequest="accounts"pourgoogle-ads,facebook-ads,facebook-pages,instagram-profile,linkedin-pages,google-search-consoleetdataforseo. Notezworkspace_id, lebrand_idpropre à chaque ligne (les comptes d'une même entreprise peuvent se trouver sous différentes marques), et l'identifiant du compte, de la page, du site ou de l'organisation. Dans un espace de travail d'agence, demandez pour quelle entreprise ce guide est destiné et lisez uniquement les comptes de cette entreprise. - Appelez
query_contextsavecrequest="actions_details"pour chaque lecture dans « Les appels » ci-dessous, et suivez les formes de corps qu'il renvoie, à l'exception des exceptions listées sous « Comment exécuter les requêtes ». - Demandez à l'utilisateur, et utilisez les valeurs par défaut lorsqu'il ne sait pas :
- La marque en une ligne : ce qu'elle fait et pour qui. Par défaut : déduit des annonces et des pages ; précisez qu'il s'agit d'une déduction.
- Les textes qu'elle aime et les textes qui lui semblent faux. Deux ou trois exemples de chaque, les siens ou ceux de quelqu'un d'autre. Facultatif, et il vaut la peine de le demander : ce qui semble faux est aussi utile que ce qui semble juste.
- Ce que la marque défend et contre quoi elle se bat. Deux ou trois croyances qui façonnent sa façon de parler, par exemple « les gens méritent une réponse directe ». Facultatif. Par défaut : non fourni, et les piliers reposent uniquement sur les preuves ; précisez-le.
- Concurrents. Deux à cinq noms ou domaines. Par défaut : les entreprises qui apparaissent dans Google pour les deux principaux thèmes de recherche non liés à la marque (étape 5).
- Règles qui existent déjà : un guide de style, des mots interdits, des limites légales ou réglementaires sur les allégations (droit, santé, finance, alcool). Par défaut : aucune, mais chaque superlatif est quand même signalé (étape 6).
- Où va le texte : les canaux que le guide doit couvrir. Par défaut : les canaux trouvés à l'étape 1, plus le site web et l'email.
Pour un audit de messagerie web uniquement, consultez également google-analytics et crawler à l'étape 1, et posez les propres questions du mode (sous « Mode : Audit de messagerie web ») au lieu de la liste ci-dessus.
Fenêtre. Annonces, publications et termes de recherche : les 90 derniers jours complets. Indiquez les dates en haut du rapport.
Comment exécuter les requêtes
Chaque lecture passe par query_data avec le nom de la plateforme. Cette compétence n'appelle jamais execute_action. Règles découvertes lors des exécutions en direct :
- Dates Google Ads.
DURING LAST_90_DAYSest refusé. Utilisezsegments.date BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD'. - Meta Ads refuse les champs imbriqués.
get_adsaveccreative{title,body}est refusé. Demandez le champcreativesimple, qui renvoie l'identifiant de la création, puis lisez le texte avecget_ad_creatives. Les annonces qui ont été supprimées apparaissent encore dans les insights mais pas dansget_ads; excluez-les et comptez-les. - Certains sites refusent les lecteurs automatisés. Lors de l'exécution de construction, le site du client a répondu 403, et
onpage_content_parsingest revenu avec 0 élément (pas d'erreur). Quand cela se produit, lisez la voix de la page à partir des propres titres et extraits Google des pages de la marque dans les recherches de l'étape 5, demandez à l'utilisateur de coller une ou deux pages clés, et dites lesquelles vous avez utilisées. - Le robot d'exploration SEO peut être en panne. Le 2026-10-06, chaque action du robot d'exploration retournait
Error fetching URL, même sur les sites de contrôle. Utilisez DataForSEO pour le texte des pages, et traitezcontent-quality-checkeretbrand-extractorcomme des options supplémentaires. Le 2026-10-30, le robot d'exploration était de retour, etbrand-extractora renvoyé les couleurs, polices et boutons. - Les bibliothèques publicitaires peuvent être en panne. Le même jour,
google_company_adsetgoogle_search_advertiserssont revenus vides même pour de très grands annonceurs, etfacebook_search_companiesa échoué avec une réinitialisation de connexion. Les annonces des concurrents provenant des bibliothèques sont non testées lors de l'exécution de construction ; la voix des concurrents provient des résultats Google (étape 5) à la place. - Les Pages LinkedIn peuvent nécessiter une reconnexion. Si un appel renvoie « Veuillez reconnecter votre Page LinkedIn », ignorez LinkedIn, dites-le et continuez. La lecture LinkedIn est non testée jusqu'à ce qu'elle soit connectée.
- Search Console limite une extraction par requête à 1 000 lignes. C'est suffisant pour le vocabulaire ; dites que la liste correspond aux 1 000 premières.
- DataForSEO coûte de l'argent. Utilisez
location_code2840 etlanguage_codeensauf si le public se trouve ailleurs. Limitez une exécution à 6 appels : jusqu'à 3 lectures de pages et 2 ou 3 recherches. Lisez d'abord la page la plus visitée ; si elle revient avec 0 élément, le site refuse les lecteurs, donc ne payez pas pour les autres pages. L'audit de messagerie web a son propre budget : une lecture de page par page, indiquée avant son exécution (W1). - Les appels de l'audit de messagerie web ont été testés le 2026-10-30.
get_reportde GA4 parlandingPagea renvoyé les sessions et les événements clés par page.search_analyticsde Search Console par page et requête a renvoyé larow_limitcomplète de 5 000 lignes. Les vérifications du robot d'exploration ont fonctionné sur un site qui autorise les lecteurs, etbrand-extractora renvoyé les étiquettes des boutons. Sur un site qui refuse les lecteurs automatisés, le robot d'exploration ne donne pas d'erreur :meta-tags-checkerrenvoietitle_tag_count0 etheadings-checkerrenvoieno_headings. Traitez cela comme « impossible de lire », jamais comme un titre ou H1 manquant. Lorsque la marque possède plus d'une connexion DataForSEO, ajoutezaccount_idà la lecture de la page. - Échelonnez les appels. N'envoyez pas plus d'un appel toutes les 2 secondes. Lorsqu'un appel est refusé avec un délai de nouvelle tentative, attendez ce délai et réessayez une fois.
Si un appel échoue, continuez. Marquez cette source comme inconnue, dites quel appel a échoué et pourquoi, et ne comblez jamais le vide avec une supposition.
Les appels
Google Ads : chaque titre et description avec ses propres clics
{"platform": "google-ads", "action": "gaql", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<CUSTOMER_ID>",
"query": "SELECT campaign.name, ad_group_ad_asset_view.field_type, ad_group_ad_asset_view.performance_label, asset.text_asset.text, metrics.impressions, metrics.clicks, metrics.conversions FROM ad_group_ad_asset_view WHERE segments.date BETWEEN '<START>' AND '<END>' AND ad_group_ad_asset_view.field_type IN ('HEADLINE', 'DESCRIPTION') AND campaign.status = 'ENABLED' AND ad_group_ad_asset_view.enabled = TRUE AND metrics.impressions > 0 ORDER BY metrics.impressions DESC LIMIT 1000"}
Google Ads : les annonces et où elles envoient les gens
{"platform": "google-ads", "action": "gaql", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<CUSTOMER_ID>",
"query": "SELECT campaign.name, ad_group.name, ad_group_ad.ad.id, ad_group_ad.ad.responsive_search_ad.headlines, ad_group_ad.ad.responsive_search_ad.descriptions, ad_group_ad.ad.final_urls, ad_group_ad.ad_strength, metrics.impressions, metrics.clicks, metrics.conversions FROM ad_group_ad WHERE segments.date BETWEEN '<START>' AND '<END>' AND ad_group_ad.status = 'ENABLED' AND campaign.status = 'ENABLED' AND ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD' AND metrics.impressions > 0 ORDER BY metrics.impressions DESC LIMIT 50"}
Les URL finales avec le plus d'impressions sont les pages à lire à l'étape 1.
Google Ads : les impressions et clics totaux du compte (pour indiquer la couverture du rapport de termes de recherche)
{"platform": "google-ads", "action": "gaql", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<CUSTOMER_ID>",
"query": "SELECT metrics.impressions, metrics.clicks FROM customer WHERE segments.date BETWEEN '<START>' AND '<END>'"}
Google Ads : les mots avec lesquels les clients recherchent
{"platform": "google-ads", "action": "search_terms_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<CUSTOMER_ID>", "start_date": "<START>", "end_date": "<END>", "limit": 5000}
Meta Ads : quelles annonces ont été diffusées, puis leur texte
{"platform": "facebook-ads", "action": "get_insights_adaccount", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "ad_account_id": "act_<ID>", "level": "ad", "fields": ["ad_id", "ad_name", "impressions", "inline_link_clicks", "inline_link_click_ctr", "spend"], "time_range": {"since": "<START>", "until": "<END>"}}
{"platform": "facebook-ads", "action": "get_ads", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "ad_account_id": "act_<ID>", "fields": ["id", "name", "status", "creative"]}
{"platform": "facebook-ads", "action": "get_ad_creatives", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "ad_account_id": "act_<ID>", "fields": ["id", "name", "title", "body", "object_story_spec"]}
Faites correspondre annonce → identifiant de création → body (texte principal) et title (titre). Le texte principal peut également se trouver dans object_story_spec.link_data.message.
Publications de Page Facebook
{"platform": "facebook-pages", "action": "get_posts", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "page_id": "<PAGE_ID>", "fields": ["id", "message", "created_time", "permalink_url", "status_type", "shares"], "since": "<START>", "until": "<END>", "limit": 50}
{"platform": "facebook-pages", "action": "get_post_insights", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "page_id": "<PAGE_ID>", "post_id": "<POST_ID>", "metrics": ["post_media_view", "post_clicks", "post_reactions_by_type_total"], "period": "lifetime"}
get_posts refuse les champs imbriqués comme likes.summary(true), même si l'assistant les liste, donc ces appels ne renvoient pas de nombre de commentaires. shares peut être absent d'une publication (il était absent de chaque publication de la page lue lors de l'exécution de construction) ; comptez un champ manquant comme 0. Un appel d'insights par publication ; lisez au maximum les 30 publications les plus récentes.
Publications Instagram
{"platform": "instagram-profile", "action": "get_media", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "account_id": "<INSTAGRAM_USER_ID>", "fields": "id,caption,media_type,media_product_type,permalink,timestamp,comments_count,like_count", "limit": 50}
Publications de Page LinkedIn (non testées jusqu'à ce qu'elles soient connectées)
{"platform": "linkedin-pages", "action": "fetch_organization_posts", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "org_id": "<ORG_ID>", "count": 50}
Search Console : comment les gens trouvent le site
{"platform": "google-search-console", "action": "search_analytics", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "site_url": "<SITE_URL>", "dimensions": ["query"], "start_date": "<START>", "end_date": "<END>", "row_limit": 1000}
Texte de la page (DataForSEO, un appel payant par page)
{"platform": "dataforseo", "action": "onpage_content_parsing", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "url": "<PAGE_URL>"}
Le texte se trouve dans page_content.main_topic : chaque bloc a h_title, level et primary_content[].text. Lisez la page d'accueil et la ou les deux pages vers lesquelles les annonces envoient le plus de gens.
Concurrents et propres extraits de la marque dans Google (DataForSEO, un appel payant par recherche)
{"platform": "dataforseo", "action": "serp_google_organic", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "keyword": "<TOP_NON_BRAND_THEME>", "location_code": 2840, "language_code": "en", "depth": 20}
Options supplémentaires
{"platform": "crawler", "action": "content-quality-checker", "workspace_id": "<WORKSPACE_ID>", "url": "<PAGE_URL>"}
{"platform": "crawler", "action": "brand-extractor", "workspace_id": "<WORKSPACE_ID>", "url": "<HOMEPAGE_URL>"}
content-quality-checker ajoute la lisibilité et le nombre de mots ; brand-extractor ajoute les couleurs, polices et boutons pour une ligne d'identité visuelle dans le guide. Annonces des concurrents : facebook_search_companies puis facebook_company_ads avec le page_id, ou google_company_ads avec le domain du concurrent (bibliothèques publicitaires).
Appels pour l'audit de messagerie web
GA4 : les pages de début de visite, avec les événements clés
{"platform": "google-analytics", "action": "get_report", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "property_id": "properties/<PROPERTY_ID>", "dimensions": ["landingPage"], "metrics": ["sessions", "keyEvents"], "start_date": "<START>", "end_date": "<END>"}
Les sessions par page de destination sont des entrées : des visites qui ont commencé sur cette page.
Search Console : les requêtes associées à chaque page
{"platform": "google-search-console", "action": "search_analytics", "workspace_id": "<WORKSPACE_ID>", "brand_id": "<BRAND_ID>", "site_url": "<SITE_URL>", "dimensions": ["page", "query"], "start_date": "<START>", "end_date": "<END>", "row_limit": 5000}
Robot d'exploration : titre, méta-description, titres et étiquettes de boutons d'une page (aucun crédit payant)
{"platform": "crawler", "action": "meta-tags-checker", "workspace_id": "<WORKSPACE_ID>", "url": "<PAGE_URL>"}
{"platform": "crawler", "action": "headings-checker", "workspace_id": "<WORKSPACE_ID>", "url": "<PAGE_URL>"}
{"platform": "crawler", "action": "brand-extractor", "workspace_id": "<WORKSPACE_ID>", "url": "<PAGE_URL>"}
Les étiquettes des boutons se trouvent dans primaryButton.text et buttons[].text de brand-extractor. Si les deux vérifications du robot d'exploration reviennent vides (title_tag_count 0 et no_headings), le site a refusé le robot d'exploration : prenez le titre, le titre principal et les étiquettes à partir du texte de la page ou demandez un collage.
Texte du corps de la page : l'appel DataForSEO onpage_content_parsing est utilisé comme ci-dessus (un appel payant par page). Si DataForSEO est indisponible, utilisez le robot d'exploration en dernier recours. Le coût total de l'audit : X appels payants pour X pages, plus aucune limite de Search Console (comprise dans votre abonnement).
Structure du rapport
Chaque section est fondée sur des preuves, pas sur des opinions. Lorsque vous citez un texte, rattachez-le directement à la source (l'annonce, la publication, la page). Indiquez toujours le nombre d'impressions, de clics ou de réactions lorsque des données de performance existent, afin que l'équipe sache ce qui a fonctionné et ce qui n'a pas fonctionné.
Tout guide doit inclure :
- Résumé – la position, le public et la conviction centrale de la marque, extraits des textes, des clics et des réponses des clients. Y compris : l'abréviation en une ligne, le public principal et la conviction centrale distincte des concurrents.
- Personnalité de la marque – une analyse de la voix basée sur les preuves, avec des dimensions telles que formelle vs décontractée, autoritaire vs accessible, etc., avec des citations des textes et des performances comme preuve.
- Piliers de message – trois à cinq thèmes récurrents dans les textes et ce que les clients recherchent, chacun avec un noyau de message (« Nous croyons que… »), des preuves issues des textes et des données, et l'angle du concurrent pour chacun.
- Ton de voix – les ajustements en fonction du canal et de la situation, avec des exemples d'annonces Google, d'annonces Meta, de publications sociales, de pages web et d'emails rédigés dans chaque ton.
- Cadre de style – points de grammaire, de ponctuation, de majuscules et de formatage pour rendre la marque cohérente. Inclut les mots bannis et les phrases à éviter, les listes de vocabulaire (ce que la marque dit, ce qu'elle ne dit pas) et les verbes d'action par pilier.
- Analyse concurrentielle – comment les concurrents parlent des mêmes sujets, ce que la marque peut emprunter, ce qu'elle doit éviter, et l'espace de messagerie que la marque peut revendiquer comme sien.
- Annexe de données – les sources de chaque conclusion (l'annonce, la publication ou la recherche), avec des chiffres de performance lorsque disponibles.
Mode : Audit de messagerie web
Dans ce mode, 5 à 10 pages clés sont lues individuellement, puis vérifiées par rapport aux annonces et entre elles, et chaque décalage est classé par trafic. Exécutez ce mode comme suit :
- Appels : exécutez les appels de l'audit de messagerie web ci-dessus. GA4 montre sur quelles pages les visites commencent. Search Console montre pour quoi chaque page est trouvée. Le robot d'exploration lit le titre de la page, la méta-description, les titres principaux (H1, H2) et les étiquettes des boutons pour vérifier la cohérence du message.
- Par page : pour chaque page (page d'accueil, page « À propos », pages de fonctionnalités/produits, page de tarification, page de contact) :
- Dites ce que cette page essaie de faire (d'après son URL, ses titres et ses liens), quel est son message principal, comment elle s'aligne avec les piliers de message, et si elle est cohérente avec les annonces.
- Attribuez un score de cohérence de messagerie (1-5) et énumérez les décalages.
- Classement : pour chaque décalage, multipliez le score de trafic de la page par le nombre de requêtes de recherche, pour montrer à l'équipe quoi corriger en premier.
- Rapport : résumez en un tableau : Page, message principal, score (1-5), trafic (sessions GA4), requêtes (Search Console), décalages, impact (score × requêtes), correctif suggéré.
Chaque décalage doit être fondé sur un texte réel (par exemple, « La page dit X, mais l'annonce dit Y »). Si le robot d'exploration n'a pas pu lire la page, dites-le et fondez l'analyse sur le texte de DataForSEO ou sur le collage de l'utilisateur.
Sans connexion
Lorsque vous n'avez accès à aucun texte de la marque (aucun compte publicitaire, aucune page sociale, aucun site web), créez le guide de la même manière mais avec les preuves et la base de données en moins :
- Construisez les piliers de message et la voix à partir de ce que l'utilisateur fournit dans les invites : la marque en une ligne, les textes qu'elle aime et ceux qu'elle n'aime pas, ce qu'elle défend et contre quoi elle se bat, et les concurrents. Ce guide sera plus vague et moins fiable ; dites-le en haut du rapport.
- Sans données de performance, vous ne pouvez pas classer ce qui fonctionne et ce qui ne fonctionne pas. Utilisez les exemples de l'utilisateur.
- Le cadre de style et l'analyse de la personnalité restent les mêmes, mais fondés sur la parole de l'utilisateur plutôt que sur les données.
- Omettez l'annexe de données. Ajoutez une section « Prochaines étapes : » qui recommande de connecter un compte publicitaire ou de site web pour valider les décisions avec des données réelles.