Protocol Overview
The SI Protocol defines how AI assistants (hosts) invoke and interact with brand agent endpoints to enable conversational brand experiences. The protocol consists of:- Discovery - How hosts discover brand agents and their capabilities
- Offering Lookup - Anonymous pre-flight checks before session handoff
- Session Management - Initiation, messaging, and termination
- Capability Negotiation - Determining supported features
- UI Components - Standard visual elements for rendering
Transport Requirements
Supported Transports
Brand agents MUST support at least one of the following transports:
Brand agents SHOULD support MCP as the preferred transport.
Transport Declaration
Brand agents declare supported transports viaget_adcp_capabilities:
preferred field.
Discovery
Capability Discovery
Brand agents MUST implement theget_adcp_capabilities task to declare SI support. When a host calls this task, the response MUST include:
sponsored_intelligencein thesupported_protocolsarray- A
sponsored_intelligenceobject containing:endpoint- Transport configuration (REQUIRED)capabilities- Supported modalities and components (REQUIRED)
brand- Brand reference (domain-based identity)
Get Offering
Purpose
Thesi_get_offering task retrieves offering details and availability before session handoff. This allows hosts to show offering information (pricing, product availability) to users before asking for consent to engage with the brand.
Requirements
Hosts MAY callsi_get_offering before initiating a session.
If a host calls si_get_offering:
- The request MUST NOT include user PII
- The request MUST include
offering_id - The request MAY include
contextfor personalized results (e.g., “mens size 14 near Cincinnati”) - The request MAY set
include_products: trueto get matching products - Brand agents MUST return an
offering_tokenif available - Brand agents SHOULD return a
ttl_secondsindicating validity duration
Offering Token Flow
If a host receives anoffering_token:
- The host SHOULD include this token in the subsequent
si_initiate_sessionrequest - The brand agent MAY use the token to correlate offering lookups with sessions
- The token MUST be treated as opaque by the host
Matching Products
Wheninclude_products is true and context is provided, the response MAY include matching products:
Session Lifecycle
Session States
SI sessions have the following states:Initiate Session
Thesi_initiate_session task establishes a new SI session.
Request Requirements
Hosts MUST include:context- Natural language description of user intentidentity- User identity with consent status
supported_capabilities- Host’s capability set for negotiationoffering_token- Token fromsi_get_offeringif performed
media_buy_id- AdCP media buy ID if triggered by advertisingoffering_id- Brand-specific offering to applyplacement- Where this session was triggered
Response Requirements
Brand agents MUST return:session_id- Unique identifier for this session
response.message- Initial conversational messagenegotiated_capabilities- Intersection of brand and host capabilities
Send Message
Thesi_send_message task exchanges messages within an active session.
Request Requirements
Hosts MUST include:session_id- Active session identifier
message- User’s text messageaction_response- Response to a UI action
Response Requirements
Brand agents MUST return:session_id- The session identifiersession_status- Current session state (active,pending_handoff, orcomplete)
response.message- Conversational response
session_status is pending_handoff, the response MUST include:
handoff- Handoff configuration for commerce flow
Terminate Session
Thesi_terminate_session task ends an SI session.
Request Requirements
Hosts MUST include:session_id- Session to terminatereason- Termination reason
Termination Reasons
Capability Negotiation
Negotiation Process
- Brand declares capabilities in SI manifest
- Host sends supported capabilities in session initiation
- Brand returns negotiated (intersection) capabilities in response
- Session uses only negotiated capabilities
Capability Categories
Modalities
Modalities define interaction modes:
All SI implementations MUST support
conversational modality.
Standard Components
The following components MUST be renderable by all compliant hosts:Extension Components
Hosts MAY support additional components:
Brand agents MUST NOT rely on extension components for core functionality.
UI Element Requirements
Standard Component Data
Each standard component MUST include the required fields as defined insi-ui-element.json:
text: message (required)
link: url, label (required); preview (optional)
image: url, alt (required); caption (optional)
product_card: title, price (required); subtitle, image_url, description, badge, cta (optional)
carousel: items (required); title (optional)
action_button: label, action (required); payload (optional)
Action Handling
When a user interacts with anaction_button:
- The host MUST send an
action_responseviasi_send_message - The
action_responseMUST include theactionidentifier - The
action_responseSHOULD include thepayloadif provided
Integration Actions
Theintegration_actions component allows brand agents to offer persistent connections:
Identity and Privacy
Consent Requirements
Hosts MUST obtain explicit user consent before sharing identity with brand agents. The consent flow MUST:- Clearly identify what data will be shared
- Reference the brand’s privacy policy
- Allow the user to decline
Identity Object
When consent is granted, theidentity object MUST include:
consent_granted: trueconsent_timestamp- When consent was obtainedconsent_scope- Array of data types consented toprivacy_policy_acknowledged.brand_policy_url
user object MAY include:
emailnamelocaleshipping_address
Anonymous Sessions
If consent is not granted:identity.consent_grantedMUST befalseidentity.anonymous_session_idSHOULD be provided- No PII MUST be transmitted
Commerce Integration
ACP Handoff
Whensession_status is pending_handoff with handoff.type: "transaction":
- The host SHOULD initiate ACP checkout flow
- The
handoff.intentMUST describe the purchase intent - The
handoff.context_for_checkoutMAY include conversation context
Commerce Actions
Theaction_button component MAY include commerce actions:
Error Handling
Error Response
Brand agents MUST return errors in theerrors array using the standard error schema:
Error Codes
Security Considerations
Transport Security
All SI communications MUST use HTTPS with TLS 1.2 or higher.Token Security
- Availability tokens MUST be opaque and unpredictable
- Session IDs MUST be unique and unpredictable
- Tokens SHOULD expire within a reasonable timeframe
Data Minimization
- Hosts MUST NOT send PII without consent
- Brand agents SHOULD minimize data collection
- Session data SHOULD be deleted after termination
Conformance
Host Conformance
A conformant SI host MUST:- Support MCP transport
- Render all standard components
- Implement session lifecycle (initiate, send, terminate)
- Obtain consent before sharing identity
- Support capability negotiation
Brand Agent Conformance
A conformant SI brand agent MUST:- Publish an SI manifest
- Support at least one specified transport
- Support conversational modality
- Return valid session IDs
- Handle all termination reasons