Aperçu
Les équipes marketing formulent des allégations de marque qui s'éloignent de la réalité. « Nous sommes le n°1 en matière de... » alors que vous êtes en réalité n°3. Ce workflow valide les allégations de marque en recherchant les classements sur Google, en vérifiant les notes des produits Amazon par rapport aux concurrents et en analysant les sentiments authentiques des clients sur Reddit. Une validation hebdomadaire maintient votre marketing honnête et défendable.
Déclencheur
Tous les vendredis à 10h, avant la revue marketing hebdomadaire.
Planification
Hebdomadaire
Étapes du workflow
Définir les allégations de marque à valider
Listez les allégations : positions de classement, affirmations sur les notes, assertions de part de marché et comparaisons de fonctionnalités.
Rechercher sur Google pour vérifier le classement
Pour chaque allégation de classement, effectuez la recherche pertinente et vérifiez si votre marque apparaît à la position annoncée.
Vérifier les notes Amazon par rapport aux concurrents
Recherchez votre catégorie de produit sur Amazon. Comparez votre note et le nombre d'avis avec ceux des principaux concurrents.
Analyser les sentiments sur Reddit
Recherchez le nom de votre marque sur Reddit. Analysez si l'opinion de la communauté correspond à vos allégations marketing.
Générer un rapport de validation
Produisez un rapport allégation par allégation : VÉRIFIÉE, À METTRE À JOUR ou FAUSSE, avec des preuves à l'appui.
Implémentation Python
import requests, os, json
API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}
BRAND = "Acme Software"
CLAIMS = [
{"claim": "Top 5 CRM for startups", "query": "best crm for startups 2026", "platform": "google", "expected_rank": 5},
{"claim": "4.8 star rating on Amazon", "query": "Acme CRM software", "platform": "amazon", "expected_rating": 4.8},
{"claim": "Recommended on Reddit", "query": "Acme Software review reddit", "platform": "reddit", "expected_sentiment": "positive"},
]
def search(query: str, platform: str = "google") -> dict:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=H,
json={"query": query, "platform": platform, "country_code": "us"},
timeout=15,
)
return resp.json()
def validate_ranking(data: dict, brand: str, expected_rank: int) -> dict:
results = data.get("organic_results", [])
for i, r in enumerate(results):
if brand.lower() in r.get("title", "").lower() or brand.lower() in r.get("link", "").lower():
actual_rank = i + 1
return {"status": "VERIFIED" if actual_rank <= expected_rank else "NEEDS UPDATE", "actual_rank": actual_rank}
return {"status": "FALSE", "actual_rank": "not found"}
def validate_rating(data: dict, expected_rating: float) -> dict:
results = data.get("organic_results", [])
if results and results[0].get("rating"):
actual = results[0]["rating"]
return {"status": "VERIFIED" if actual >= expected_rating else "NEEDS UPDATE", "actual_rating": actual}
return {"status": "UNVERIFIABLE", "actual_rating": "not found"}
def validate_claims():
report = []
for claim in CLAIMS:
data = search(claim["query"], claim.get("platform", "google"))
if "expected_rank" in claim:
result = validate_ranking(data, BRAND, claim["expected_rank"])
elif "expected_rating" in claim:
result = validate_rating(data, claim["expected_rating"])
else:
result = {"status": "MANUAL REVIEW", "data_fetched": True}
result["claim"] = claim["claim"]
report.append(result)
print(f"{claim['claim']}: {result['status']}")
return report
validate_claims()Implémentation JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
const BRAND = 'Acme Software';
const CLAIMS = [
{claim:'Top 5 CRM for startups', query:'best crm for startups 2026', platform:'google', expectedRank:5},
{claim:'4.8 star rating on Amazon', query:'Acme CRM software', platform:'amazon', expectedRating:4.8},
{claim:'Recommended on Reddit', query:'Acme Software review reddit', platform:'reddit', expectedSentiment:'positive'},
];
async function search(query, platform='google') {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query, platform, country_code:'us'})});
return r.json();
}
function validateRanking(data, brand, expectedRank) {
const results = data.organic_results || [];
for (let i=0; i<results.length; i++) {
if ((results[i].title||'').toLowerCase().includes(brand.toLowerCase())) {
const actual = i+1;
return {status:actual<=expectedRank?'VERIFIED':'NEEDS UPDATE', actualRank:actual};
}
}
return {status:'FALSE', actualRank:'not found'};
}
function validateRating(data, expectedRating) {
const results = data.organic_results || [];
if (results[0]?.rating) {
const actual = results[0].rating;
return {status:actual>=expectedRating?'VERIFIED':'NEEDS UPDATE', actualRating:actual};
}
return {status:'UNVERIFIABLE', actualRating:'not found'};
}
async function validateClaims() {
for (const claim of CLAIMS) {
const data = await search(claim.query, claim.platform||'google');
let result;
if (claim.expectedRank) result = validateRanking(data, BRAND, claim.expectedRank);
else if (claim.expectedRating) result = validateRating(data, claim.expectedRating);
else result = {status:'MANUAL REVIEW', dataFetched:true};
console.log(claim.claim+': '+result.status);
}
}
await validateClaims();Plateformes utilisées
Recherche web avec graphe de connaissances, PAA et aperçus IA
Amazon
Recherche de produits avec prix, notes et avis
Communauté, publications et commentaires imbriqués de n'importe quel subreddit