SSP sidecar is plugged in beside the exchange. Toggle agents or autoplay a hop.

  1. AdCPminutesMCP / JSON · Plan, negotiate, transact.
  2. ARTFmillisecondsgRPC GetMutations · Patch this auction, and propose without owning it.
  3. OpenRTBthe objectbid request / response · What DSPs actually parse.

SSP / exchange host

GetMutations runs on the publisher bid request for curator, audience, and metrics, and the host applies none, some, or all before it fans out to DSPs.

DSP host

GetMutations runs on the bid response, BID_SHADE is the clean case, and the host decides whether the shaded bid still leaves.

Colocated bidder

Index Cloud plus a full DSP binary is adjacent, not GetMutations. Do not demo that as an ARTF mutation agent.

Agent is an OCI container beside the host. No egress. Least data. GetMutations proposes. Host applies none, some, or all. Spec does not revalidate OpenRTB after apply.

Agent tmax 150ms inside auction tmax 300ms · PUBLISHER_BID_REQUEST · exchange-7

ACTIVATE_SEGMENTSACTIVATE_DEALSSUPPRESS_DEALSADJUST_DEAL_FLOORADD_METRICS

Hop

  1. InCTV mid-roll
  2. HostSSP · exchange-7
  3. ARTFcurator
  4. CheckWASM lint
  5. OutDSP · not called

Intents → OpenRTB

  • BID_SHADEseatbid[].bid[].price
  • ADJUST_DEAL_FLOORdeals[].bidfloor
  • ACTIVATE_DEALSimp.pmp.deals[]
  • adjustDealsunknown path
  • ADJUST_DEAL_MARGIN(none in OpenRTB 2.6)

Stream with this sidecar

72In
0Rewrite
64Drop
8Forward
rewritedropforward unchanged

This session

Why this hop matters

gRPC 0 is not a legal auction

The agent returned mutations and the RPC can succeed, while paths, lifecycle, and dialect can still be illegal, and pass 2 is the first time the auction is asked.

Ticket

Host
exchange-7 · publisher bid request
Site
streaming.example · 1920×1080
Floor
$8.00
Deals
deal-premium $12.00deal-standard $6.00
Segments
seg-sports
Metrics
none
Bid
none

Mutations

Waiting on the agent.

Lint

Not run yet.

Wire

GetMutations request
{
  "id": "extension-point-001",
  "tmax": 150,
  "lifecycle": "LIFECYCLE_PUBLISHER_BID_REQUEST",
  "originator": {
    "type": "TYPE_EXCHANGE",
    "id": "exchange-7"
  },
  "applicable_intents": [
    "ACTIVATE_SEGMENTS",
    "ACTIVATE_DEALS",
    "SUPPRESS_DEALS",
    "ADJUST_DEAL_FLOOR",
    "ADD_METRICS"
  ],
  "bid_request": {
    "id": "auction-9001",
    "at": 1,
    "tmax": 300,
    "cur": [
      "USD"
    ],
    "imp": [
      {
        "id": "imp-1",
        "secure": true,
        "instl": false,
        "bidfloor": 8,
        "bidfloorcur": "USD",
        "video": {
          "mimes": [
            "video/mp4"
          ],
          "minduration": 15,
          "maxduration": 30,
          "w": 1920,
          "h": 1080,
          "protocols": [
            2,
            3,
            5,
            6
          ],
          "linearity": 1,
          "plcmt": 1,
          "skip": false
        },
        "pmp": {
          "private_auction": true,
          "deals": [
            {
              "id": "deal-premium",
              "bidfloor": 12,
              "bidfloorcur": "USD",
              "at": 1
            },
            {
              "id": "deal-standard",
              "bidfloor": 6,
              "bidfloorcur": "USD",
              "at": 2
            }
          ]
        }
      }
    ],
    "site": {
      "id": "site-42",
      "domain": "streaming.example",
      "page": "https://streaming.example/watch/12345",
      "mobile": false,
      "content": {
        "id": "content-12345",
        "livestream": false,
        "len": 3600
      }
    },
    "device": {
      "dnt": false,
      "lmt": false,
      "ua": "Mozilla/5.0"
    },
    "user": {
      "id": "user-77",
      "data": [
        {
          "id": "dmp-1",
          "name": "Example DMP",
          "segment": [
            {
              "id": "seg-sports"
            }
          ]
        }
      ]
    },
    "regs": {
      "coppa": false,
      "gdpr": false
    }
  }
}
GetMutations response
{
  "id": "extension-point-999",
  "mutations": [
    {
      "intent": "BID_SHADE",
      "op": "OPERATION_REPLACE",
      "path": "/seatbid/dsp-1/bid/bid-abc",
      "adjust_bid": {
        "price": -2.5
      }
    },
    {
      "intent": "ADJUST_DEAL_FLOOR",
      "op": "OPERATION_REPLACE",
      "path": "/imp/imp-404/pmp/deals/deal-premium",
      "adjust_deal": {
        "bidfloor": 3
      }
    },
    {
      "intent": "ADJUST_DEAL_FLOOR",
      "op": "OPERATION_REPLACE",
      "path": "/imp/imp-1/pmp/deals/deal-unlisted",
      "adjust_deal": {
        "bidfloor": 3
      }
    },
    {
      "intent": "ACTIVATE_DEALS",
      "op": "OPERATION_ADD",
      "path": "/imp/imp-1",
      "adjust_bid": {
        "price": 4
      }
    },
    {
      "intent": "adjustDeals",
      "op": "replace",
      "path": "/imp/imp-1/deals/deal-standard",
      "value": {
        "AdjustDealPayload": {
          "bidfloor": 7.25
        }
      }
    },
    {
      "intent": "ADJUST_DEAL_MARGIN",
      "op": "OPERATION_REPLACE",
      "path": "/imp/imp-1/pmp/deals/deal-standard",
      "adjust_deal": {
        "margin": {
          "value": 140,
          "calculation_type": "PERCENT"
        }
      }
    }
  ]
}