FR
Copied
Modules

Ads profile

Ads profile

The ads_intelligence module profiles the marketing stack of each POI's website and condenses the findings into a single 0–100 marketing maturity score. It splits a list of prospects into two actionable segments: businesses that already invest in paid acquisition, and businesses still on a cold first-touch.

Detections match the homepage against community-maintained filter lists (uBlock Origin, EasyList, EasyPrivacy) plus a curated outsend signature table, covering advertising pixels, retargeting networks, CMPs, marketing CRMs and chat widgets.

Inputs

Only items with a non-empty site_web are processed.

Field Type Required Notes
site_web string yes Absolute URL of the POI's website
nom string no Carried through for reporting
place_id string no Used to join back to the source list
source_job_id string no ID of an upstream scrap job to chain

Batch size: 1 to 10 000 items per job.

Outputs

One row per processed POI. Paid-media pixels and retargeting weigh the most in the score; chat widgets the least.

Column Type Description
ads_score integer Marketing maturity score, 0–100
pixels_detected string[] Advertising pixels found on the page (e.g. meta, google_ads, tiktok)
crm_detected string Marketing CRM identified, if any (e.g. hubspot, klaviyo, brevo)
chat_widget string Chat solution identified, if any (e.g. intercom, crisp, drift)
marketing_tools string[] Other marketing technologies (CMP, CDP, affiliation, retargeting networks)

Granular fields also stored: ads_active, ads_networks, pixel_meta, pixel_google_ads, cmp_vendor, retargeting, crm_marketing, chat_widgets.

Lifecycle

Standard outsend job lifecycle; see /docs/concepts/jobs-lifecycle. Progress is reported per item in the sites unit.

Pipeline

Direction Keys
needs site_web
produces ads_active, ads_score, ads_networks, pixel_meta, pixel_google_ads, cmp_vendor, retargeting, crm_marketing, chat_widgets

Any upstream job that emits site_web (typically scrap) can feed ads_intelligence. The job picker defaults to the most recent scrap job of the current account.

Endpoints

Create job

POST /api/jobs/ads-intelligence

{
  "items": [
    { "site_web": "https://example.com", "nom": "Example", "place_id": "..." }
  ],
  "source_job_id": "optional-upstream-job-uuid"
}

Response: a JobPublic document describing the newly created job (id, status, job_type, output_filename, ef_cost, timestamps).

Status When
400 No item has a site_web, or per-job EF quota exceeded
401 Missing or invalid session
403 Account inactive
422 Payload does not match the schema (e.g. items empty or > 10 000)

Job state, progress and results are read through the shared job endpoints (GET /api/jobs/{id}, GET /api/jobs/{id}/results, SSE stream).

Limits

See /docs/concepts/limits. Per-item EF cost: ~1 / 3 / 3700 EF. Wall time per item: 0.6 – 6 s.

Errors

Error Cause
Aucun établissement avec site web All items were missing site_web after normalisation
Quota dépassé Estimated EF cost exceeds the per-job ceiling
Item-level fetch failure Recorded on the row; the job continues with the next item
Empty homepage / non-HTML response Row emitted with ads_score = 0 and empty detections

What's next

Pair ads_intelligence with the following modules to extend the prospect profile: