Skip to main content

End-to-end workflow

1
Set up account
2
Start by checking the seller’s capabilities to understand the account model. First-party AI platforms typically require explicit accounts (each advertiser authenticates via OAuth), while ad networks may use implicit accounts (the agent declares brands via sync_accounts).
3
Example: first-party AI platform (explicit accounts)
4
{
  "adcp": { "major_versions": [3] },
  "supported_protocols": ["media_buy", "creative"],
  "account": {
    "require_operator_auth": true,
    "supported_billing": ["operator"],
    "authorization_endpoint": "https://ads.ai-platform.example.com/oauth/authorize",
    "required_for_products": false,
    "sandbox": true
  }
}
5
Key signals:
6
  • require_operator_auth: true — each advertiser authenticates via OAuth
  • sandbox: true — test accounts available for integration validation
  • required_for_products: false — buyers can browse products before setting up an account
  • 7
    An ad network that aggregates across multiple platforms would more likely declare require_operator_auth: false with supported_billing: ["operator", "agent"] — the agent is trusted and declares accounts via sync_accounts.
    8
    For explicit accounts, after OAuth authentication discover available accounts via list_accounts:
    9
    {
      "accounts": [
        {
          "account_id": "acct_novabrand_ai_001",
          "name": "Nova Brand - AI Platform",
          "status": "active",
          "sandbox": false
        },
        {
          "account_id": "acct_novabrand_ai_sandbox",
          "name": "Nova Brand - Sandbox",
          "status": "active",
          "sandbox": true
        }
      ]
    }
    
    10
    Use the sandbox account first to validate the full integration before committing real spend.
    11
    Sync catalogs
    12
    This is the defining step — pushing your product and offering data into the platform so it has the raw material to generate ads and transact. Product catalogs feed creative generation. Offering catalogs enable promotions and commerce handoffs. The richer the feed, the better the platform can match intent to inventory.
    13
    {
      "account": { "account_id": "acct_novabrand_ai_001" },
      "catalogs": [
        {
          "catalog_id": "product-feed",
          "name": "Nova Brand Product Catalog",
          "type": "product",
          "url": "https://novabrand.example.com/products.xml",
          "feed_format": "google_merchant_center",
          "update_frequency": "daily"
        },
        {
          "catalog_id": "offerings-feed",
          "name": "Nova Brand Promotions",
          "type": "offering",
          "url": "https://novabrand.example.com/offerings.json",
          "feed_format": "custom",
          "update_frequency": "weekly"
        }
      ]
    }
    
    14
    The platform ingests each feed:
    15
  • Product catalog — titles, descriptions, prices, and images feed sponsored response generation
  • Offering catalog — promotions, services, and seasonal campaigns for SI Chat Protocol brand experience handoffs
  • 16
    Improving your ads means improving what you push in — catalogs, conversion events, brand identity, and content standards. Include detailed descriptions, multiple images, and structured attributes in catalogs. Push conversion events so the platform knows what works. The platform generates ads from all of this data — richer input produces better output.
    17
    Discover products
    18
    Query get_products with channels: ["sponsored_intelligence"] to find Sponsored Intelligence products:
    19
    {
      "buying_mode": "brief",
      "brief": "Promote our new wireless headphones to tech-savvy consumers on AI platforms.",
      "brand": {
        "domain": "novabrand.example.com"
      },
      "filters": {
        "channels": ["sponsored_intelligence"]
      }
    }
    
    20
    The seller returns products matching the brief. For catalog-driven products, sellers may include catalog_match showing which catalog items are eligible. See the product spectrum for the full range of product types.
    21
    Create media buy
    22
    A media buy can span multiple Sponsored Intelligence product types:
    23
    {
      "account": { "account_id": "acct_novabrand_ai_001" },
      "brand": {
        "domain": "novabrand.example.com"
      },
      "start_time": "2026-04-01T00:00:00Z",
      "end_time": "2026-04-30T23:59:59Z",
      "packages": [
        {
          "product_id": "sponsored_response_assistant",
          "pricing_option_id": "sr_cpc",
          "budget": 10000,
          "bid_price": 2.50,
          "pacing": "even",
          "optimization_goals": [{
            "kind": "metric",
            "metric": "engagements",
            "target": { "kind": "cost_per", "value": 3.00 },
            "priority": 1
          }]
        },
        {
          "product_id": "ai_search_sponsored",
          "pricing_option_id": "search_cpc",
          "budget": 5000,
          "bid_price": 3.00,
          "pacing": "even",
          "targeting_overlay": {
            "keyword_targets": [
              { "keyword": "wireless headphones", "match_type": "broad" },
              { "keyword": "noise cancelling", "match_type": "phrase" },
              { "keyword": "bluetooth earbuds", "match_type": "broad" }
            ]
          }
        }
      ]
    }
    
    24
    The sponsored responses package uses optimization_goals with a metric goal to optimize for cost-per-engagement. The AI search package uses keyword_targets to reach relevant queries.
    25
    Delivery reporting
    26
    Delivery reports include engagement metrics alongside standard delivery data:
    27
    {
      "reporting_period": {
        "start": "2026-04-01T00:00:00Z",
        "end": "2026-04-14T23:59:59Z"
      },
      "currency": "USD",
      "media_buy_deliveries": [
        {
          "media_buy_id": "mb_ai_001",
          "status": "active",
          "totals": {
            "impressions": 125000,
            "spend": 7200
          },
          "by_package": [
            {
              "package_id": "pkg_sr_001",
              "pricing_model": "cpc",
              "rate": 2.40,
              "currency": "USD",
              "impressions": 85000,
              "spend": 4800,
              "clicks": 2000,
              "delivery_status": "delivering"
            },
            {
              "package_id": "pkg_search_001",
              "pricing_model": "cpc",
              "rate": 3.00,
              "currency": "USD",
              "impressions": 40000,
              "spend": 2400,
              "clicks": 800,
              "delivery_status": "delivering"
            }
          ]
        }
      ]
    }
    
    28
    See measurement for metric definitions and conversion tracking.