Profil marketing
Profil marketing
Le module ads_intelligence profile la stack marketing du site de chaque POI et condense les résultats en un score unique de maturité marketing 0–100. Il découpe une liste de prospects en deux segments actionnables : les entreprises qui investissent déjà en acquisition payante et celles encore en premier contact froid.
Les détections croisent la page d'accueil avec des listes de filtres maintenues par la communauté (uBlock Origin, EasyList, EasyPrivacy) plus une table de signatures outsend curatée, couvrant pixels publicitaires, réseaux de retargeting, CMP, CRM marketing et widgets de chat.
Entrées
Seuls les items avec un site_web non vide sont traités.
| Champ | Type | Requis | Notes |
|---|---|---|---|
site_web |
string | oui | URL absolue du site du POI |
nom |
string | non | Repassé pour reporting |
place_id |
string | non | Sert à recoller à la liste source |
source_job_id |
string | non | ID d'un job scrap amont à chaîner |
Taille de lot : 1 à 10 000 items par job.
Sorties
Chaque ligne d'entrée garde ses colonnes d'origine et reçoit les colonnes ci-dessous. Les listes sont séparées par \| ; les booléens valent true ou false. Les pixels média payants et le retargeting pèsent le plus dans le score, les widgets de chat le moins.
| Colonne | Description |
|---|---|
ads_status |
ok, no_url, aggregator (fiche d'annuaire, non analysée) ou unreachable. |
ads_active |
true si au moins un signal publicitaire a été trouvé. |
ads_intensity |
Nombre de signaux publicitaires relevés sur la page. |
ads_score |
Score de maturité marketing, de 0 à 100. |
ads_categories |
Catégories de signaux présentes (pixels, retargeting, mesure d'audience, CRM, chat, etc.). |
ads_networks |
Réseaux publicitaires et marketing identifiés. |
pixel_meta, pixel_google_ads, pixel_linkedin, pixel_tiktok, pixel_twitter, pixel_pinterest, pixel_snapchat |
Un booléen par pixel publicitaire. |
analytics_ga, analytics_clarity, analytics_hotjar |
Un booléen par outil de mesure majeur. |
analytics_others |
Autres outils de mesure. |
retargeting |
Réseaux de retargeting. |
display_networks, native_networks, affiliate_networks |
Réseaux display, native et d'affiliation. |
crm_marketing |
CRM ou outils d'automatisation marketing (par exemple hubspot, klaviyo, brevo). |
chat_widgets |
Solutions de chat (par exemple intercom, crisp, drift). |
cmp_present, cmp_vendor |
Présence d'une plateforme de gestion du consentement, et laquelle. |
unknown_trackers_count, unknown_trackers |
Traceurs tiers qui ne correspondent à aucune signature connue. |
http_status, final_url, fetch_error |
Détails techniques de la récupération de la page. |
Le fichier contient aussi une colonne par régie (pixel_google_ads, pixel_linkedin, pixel_tiktok, pixel_twitter, pixel_pinterest, pixel_snapchat), analytics_clarity, analytics_hotjar, native_networks, affiliate_networks, cmp_vendor (outil de consentement) et unknown_trackers.
Cycle de vie
Cycle de vie standard des jobs outsend ; voir /docs/fr/concepts/jobs-lifecycle. La progression est reportée par item en unité sites.
Pipeline
| Direction | Clés |
|---|---|
needs |
site_web |
produces |
ads_active, ads_score, ads_networks, pixel_meta, pixel_google_ads, cmp_vendor, retargeting, crm_marketing, chat_widgets |
Tout job amont qui émet site_web (typiquement scrap) peut alimenter ads_intelligence. Le sélecteur de job se positionne par défaut sur le dernier job scrap du compte courant.
Endpoints
Créer un job
POST /api/jobs/ads-intelligence
{
"items": [
{ "site_web": "https://example.com", "nom": "Example", "place_id": "..." }
],
"source_job_id": "optional-upstream-job-uuid"
}
Réponse : document JobPublic décrivant le job nouvellement créé (id, status, job_type, output_filename, ef_cost, timestamps).
| Statut | Quand |
|---|---|
400 |
Aucun item n'a de site_web, ou quota EF par job dépassé |
401 |
Session manquante ou invalide |
403 |
Compte inactif |
422 |
Payload non conforme au schéma (ex. items vide ou > 10 000) |
L'état, la progression et les résultats du job se lisent via les endpoints partagés (GET /api/jobs/{id}, GET /api/jobs/{id}/results, flux SSE).
Limites
Voir /docs/fr/concepts/limits. Coût EF par item : ~1 / 3 / 3700 EF. Temps mur par item : 0,6 à 6 s.
Erreurs
| Erreur | Cause |
|---|---|
Aucun établissement avec site web |
Tous les items manquaient de site_web après normalisation |
Quota dépassé |
Coût EF estimé au-dessus du plafond par job |
| Échec de fetch au niveau item | Enregistré sur la ligne ; le job continue avec l'item suivant |
| Page d'accueil vide / réponse non-HTML | Ligne émise avec ads_score = 0 et détections vides |
Pour aller plus loin
Associer ads_intelligence aux modules suivants pour enrichir le profil prospect :