Dernier épisode. Jusqu'ici, nos agents lisaient Google Ad Manager. Ici, on parle le standard d'achat : AdCP (Ad Context Protocol). Un agent
acheteur envoie une requête create_media_buy ; l'agent OrbiAds la valide puis la prévisualise en deal GAM, sans rien écrire.
AdCP est natif chez OrbiAds (ne hand-rollez rien)
Le réflexe à éviter : fabriquer un « brief JSON maison ». OrbiAds expose déjà une surface AdCP complète. Les outils vivent sous des tools parents (pattern parent → action) :
| Capacité | Appel | Type |
|---|---|---|
| Discovery côté vente | products → get_products_adcp | lecture |
| Valider un create_media_buy | deals(action='adcp_validate') | lecture |
| Traduire en DealSpec (sans exécuter) | deals(action='adcp_preview') | lecture |
| Exécuter de bout en bout | deals(action='adcp_create') | écriture |
La requête AdCP (create_media_buy)
Voici à quoi ressemble une demande d'achat envoyée par un agent acheteur :
{
"idempotency_key": "demo-mediabuy-0001-acme-q3",
"account": { "account_id": "demo-buyer-seat-001", "sandbox": true },
"brand": { "domain": "acme.com", "industries": ["retail"] },
"start_time": "2026-09-01T00:00:00Z",
"end_time": "2026-09-30T23:59:59Z",
"packages": [
{
"package_id": "pkg-homepage-fr-1",
"budget": 5000.0,
"impressions": 1000000,
"targeting_overlay": { "geo_countries": ["FR"], "language": ["fr"] }
}
],
"ext": {
"orbiads_deal_type": "pg_guaranteed",
"orbiads_buyer_account_id": "demo-authorized-buyer-seat"
}
}Le cas A2A : un gateway read-only
L'agent adcp_gateway reçoit la requête (d'un agent acheteur ou de l'utilisateur),
puis : (1) check_credentials + network check, (2) deals(adcp_validate),
(3) si valide, deals(adcp_preview), (4) un résumé lisible. Il n'appelle jamais adcp_create.
Trois freins à connaître
- Filtrage par nom, pas par action. Le
tool_filterne peut pas isoler une action : exposerdealsexpose aussi l'écriture. Garde-fous = le prompt (autoriser seulement validate/preview) + leconfirmation_tokend'OrbiAds. - Lookup d'annonceur réel.
adcp_previewrésout la marque dans GAM. Sans correspondance →ADCP_ADVERTISER_UNRESOLVED: fournirext.orbiads_advertiser_company_id. - Choix du modèle. Un gros JSON AdCP imbriqué peut faire « coder » l'appel à certains modèles légers ; un modèle plus costaud fiabilise. C'est l'approche qu'on valide, le modèle reste un paramètre.
Conclusion de la série
En quatre épisodes : on a connecté un agent à GAM (OAuth), on l'a déployé et rendu découvrable en A2A, composé un cas métier multi-agents, et fait parler le standard AdCP. Le fil rouge : tout repose sur une connexion propre et des garde-fous (lecture seule, network check, confirmation_token). Le reste est de la composition.
