Trillboards Campaign Planner
Plan and book out-of-home, CTV, video, audio and display campaigns, paid through Stripe.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"planner": {
"url": "https://api.trillboards.com/mcp/advertiser"
}
}
}Puntos de conexión remotos
https://api.trillboards.com/mcp/advertiserstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (9)
🟢search_ad_inventory(query, city, state, radius, source, ...)
Find local digital out-of-home screens and available CTV, video, audio and display products for an agency client. Uses the advertiser portal inventory and prices.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"description": "Screen or venue text filter. Use geographic radius for a neighborhood; a text match is not a location search."
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Native city filter. For neighborhoods such as Manhattan, use radius around the requested area instead."
},
"state": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"radius": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"miles": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 500
}
},
"required": [
"lat",
"lng",
"miles"
],
"additionalProperties": false,
"description": "Geographic inventory search around the client location. Use this for neighborhoods and nearby screens, without an additional neighborhood text or city filter."
},
"source": {
"type": "string",
"enum": [
"owned",
"vistar",
"mixed"
],
"default": "mixed"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
},
"cursor": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"channels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ctv",
"video",
"audio",
"display"
]
},
"maxItems": 4
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
]
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"checkoutUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢preview_campaign_plan(advertisementId, campaignName, clientName, landingUrl, screenIds, ...)
Preview native campaign pricing and audience estimates for selected screens and channels. This does not reserve inventory or charge the advertiser.
Esquema de entrada
{
"type": "object",
"properties": {
"advertisementId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"campaignName": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"clientName": {
"type": "string",
"maxLength": 160
},
"landingUrl": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Client business or campaign landing page URL."
},
"screenIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 1000,
"default": []
},
"source": {
"type": "string",
"enum": [
"owned",
"vistar",
"mixed"
],
"default": "mixed"
},
"impressions": {
"type": "integer",
"exclusiveMinimum": 0
},
"budgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"ownedBudgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"partnerBudgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"ownedImpressions": {
"type": "integer",
"exclusiveMinimum": 0
},
"partnerImpressions": {
"type": "integer",
"exclusiveMinimum": 0
},
"quoteId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"quoteIds": {
"type": "object",
"properties": {
"owned": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"partner": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"additionalProperties": false
},
"flightStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"flightEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"startTime": {
"type": "string",
"default": "00:00"
},
"endTime": {
"type": "string",
"default": "23:59"
},
"timezone": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "IANA timezone for the local flight."
},
"providerPlan": {
"anyOf": [
{
"type": "object",
"properties": {
"advertisementId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"geography": {
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"radius": {
"type": "object",
"properties": {
"center": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lng"
],
"additionalProperties": false
},
"miles": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 500
}
},
"required": [
"center",
"miles"
],
"additionalProperties": false
},
"markets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"country",
"code"
],
"additionalProperties": false
},
"maxItems": 50
},
"postalCodes": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 200
},
"countryCode": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"polygon": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lng"
],
"additionalProperties": false
},
"minItems": 3,
"maxItems": 100
}
},
"additionalProperties": false
},
"budgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"flightStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"flightEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"channels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ctv",
"video",
"audio",
"display"
]
},
"minItems": 1,
"maxItems": 4
},
"selectedProductIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100
},
"personaIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 50
},
"intuiziSegmentIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 50
},
"packageAudienceLens": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contextualTargeting": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100
},
"contextualAvoidance": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100
},
"audience": {
"type": "object",
"properties": {
"age_range": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"income_range": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"culture": {
"type": "array",
"items": {
"type": "string",
"enum": [
"white",
"black",
"asian",
"american_indian",
"hispanic"
]
},
"minItems": 1
},
"education": {
"type": "array",
"items": {
"type": "string",
"enum": [
"hs_or_less",
"some_college",
"bachelors",
"graduate"
]
},
"minItems": 1
},
"gender": {
"type": "array",
"items": {
"type": "string",
"enum": [
"male",
"female"
]
},
"minItems": 1
},
"language": {
"type": "array",
"items": {
"type": "string",
"enum": [
"english_only",
"spanish",
"other_indo_european",
"asian_pacific",
"other"
]
},
"minItems": 1
},
"life_stage": {
"type": "array",
"items": {
"type": "string",
"enum": [
"new_movers",
"settled",
"long_tenured",
"married",
"singles",
"new_parents",
"empty_nesters"
]
},
"minItems": 1
},
"household": {
"type": "boolean"
},
"lifestyle": {
"type": "object",
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"propertyNames": {
"minLength": 1
}
},
"interests": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"intent": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"place": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"venue_concept": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
{
"type": "object",
"additionalProperties": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100
},
"propertyNames": {
"minLength": 1
}
}
]
},
"hard": {
"type": "boolean"
},
"min_fit": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"additionalProperties": false
},
"targeting": {
"type": "object",
"properties": {
"personaIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 50
},
"intuiziSegmentIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 50
},
"packageAudienceLens": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contextualTargeting": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100
},
"contextualAvoidance": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100
},
"audience": {
"type": "object",
"properties": {
"age_range": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"income_range": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"culture": {
"type": "array",
"items": {
"type": "string",
"enum": [
"white",
"black",
"asian",
"american_indian",
"hispanic"
]
},
"minItems": 1
},
"education": {
"type": "array",
"items": {
"type": "string",
"enum": [
"hs_or_less",
"some_college",
"bachelors",
"graduate"
]
},
"minItems": 1
},
"gender": {
"type": "array",
"items": {
"type": "string",
"enum": [
"male",
"female"
]
},
"minItems": 1
},
"language": {
"type": "array",
"items": {
"type": "string",
"enum": [
"english_only",
"spanish",
"other_indo_european",
"asian_pacific",
"other"
]
},
"minItems": 1
},
"life_stage": {
"type": "array",
"items": {
"type": "string",
"enum": [
"new_movers",
"settled",
"long_tenured",
"married",
"singles",
"new_parents",
"empty_nesters"
]
},
"minItems": 1
},
"household": {
"type": "boolean"
},
"lifestyle": {
"type": "object",
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"propertyNames": {
"minLength": 1
}
},
"interests": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"intent": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"place": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"venue_concept": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
{
"type": "object",
"additionalProperties": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100
},
"propertyNames": {
"minLength": 1
}
}
]
},
"hard": {
"type": "boolean"
},
"min_fit": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": [
"budgetUsd",
"flightStart",
"flightEnd",
"channels"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"flightStart",
"flightEnd"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
]
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"checkoutUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴save_campaign_draft(advertisementId, campaignName, clientName, landingUrl, screenIds, ...)
Save or update an agency-owned campaign and selected inventory in the advertiser portal. The agency remains the owner and payer; clientName labels the client brief.
Esquema de entrada
{
"type": "object",
"properties": {
"advertisementId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"campaignName": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"clientName": {
"type": "string",
"maxLength": 160
},
"landingUrl": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "Client business or campaign landing page URL."
},
"screenIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 1000,
"default": []
},
"source": {
"type": "string",
"enum": [
"owned",
"vistar",
"mixed"
],
"default": "mixed"
},
"impressions": {
"type": "integer",
"exclusiveMinimum": 0
},
"budgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"ownedBudgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"partnerBudgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"ownedImpressions": {
"type": "integer",
"exclusiveMinimum": 0
},
"partnerImpressions": {
"type": "integer",
"exclusiveMinimum": 0
},
"quoteId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"quoteIds": {
"type": "object",
"properties": {
"owned": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"partner": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"additionalProperties": false
},
"flightStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"flightEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"startTime": {
"type": "string",
"default": "00:00"
},
"endTime": {
"type": "string",
"default": "23:59"
},
"timezone": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "IANA timezone for the local flight."
},
"providerPlan": {
"anyOf": [
{
"type": "object",
"properties": {
"advertisementId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"geography": {
"type": "object",
"properties": {
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180
},
"radius": {
"type": "object",
"properties": {
"center": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lng"
],
"additionalProperties": false
},
"miles": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 500
}
},
"required": [
"center",
"miles"
],
"additionalProperties": false
},
"markets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"code": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"country",
"code"
],
"additionalProperties": false
},
"maxItems": 50
},
"postalCodes": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 200
},
"countryCode": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"polygon": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180
}
},
"required": [
"lat",
"lng"
],
"additionalProperties": false
},
"minItems": 3,
"maxItems": 100
}
},
"additionalProperties": false
},
"budgetUsd": {
"type": "number",
"exclusiveMinimum": 0
},
"flightStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"flightEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"channels": {
"type": "array",
"items": {
"type": "string",
"enum": [
"ctv",
"video",
"audio",
"display"
]
},
"minItems": 1,
"maxItems": 4
},
"selectedProductIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100
},
"personaIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 50
},
"intuiziSegmentIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 50
},
"packageAudienceLens": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contextualTargeting": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100
},
"contextualAvoidance": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100
},
"audience": {
"type": "object",
"properties": {
"age_range": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"income_range": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"culture": {
"type": "array",
"items": {
"type": "string",
"enum": [
"white",
"black",
"asian",
"american_indian",
"hispanic"
]
},
"minItems": 1
},
"education": {
"type": "array",
"items": {
"type": "string",
"enum": [
"hs_or_less",
"some_college",
"bachelors",
"graduate"
]
},
"minItems": 1
},
"gender": {
"type": "array",
"items": {
"type": "string",
"enum": [
"male",
"female"
]
},
"minItems": 1
},
"language": {
"type": "array",
"items": {
"type": "string",
"enum": [
"english_only",
"spanish",
"other_indo_european",
"asian_pacific",
"other"
]
},
"minItems": 1
},
"life_stage": {
"type": "array",
"items": {
"type": "string",
"enum": [
"new_movers",
"settled",
"long_tenured",
"married",
"singles",
"new_parents",
"empty_nesters"
]
},
"minItems": 1
},
"household": {
"type": "boolean"
},
"lifestyle": {
"type": "object",
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"propertyNames": {
"minLength": 1
}
},
"interests": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"intent": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"place": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"venue_concept": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
{
"type": "object",
"additionalProperties": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100
},
"propertyNames": {
"minLength": 1
}
}
]
},
"hard": {
"type": "boolean"
},
"min_fit": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"additionalProperties": false
},
"targeting": {
"type": "object",
"properties": {
"personaIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 50
},
"intuiziSegmentIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 50
},
"packageAudienceLens": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"contextualTargeting": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100
},
"contextualAvoidance": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100
},
"audience": {
"type": "object",
"properties": {
"age_range": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"income_range": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
},
"culture": {
"type": "array",
"items": {
"type": "string",
"enum": [
"white",
"black",
"asian",
"american_indian",
"hispanic"
]
},
"minItems": 1
},
"education": {
"type": "array",
"items": {
"type": "string",
"enum": [
"hs_or_less",
"some_college",
"bachelors",
"graduate"
]
},
"minItems": 1
},
"gender": {
"type": "array",
"items": {
"type": "string",
"enum": [
"male",
"female"
]
},
"minItems": 1
},
"language": {
"type": "array",
"items": {
"type": "string",
"enum": [
"english_only",
"spanish",
"other_indo_european",
"asian_pacific",
"other"
]
},
"minItems": 1
},
"life_stage": {
"type": "array",
"items": {
"type": "string",
"enum": [
"new_movers",
"settled",
"long_tenured",
"married",
"singles",
"new_parents",
"empty_nesters"
]
},
"minItems": 1
},
"household": {
"type": "boolean"
},
"lifestyle": {
"type": "object",
"additionalProperties": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"propertyNames": {
"minLength": 1
}
},
"interests": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"intent": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"place": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
"venue_concept": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 1
},
{
"type": "object",
"additionalProperties": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 100
},
"propertyNames": {
"minLength": 1
}
}
]
},
"hard": {
"type": "boolean"
},
"min_fit": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": [
"budgetUsd",
"flightStart",
"flightEnd",
"channels"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Stable unique key for this action. Reuse this key and unchanged arguments when retrying."
}
},
"required": [
"flightStart",
"flightEnd",
"idempotency_key"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
]
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"checkoutUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴attach_campaign_creative(advertisementId, idempotency_key, creativeFile)
Copy a user-selected creative file into the native campaign asset and moderation flow. Attach artwork before booking. Existing live artwork changes follow the portal replacement workflow.
Esquema de entrada
{
"type": "object",
"properties": {
"advertisementId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Native campaign ID returned by save_campaign_draft."
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Stable unique key for this action. Reuse this key and unchanged arguments when retrying."
},
"creativeFile": {
"type": "object",
"properties": {
"download_url": {
"type": "string",
"format": "uri"
},
"file_id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"mime_type": {
"type": "string",
"maxLength": 100
},
"file_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"download_url",
"file_id"
],
"additionalProperties": false
}
},
"required": [
"advertisementId",
"idempotency_key",
"creativeFile"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
]
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"checkoutUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢prepare_campaign_booking(advertisementId, bookingIds, providerLineIds, quoteId, quoteIds)
Read the exact current campaign selections, total, currency and creative readiness for the buyer to review before payment.
Esquema de entrada
{
"type": "object",
"properties": {
"advertisementId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Native campaign ID returned by save_campaign_draft."
},
"bookingIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 1000,
"default": []
},
"providerLineIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100,
"default": []
},
"quoteId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"quoteIds": {
"type": "object",
"properties": {
"owned": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"partner": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"additionalProperties": false
}
},
"required": [
"advertisementId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
]
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"checkoutUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_campaign_checkout(advertisementId, bookingIds, providerLineIds, quoteId, quoteIds, ...)
Create a Stripe checkout for the exact campaign and total the buyer reviewed. Open the returned checkoutUrl to complete payment. The campaign is booked after the verified native Stripe payment webhook.
Esquema de entrada
{
"type": "object",
"properties": {
"advertisementId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Native campaign ID returned by save_campaign_draft."
},
"bookingIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 1000,
"default": []
},
"providerLineIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 100,
"default": []
},
"quoteId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"quoteIds": {
"type": "object",
"properties": {
"owned": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"partner": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"additionalProperties": false
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Stable unique key for this action. Reuse this key and unchanged arguments when retrying."
},
"reviewedSubtotalUsd": {
"type": "number",
"minimum": 0
},
"reviewedAmount": {
"type": "integer",
"minimum": 0,
"description": "Exact amountMinor from prepare_campaign_booking, in the currency minor unit."
},
"reviewedCurrency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"description": "Exact currency from prepare_campaign_booking."
},
"reviewedSelection": {
"type": "string",
"pattern": "^v1:[a-f0-9]{64}$",
"description": "Exact native reviewedSelection from prepare_campaign_booking; binds the reviewed inventory, flight, quantities and targeting."
}
},
"required": [
"advertisementId",
"idempotency_key",
"reviewedSubtotalUsd",
"reviewedAmount",
"reviewedCurrency",
"reviewedSelection"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
]
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"checkoutUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_campaign_status(advertisementId)
Read the campaign and booking progress from the same order records as the advertiser portal, including creative review, scheduled dates and live fulfillment.
Esquema de entrada
{
"type": "object",
"properties": {
"advertisementId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Native campaign ID returned by save_campaign_draft."
}
},
"required": [
"advertisementId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
]
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"checkoutUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_campaign_delivery(advertisementId, limit)
Read measured campaign delivery and screen performance from the native campaign reporting services.
Esquema de entrada
{
"type": "object",
"properties": {
"advertisementId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Native campaign ID returned by save_campaign_draft."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20
}
},
"required": [
"advertisementId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
]
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"checkoutUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪rebook_campaign(advertisementId, idempotency_key, flightStart, flightEnd)
Copy a previous campaign into a new unpaid campaign for new dates, preserving native creative lineage and obtaining fresh prices. Rebooking requires a new review and payment.
Esquema de entrada
{
"type": "object",
"properties": {
"advertisementId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Native campaign ID returned by save_campaign_draft."
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Stable unique key for this action. Reuse this key and unchanged arguments when retrying."
},
"flightStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
},
"flightEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Local calendar date, YYYY-MM-DD."
}
},
"required": [
"advertisementId",
"idempotency_key",
"flightStart",
"flightEnd"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"inventory",
"plan",
"campaign",
"proposal",
"checkout",
"delivery"
]
},
"advertisementId": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 200
},
{
"type": "null"
}
]
},
"checkoutUrl": {
"type": "string",
"format": "uri"
}
},
"required": [
"kind"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia