Trillboards DOOH Advertising
Qué hace este MCP
Manages digital out-of-home advertising campaigns and media buys across screens, with edge-AI audience sensing, impression tracking, and attribution analytics.
Herramientas
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['signal_type', 'parameters'], 'properties': {'parameters': {'type': 'object', 'properties': {'income': {'enum': ['high', 'upper_mid', 'mid', 'lower_mid', 'low'], 'type': 'string'}, 'lifestyle': {'type': 'string', 'description': 'Lifestyle segment key'}, 'purchase_intent': {'enum': ['high', 'medium', 'low'], 'type': 'string'}, 'iab_audience_segment_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^(?:iab:)?[1-9]\\d*$'}, 'maxItems': 50, 'description': 'Explicit registered IAB Audience Taxonomy 1.1 IDs; inferred labels are never auto-mapped'}}, 'description': 'Signal parameters to activate as targeting', 'additionalProperties': False}, 'screen_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'maxItems': 500, 'description': 'Specific screens to activate on (optional, defaults to all partner screens)'}, 'signal_type': {'type': 'string', 'maxLength': 50, 'minLength': 1, 'description': 'Type of signal to activate (e.g., "audience", "venue", "behavior")'}, 'destinations': {'type': 'array', 'items': {'type': 'object', 'properties': {'type': {'enum': ['dsp', 'dmp', 'data_clean_room'], 'type': 'string'}, 'seat_id': {'type': 'string'}, 'platform': {'type': 'string'}}, 'additionalProperties': True}, 'description': 'Where to push activated segments'}, 'signal_agent_segment_id': {'type': 'string', 'maxLength': 120}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['metric'], 'properties': {'metric': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'The metric to check for anomalies. Extracted from observation payload (e.g., face_count, vehicle_count, confidence, emotional_engagement, crowd_energy, noise_level)'}, 'screen_id': {'type': 'string', 'maxLength': 100, 'description': 'Filter to a specific screen (mongo ID). Optional.'}, 'venue_type': {'type': 'string', 'maxLength': 100, 'description': 'Filter to a specific venue type. Optional.'}, 'lookback_hours': {'type': 'number', 'maximum': 168, 'minimum': 1, 'description': 'Hours of historical data to compute baseline from (default: 24, max: 168)'}, 'threshold_sigma': {'type': 'number', 'maximum': 5, 'minimum': 1, 'description': 'Number of standard deviations to consider anomalous (default: 2.0, range: 1.0-5.0)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['impressions'], 'properties': {'impressions': {'type': 'array', 'items': {'type': 'object', 'required': ['fingerprint', 'ad_id'], 'properties': {'ad_id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Advertisement ID'}, 'timestamp': {'type': 'string', 'format': 'date-time', 'description': 'ISO 8601 timestamp'}, 'fingerprint': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Device fingerprint'}, 'duration_seconds': {'type': 'number', 'maximum': 3600, 'description': 'Display duration', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1, 'description': 'Array of impression objects (max 100)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['screen_id', 'intent'], 'properties': {'intent': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Natural language description of what the screen should sense/detect/measure'}, 'screen_id': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Screen ID (mongo ID) to configure sensing for'}, 'auto_deploy': {'type': 'boolean', 'description': 'If true, automatically push the profile to the device. If false (default), generate only for review.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Campaign name'}, 'end_date': {'type': 'string', 'description': 'Campaign end date (ISO 8601)'}, 'targeting': {'type': 'object', 'properties': {'geo': {'type': 'object', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'city': {'type': 'string', 'maxLength': 100}, 'state': {'type': 'string', 'maxLength': 100}, 'country': {'type': 'string', 'maxLength': 100}, 'radius_km': {'type': 'number', 'maximum': 500, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'schedule': {'type': 'object', 'properties': {'days': {'type': 'array', 'items': {'type': 'integer', 'maximum': 6, 'minimum': 0}, 'description': '0=Sun..6=Sat'}, 'hours': {'type': 'array', 'items': {'type': 'integer', 'maximum': 23, 'minimum': 0}, 'description': '0-23'}}, 'additionalProperties': False}, 'audience_profile': {'type': 'object', 'properties': {'income': {'type': 'string'}, 'lifestyle': {'type': 'string'}, 'min_attention': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'additionalProperties': False}}, 'description': 'Additional targeting criteria', 'additionalProperties': False}, 'budget_cpm': {'type': 'number', 'maximum': 1000, 'description': 'Bid CPM in USD (default: 4.0)', 'exclusiveMinimum': 0}, 'screen_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'maxItems': 500, 'description': 'Specific screen IDs to target (optional, overrides venue/geo targeting)'}, 'start_date': {'type': 'string', 'description': 'Campaign start date (ISO 8601)'}, 'venue_types': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20, 'description': 'Venue types to target: transit, retail, outdoor, office, etc.'}, 'creative_url': {'type': 'string', 'format': 'uri', 'description': 'URL to video/image creative asset'}, 'creative_type': {'enum': ['video', 'image', 'vast'], 'type': 'string', 'description': 'Creative format'}, 'daily_budget_usd': {'type': 'number', 'maximum': 100000, 'minimum': 0, 'description': 'Daily budget cap in USD'}, 'total_budget_usd': {'type': 'number', 'maximum': 10000000, 'minimum': 0, 'description': 'Total campaign budget in USD'}, 'creative_duration': {'type': 'integer', 'maximum': 120, 'minimum': 1, 'description': 'Duration in seconds (default: 15)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id', 'experiment_type'], 'properties': {'target_mde': {'type': 'number', 'maximum': 1, 'minimum': 0.01, 'description': 'Minimum detectable effect (relative, e.g. 0.10 = 10% lift). Default: 0.10'}, 'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}, 'holdout_pct': {'type': 'number', 'maximum': 0.5, 'minimum': 0.05, 'description': 'Fraction of devices to hold out (0.05-0.50). Default: 0.10'}, 'control_dmas': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20}, 'maxItems': 200, 'description': 'DMA codes for control group (no ads)'}, 'target_alpha': {'type': 'number', 'maximum': 0.1, 'minimum': 0.001, 'description': 'Significance level (0.05 or 0.01). Default: 0.05'}, 'target_power': {'type': 'number', 'maximum': 0.99, 'minimum': 0.5, 'description': 'Statistical power (0.80 or 0.90). Default: 0.80'}, 'treatment_dmas': {'type': 'array', 'items': {'type': 'string', 'maxLength': 20}, 'maxItems': 200, 'description': 'DMA codes for treatment group (get ads)'}, 'experiment_type': {'enum': ['geo_holdout', 'ghost_ads', 'psm'], 'type': 'string', 'description': 'Experiment type: geo_holdout (matched DMAs), ghost_ads (PSA control), psm (propensity score matching)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Media buy name'}, 'brand': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'domain': {'type': 'string'}}, 'description': 'Brand reference', 'additionalProperties': True}, 'context': {'type': 'object', 'additionalProperties': {}}, 'buy_spec': {'type': 'object', 'properties': {'geo': {'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'city': {'type': 'string'}, 'state': {'type': 'string'}, 'country': {'type': 'string'}, 'radius_km': {'type': 'number'}}, 'additionalProperties': False}, 'budget': {'type': 'object', 'properties': {'bid_cpm': {'type': 'number'}, 'daily_usd': {'type': 'number'}, 'total_usd': {'type': 'number'}}, 'additionalProperties': False}, 'schedule': {'type': 'object', 'properties': {'days': {'type': 'array', 'items': {'type': 'number'}}, 'hours': {'type': 'array', 'items': {'type': 'number'}}, 'end_date': {'type': 'string'}, 'start_date': {'type': 'string'}}, 'additionalProperties': False}, 'screen_ids': {'type': 'array', 'items': {'type': 'string'}}, 'venue_types': {'type': 'array', 'items': {'type': 'string'}}, 'audience_profile': {'type': 'object', 'additionalProperties': {}}}, 'description': 'Buy specification (legacy)', 'additionalProperties': False}, 'creative': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'type': {'enum': ['video', 'image', 'vast'], 'type': 'string'}, 'duration_seconds': {'type': 'number'}}, 'additionalProperties': False}, 'end_time': {'type': 'string', 'description': 'ISO 8601 end time'}, 'packages': {'type': 'array', 'items': {'type': 'object', 'properties': {'budget': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'object', 'properties': {'amount': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': True}]}, 'bid_price': {'type': 'number', 'minimum': 0}, 'product_id': {'type': 'string'}, 'impressions': {'type': 'number', 'minimum': 0}, 'pricing_option_id': {'type': 'string'}, 'targeting_overlay': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': True}, 'description': 'AdCP product packages to buy'}, 'buyer_ref': {'type': 'string', 'maxLength': 200, 'description': 'External reference ID from the buyer/agency'}, 'start_time': {'type': 'string', 'description': 'ISO 8601 start time'}, 'total_budget': {'type': 'object', 'properties': {'amount': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': True}, 'idempotency_key': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'events'], 'properties': {'url': {'type': 'string', 'format': 'uri', 'description': 'HTTPS endpoint URL to receive webhook events'}, 'events': {'type': 'array', 'items': {'enum': ['device.online', 'device.offline', 'impression.recorded', 'campaign.allocated', 'payout.processed', 'programmatic.ad_started', 'programmatic.ad_ended', 'programmatic.no_fill', 'programmatic.error', 'sensing.threshold_crossed', 'audience.spike', 'audience.venue_busy', 'audience.purchase_intent', 'audience.demographics_update', 'venue.traffic_summary', 'screen_group.created', 'screen_group.updated', 'screen_group.deleted', 'screen_group.member.added', 'screen_group.member.removed', 'screen_group.content_policy.updated', 'screen_group.sensing_config.updated', 'fleet_command.completed', 'fleet_command.failed'], 'type': 'string'}, 'maxItems': 10, 'minItems': 1, 'description': 'Events to subscribe to'}, 'secret': {'type': 'string', 'maxLength': 100, 'description': 'HMAC signing secret for verifying webhook authenticity (optional but recommended)'}, 'description': {'type': 'string', 'maxLength': 500, 'description': 'Human-readable description for this webhook'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['signal_a', 'signal_b'], 'properties': {'filters': {'type': 'object', 'properties': {'daypart': {'enum': ['morning', 'lunch', 'afternoon', 'evening', 'night'], 'type': 'string', 'description': 'Filter by daypart: morning, lunch, afternoon, evening, night'}, 'dma_code': {'type': 'string', 'maxLength': 20, 'description': 'Filter by DMA code for geographic region'}, 'time_range': {'type': 'object', 'properties': {'end': {'type': 'string', 'description': 'End time (ISO 8601)'}, 'start': {'type': 'string', 'description': 'Start time (ISO 8601)'}}, 'description': 'Time range filter', 'additionalProperties': False}, 'venue_type': {'type': 'string', 'maxLength': 100, 'description': 'Filter to a specific venue type'}}, 'description': 'Optional filters to narrow the correlation analysis', 'additionalProperties': False}, 'signal_a': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'First signal to correlate (e.g., face_count, attention_score, crowd_energy, emotional_engagement, vehicle_count, noise_level, purchase_intent, ad_fill_rate)'}, 'signal_b': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Second signal to correlate against signal_a'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['device_id'], 'properties': {'device_id': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Your internal device identifier to delete'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhook_id'], 'properties': {'webhook_id': {'type': 'string', 'pattern': '^(wh_[a-z0-9]+_[a-f0-9]+|[a-f0-9]{24})$', 'description': 'Webhook ID to delete (wh_xxx format or legacy ObjectId)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['path', 'method'], 'properties': {'path': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': 'The operation path (OpenAPI template form, e.g. "/v1/data/screens/{screenId}/audience").'}, 'method': {'type': 'string', 'maxLength': 16, 'minLength': 1, 'description': 'HTTP method (case-insensitive).'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['fingerprint'], 'properties': {'status': {'enum': ['online', 'playing', 'idle', 'error'], 'type': 'string', 'description': 'Current device status'}, 'fingerprint': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Device fingerprint (e.g., "P_abc123")'}, 'current_ad_id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Currently playing ad ID (if status is "playing")'}, 'error_message': {'type': 'string', 'maxLength': 500, 'description': 'Error message (if status is "error")'}, 'uptime_seconds': {'type': 'integer', 'minimum': 0, 'description': 'Device uptime in seconds'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Maximum screens to return (default: 50, max: 200)'}, 'location': {'type': 'object', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude for radius search'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude for radius search'}, 'city': {'type': 'string', 'maxLength': 100, 'description': 'City name'}, 'state': {'type': 'string', 'maxLength': 100, 'description': 'State/province'}, 'radius_km': {'type': 'number', 'maximum': 500, 'description': 'Search radius in kilometers', 'exclusiveMinimum': 0}}, 'description': 'Location filter — use city/state OR lat/lng/radius_km', 'additionalProperties': False}, 'venue_types': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20, 'description': 'Filter by venue types: transit, retail, outdoor, health_beauty, point_care, education, office, entertainment, government, financial, residential'}, 'audience_profile': {'type': 'object', 'properties': {'income': {'enum': ['high', 'upper_mid', 'mid', 'lower_mid', 'low'], 'type': 'string', 'description': 'Target income level'}, 'lifestyle': {'type': 'string', 'maxLength': 50, 'description': 'Target lifestyle segment (professional, student, fitness, luxury_shopper, tech_savvy, etc.)'}, 'min_attention': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Minimum attention score (0-1)'}}, 'description': 'Filter screens by current audience characteristics', 'additionalProperties': False}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id', 'destination'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}, 'destination': {'enum': ['ttd', 'dv360', 'meta', 'cadent', 'mediaocean'], 'type': 'string', 'description': 'DSP destination: ttd (The Trade Desk), dv360 (Google DV360), meta (Meta/Facebook), cadent, mediaocean'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['dataset', 'filters'], 'properties': {'cursor': {'type': 'string', 'maxLength': 2000, 'description': "The previous page's metadata.next_cursor, to read the next page (same dataset and filters)."}, 'format': {'enum': ['json'], 'type': 'string', 'description': 'Export format (default: json). Currently only JSON is supported.'}, 'dataset': {'enum': ['observations', 'audience', 'vehicle', 'cross_signal'], 'type': 'string', 'description': 'Type of dataset to export'}, 'filters': {'type': 'object', 'properties': {'geo': {'type': 'string', 'maxLength': 12, 'description': 'Filter by geohash-6 prefix'}, 'time_range': {'type': 'object', 'properties': {'end': {'type': 'string', 'description': 'End date/time (ISO 8601 or YYYY-MM-DD)'}, 'start': {'type': 'string', 'description': 'Start date/time (ISO 8601 or YYYY-MM-DD)'}}, 'description': 'Time range filter (required for observations/audience/vehicle)', 'additionalProperties': False}, 'venue_type': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20, 'description': 'Filter by venue types'}, 'observation_family': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 10, 'description': 'Filter by observation families (for observations dataset)'}}, 'description': 'Filters to apply to the export', 'additionalProperties': False}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Maximum results to return. Default: 10, max: 200.'}, 'query': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Natural-language description of the target moment. Be descriptive about venue, time, audience, behavior, and conditions.'}, 'venue_type': {'type': 'string', 'maxLength': 100, 'description': 'Filter results to a specific venue type. Optional.'}, 'min_similarity': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Minimum cosine similarity threshold (0-1). Default: 0.7. Lower values return more but less relevant results.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'end_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'End date in YYYY-MM-DD format (optional, defaults to today)'}, 'group_by': {'enum': ['day', 'week', 'month', 'device'], 'type': 'string', 'description': 'How to group the analytics data'}, 'device_id': {'type': 'string', 'maxLength': 100, 'description': 'Filter to a specific device (optional)'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Start date in YYYY-MM-DD format (optional, defaults to 30 days ago)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'end_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'End date (YYYY-MM-DD). Optional, defaults to today.'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Start date (YYYY-MM-DD). Optional, defaults to campaign start.'}, 'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['screen_id', 'hour', 'day'], 'properties': {'day': {'type': 'integer', 'maximum': 6, 'minimum': 0, 'description': 'Day of week (0=Sunday, 1=Monday, ..., 6=Saturday)'}, 'hour': {'type': 'integer', 'maximum': 23, 'minimum': 0, 'description': 'Hour of day (0-23)'}, 'screen_id': {'type': 'string', 'maxLength': 50, 'minLength': 1, 'description': 'Screen ID to forecast'}, 'lookback_days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Days of historical data to use (default: 30)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['screen_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of results (default: 20, max: 100)'}, 'country': {'type': 'string', 'maxLength': 100, 'description': 'Filter by country (optional)'}, 'screen_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Source screen ID to find lookalikes for'}, 'venue_type': {'type': 'string', 'maxLength': 100, 'description': 'Filter by venue type (optional)'}, 'min_similarity': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Minimum cosine similarity threshold 0-1 (default: 0.7)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier (UUID or string ID from create_campaign)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Campaign UUID returned from create_campaign'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['video_id'], 'properties': {'days': {'type': 'integer', 'maximum': 90, 'minimum': 1, 'description': 'Lookback window in days (default: 30, max: 90)'}, 'video_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'YouTube video ID to query performance for'}, 'venue_type': {'type': 'string', 'maxLength': 100, 'description': 'Optional venue type filter (e.g., "retail", "transit", "bar")'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['venue_type'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Maximum recommendations to return (default: 10, max: 100)'}, 'daypart': {'enum': ['morning', 'afternoon', 'evening', 'overnight'], 'type': 'string', 'description': 'Optional daypart filter'}, 'venue_type': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Venue type to get recommendations for (required)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['device_id'], 'properties': {'device_id': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Your internal device identifier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['fingerprint'], 'properties': {'fingerprint': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Device fingerprint (e.g., "P_abc123")'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['screen_id'], 'properties': {'screen_id': {'type': 'string', 'maxLength': 50, 'minLength': 1, 'description': 'Screen ID to get live audience for'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['media_buy_id'], 'properties': {'dimensions': {'type': 'array', 'items': {'enum': ['screen', 'venue', 'hour', 'audience_segment', 'creative', 'day'], 'type': 'string'}, 'description': 'Reporting dimensions to include. Only "screen" is supported; anything else is returned in dimensions_unsupported rather than silently dropped.'}, 'breakdown_by': {'type': 'array', 'items': {'enum': ['screen', 'venue', 'hour', 'audience_segment'], 'type': 'string'}, 'description': 'Dimensions to break down by (legacy, prefer dimensions). Same single supported value.'}, 'media_buy_id': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Media buy ID'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'object', 'additionalProperties': {}}, 'pagination': {'type': 'object', 'properties': {'cursor': {'type': 'string', 'maxLength': 500, 'description': 'Opaque cursor from a previous response'}, 'max_results': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size (1-100, default 50)'}}, 'additionalProperties': False}, 'media_buy_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'maxItems': 100, 'minItems': 1, 'description': 'Specific media buy IDs. When omitted, returns a paginated set matching status_filter.'}, 'status_filter': {'anyOf': [{'enum': ['pending_creatives', 'pending_start', 'active', 'paused', 'completed', 'rejected', 'canceled'], 'type': 'string'}, {'type': 'array', 'items': {'$ref': '#/properties/status_filter/anyOf/0'}, 'minItems': 1}], 'description': "Single status or array of statuses. Defaults to ['active'] when media_buy_ids is omitted; no implicit filter when ids are given."}, 'include_snapshot': {'type': 'boolean', 'description': 'Include a delivery snapshot per package (impressions, spend, pacing_index). Read live off placements, so staleness_seconds is 0.'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'time_range': {'enum': ['today', '7d', '30d'], 'type': 'string', 'description': 'Time range for stats (default: 7d)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'product': {'enum': ['data_api', 'proof_of_play', 'attribution', 'data_marketplace', 'partner_platform', 'programmatic', 'fein_edge_ai'], 'type': 'string', 'description': 'Optional: filter to a specific product (data_api, proof_of_play, attribution, data_marketplace, partner_platform, programmatic, fein_edge_ai)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'brief': {'type': 'string', 'description': 'Natural language campaign brief for AI-driven inventory matching'}, 'market': {'type': 'string', 'maxLength': 100, 'description': 'Market/city to get products for'}, 'filters': {'type': 'object', 'properties': {'channels': {'type': 'array', 'items': {'type': 'string'}}, 'countries': {'type': 'array', 'items': {'type': 'string'}}, 'venue_types': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20}, 'budget_range': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'currency': {'type': 'string'}}, 'additionalProperties': False}, 'format_types': {'type': 'array', 'items': {'type': 'string'}}, 'delivery_type': {'type': 'string'}}, 'description': 'Structured filters for wholesale/refine modes', 'additionalProperties': True}, 'pagination': {'type': 'object', 'properties': {'cursor': {'type': 'string', 'maxLength': 500}, 'max_results': {'type': 'integer', 'maximum': 100, 'minimum': 1}}, 'additionalProperties': False}, 'buying_mode': {'enum': ['brief', 'wholesale', 'refine'], 'type': 'string', 'description': 'AdCP buying mode (default: brief)'}, 'venue_types': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20, 'description': 'Filter by venue types (legacy, prefer filters.venue_types)'}, 'audience_profile': {'type': 'object', 'properties': {'income': {'type': 'string'}, 'lifestyle': {'type': 'string'}, 'min_attention': {'type': 'number', 'maximum': 1, 'minimum': 0}}, 'description': 'Target audience characteristics', 'additionalProperties': False}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Campaign identifier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'pagination': {'type': 'object', 'properties': {'cursor': {'type': 'string', 'maxLength': 200}, 'max_results': {'type': 'integer', 'maximum': 100, 'minimum': 1}}, 'additionalProperties': False}, 'signal_spec': {'anyOf': [{'type': 'string', 'maxLength': 2000}, {'type': 'object', 'properties': {'filters': {'type': 'object', 'properties': {'city': {'type': 'string', 'maxLength': 100}, 'state': {'type': 'string', 'maxLength': 100}, 'income': {'type': 'string'}, 'lifestyle': {'type': 'string'}, 'venue_type': {'type': 'string', 'maxLength': 50}}, 'additionalProperties': False}, 'signal_types': {'type': 'array', 'items': {'enum': ['demographics', 'venue', 'geo', 'behavior'], 'type': 'string'}}}, 'additionalProperties': False}], 'description': 'Natural language description of the desired signals (AdCP form), or a structured Trillboards signal specification.'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Maximum results to return. Default: 20, max: 200.'}, 'min_saf': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Minimum social amplification factor threshold. Default: 1.5. Higher values return only stronger contagion events.'}, 'screen_id': {'type': 'string', 'maxLength': 100, 'description': 'Filter by screen MongoDB ID. Optional.'}, 'time_range': {'type': 'object', 'properties': {'end': {'type': 'string', 'description': 'End time (ISO 8601)'}, 'start': {'type': 'string', 'description': 'Start time (ISO 8601)'}}, 'description': 'Time range filter. Defaults to last 24 hours.', 'additionalProperties': False}, 'venue_type': {'type': 'string', 'maxLength': 100, 'description': 'Filter by venue type (e.g., "bar", "restaurant_qsr", "transit"). Optional.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'group_by': {'enum': ['venue', 'daypart', 'screen'], 'type': 'string', 'description': 'Dimension to group by: "venue", "daypart", or "screen". Default: "venue".'}, 'time_range': {'type': 'object', 'properties': {'end': {'type': 'string', 'description': 'End time (ISO 8601)'}, 'start': {'type': 'string', 'description': 'Start time (ISO 8601)'}}, 'description': 'Time range filter. Defaults to last 7 days.', 'additionalProperties': False}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'account': {'type': 'object', 'properties': {'brand': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253}, 'brand_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'sandbox': {'type': 'boolean'}, 'operator': {'type': 'string', 'maxLength': 253}, 'account_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'context': {'type': 'object', 'additionalProperties': {}}, 'task_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Unique identifier of the task to retrieve, as issued in the `task_id` field of the originating task response.'}, 'include_result': {'type': 'boolean', 'description': "Include the task's result payload when status is completed. Defaults to false for lightweight status-only polls."}, 'include_history': {'type': 'boolean', 'description': 'Include conversation history. Trillboards tasks complete in-process and hold no multi-turn history, so this is accepted and has no effect.'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhook_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of deliveries to return (default: 50, max: 100)'}, 'status': {'enum': ['all', 'success', 'failed'], 'type': 'string', 'description': 'Filter by delivery status'}, 'webhook_id': {'type': 'string', 'pattern': '^(wh_[a-z0-9]+_[a-f0-9]+|[a-f0-9]{24})$', 'description': 'Webhook ID to get deliveries for (wh_xxx format or legacy ObjectId)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'status': {'enum': ['active', 'pending_approval', 'rejected', 'payment_required', 'suspended', 'closed'], 'type': 'string', 'description': 'Filter by account status. Omit to return the account in any status.'}, 'account': {'type': 'object', 'properties': {'brand': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253}, 'brand_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'sandbox': {'type': 'boolean'}, 'operator': {'type': 'string', 'maxLength': 253}, 'account_id': {'type': 'string', 'maxLength': 200}}, 'description': "Exact account filter. Either account_id, or the natural key (brand.domain + operator). Returns empty when it does not match this credential's account — which is how you confirm the key you hold is the one you meant.", 'additionalProperties': False}, 'context': {'type': 'object', 'additionalProperties': {}}, 'sandbox': {'type': 'boolean', 'description': "Filter by sandbox status — matched against the account's real state, not a stub. A sandbox account validates a buy exactly as a live one does (same errors, same codes) but books no placements and marks every response sandbox: true, so it is safe to exercise end to end. Sandbox is our classification, not buyer-settable: ask for a sandbox credential rather than sending sandbox on a live key."}, 'pagination': {'type': 'object', 'properties': {'cursor': {'type': 'string', 'maxLength': 500}, 'max_results': {'type': 'integer', 'maximum': 100, 'minimum': 1}}, 'additionalProperties': False}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'context': {'type': 'object', 'additionalProperties': {}}, 'max_width': {'type': 'number', 'description': 'Maximum render width in pixels (inclusive)'}, 'min_width': {'type': 'number', 'description': 'Minimum render width in pixels (inclusive)'}, 'format_ids': {'type': 'array', 'items': {'type': 'object', 'required': ['agent_url', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'width': {'type': 'number'}, 'height': {'type': 'number'}, 'agent_url': {'type': 'string', 'maxLength': 500}, 'duration_ms': {'type': 'number'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'Return only these formats. Each entry is an AdCP structured format reference ({agent_url, id}), never a bare string.'}, 'max_height': {'type': 'number', 'description': 'Maximum render height in pixels (inclusive)'}, 'min_height': {'type': 'number', 'description': 'Minimum render height in pixels (inclusive)'}, 'pagination': {'type': 'object', 'properties': {'cursor': {'type': 'string', 'maxLength': 500, 'description': 'Opaque cursor from a previous response'}, 'max_results': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size (1-100, default 50)'}}, 'description': 'Cursor-based pagination', 'additionalProperties': False}, 'asset_types': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'minItems': 1, 'description': "Filter to formats containing these asset types, e.g. ['video'] or ['image']."}, 'name_search': {'type': 'string', 'maxLength': 200, 'description': 'Case-insensitive partial match on the format name'}, 'is_responsive': {'type': 'boolean', 'description': 'Filter for responsive formats. Every DOOH panel is a fixed pixel grid, so true matches nothing here.'}, 'publisher_domain': {'type': 'string', 'maxLength': 253, 'description': "Resolve formats for this publisher. This agent derives formats from its own inventory only, so anything other than 'trillboards.com' returns an empty list with UNSUPPORTED_PUBLISHER_DOMAIN."}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ext': {'type': 'object', 'additionalProperties': {}}, 'sort': {'type': 'object', 'additionalProperties': {}}, 'fields': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 100}, 'account': {'type': 'object', 'properties': {'brand': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253}, 'brand_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'sandbox': {'type': 'boolean'}, 'operator': {'type': 'string', 'maxLength': 253}, 'account_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'context': {'type': 'object', 'additionalProperties': {}}, 'filters': {'type': 'object', 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100}, 'maxItems': 50}, 'status': {'anyOf': [{'enum': ['processing', 'pending_review', 'approved', 'rejected', 'archived'], 'type': 'string'}, {'type': 'array', 'items': {'enum': ['processing', 'pending_review', 'approved', 'rejected', 'archived'], 'type': 'string'}, 'minItems': 1}], 'description': 'AdCP creative-status: processing | pending_review | approved | rejected | archived'}, 'format_ids': {'type': 'array', 'maxItems': 200}, 'creative_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'maxItems': 200}, 'media_buy_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'maxItems': 200}}, 'description': 'Narrow the result set. All fields optional.', 'additionalProperties': False}, 'pagination': {'type': 'object', 'properties': {'cursor': {'type': 'string', 'maxLength': 500}, 'max_results': {'type': 'integer', 'maximum': 100, 'minimum': 1}}, 'additionalProperties': False}, 'include_items': {'type': 'boolean'}, 'include_purged': {'type': 'boolean'}, 'include_pricing': {'type': 'boolean'}, 'include_snapshot': {'type': 'boolean'}, 'include_variables': {'type': 'boolean'}, 'include_assignments': {'type': 'boolean', 'description': 'Include which media buys each creative is attached to.'}, 'webhook_activity_limit': {'type': 'integer', 'maximum': 1000, 'minimum': 0}, 'include_webhook_activity': {'type': 'boolean'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of devices to return (default: 50, max: 100)'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Pagination offset'}, 'status': {'enum': ['all', 'online', 'offline'], 'type': 'string', 'description': 'Filter by device status'}, 'device_type': {'enum': ['vending_machine', 'kiosk', 'tablet', 'display', 'digital_signage', 'other'], 'type': 'string', 'description': 'Filter by device type'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'surface': {'type': 'string', 'maxLength': 64, 'description': 'Filter to one surface (e.g. "data-api").'}, 'agent_safe': {'type': 'boolean', 'description': 'When true, return only endpoints flagged agent-safe.'}, 'idempotent': {'type': 'boolean', 'description': 'When true, return only endpoints flagged idempotent.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'account': {'type': 'object', 'properties': {'brand': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253}, 'brand_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'sandbox': {'type': 'boolean'}, 'operator': {'type': 'string', 'maxLength': 253}, 'account_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'context': {'type': 'object', 'additionalProperties': {}}, 'filters': {'type': 'object', 'properties': {'status': {'enum': ['submitted', 'working', 'input-required', 'completed', 'canceled', 'failed', 'rejected', 'auth-required', 'unknown'], 'type': 'string', 'description': 'Single task status to match'}, 'statuses': {'type': 'array', 'items': {'enum': ['submitted', 'working', 'input-required', 'completed', 'canceled', 'failed', 'rejected', 'auth-required', 'unknown'], 'type': 'string'}, 'description': 'Task statuses to match (enums/task-status.json)'}, 'task_type': {'enum': ['create_media_buy', 'update_media_buy', 'media_buy_delivery', 'sync_creatives', 'build_creative', 'activate_signal', 'get_products', 'get_signals', 'create_property_list', 'update_property_list', 'get_property_list', 'list_property_lists', 'delete_property_list', 'sync_accounts', 'get_account_financials', 'get_creative_delivery', 'sync_event_sources', 'sync_audiences', 'sync_catalogs', 'log_event', 'get_brand_identity', 'search_brands', 'get_rights', 'acquire_rights'], 'type': 'string', 'description': 'Single task type to match'}, 'task_types': {'type': 'array', 'items': {'enum': ['create_media_buy', 'update_media_buy', 'media_buy_delivery', 'sync_creatives', 'build_creative', 'activate_signal', 'get_products', 'get_signals', 'create_property_list', 'update_property_list', 'get_property_list', 'list_property_lists', 'delete_property_list', 'sync_accounts', 'get_account_financials', 'get_creative_delivery', 'sync_event_sources', 'sync_audiences', 'sync_catalogs', 'log_event', 'get_brand_identity', 'search_brands', 'get_rights', 'acquire_rights'], 'type': 'string'}, 'description': 'Task types to match (enums/task-type.json)'}}, 'description': 'Narrow the returned tasks.', 'additionalProperties': False}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size (max 100, default 50)'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Rows to skip'}}, 'additionalProperties': False}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['media_buy_id', 'event'], 'properties': {'event': {'type': 'object', 'required': ['event_id', 'event_type'], 'properties': {'event_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Unique event ID for dedup'}, 'metadata': {'type': 'object', 'description': 'Additional event metadata', 'additionalProperties': {}}, 'screen_id': {'type': 'string', 'description': 'Attributed screen ID (optional)'}, 'timestamp': {'type': 'string', 'description': 'Event timestamp (ISO 8601, defaults to now)'}, 'event_type': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Event type: store_visit, purchase, app_install, website_visit, custom'}, 'value_cents': {'type': 'number', 'description': 'Event value in cents (USD)'}, 'event_source': {'type': 'string', 'description': 'Source system for the event (e.g., mmp, pixel, postback, manual)'}}, 'description': 'Event data', 'additionalProperties': False}, 'media_buy_id': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Media buy ID'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['question'], 'properties': {'question': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Natural language question about the predicted trend or outcome'}, 'screen_id': {'type': 'string', 'maxLength': 100, 'description': 'Filter predictions to a specific screen (mongo ID). Optional.'}, 'venue_type': {'type': 'string', 'maxLength': 100, 'description': 'Filter predictions to a specific venue type. Optional.'}, 'time_horizon': {'type': 'string', 'pattern': '^\\d+d$', 'description': 'How far ahead to predict (e.g., "1d", "3d", "7d", "14d"). Default: "7d", max: "30d"'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['moment_description', 'creative_id'], 'properties': {'creative_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'The creative/ad ID to predict performance for.'}, 'moment_description': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Natural-language description of the target moment context. Include venue type, time of day, audience size, demographics, attention level, etc.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['media_buy_id', 'feedback'], 'properties': {'feedback': {'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': ['bid_response', 'conversion', 'quality', 'pacing'], 'type': 'string', 'description': 'Type of feedback'}, 'message': {'type': 'string', 'description': 'Free-form feedback'}, 'quality_score': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': '0-1 quality assessment'}, 'preferred_hours': {'type': 'array', 'items': {'type': 'integer', 'maximum': 23, 'minimum': 0}}, 'avg_bid_price_cpm': {'type': 'number'}, 'fill_rate_percent': {'type': 'number'}}, 'description': 'Performance feedback data', 'additionalProperties': False}, 'media_buy_id': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Media buy ID'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tier'], 'properties': {'tier': {'enum': ['tier_500', 'tier_2000', 'tier_5000'], 'type': 'string', 'description': 'Credit purchase tier'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'type': {'type': 'string', 'maxLength': 100, 'description': 'Filter by change category: "breaking", "additive", "deprecation", "fix". Comma-separated for multiple.'}, 'since': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Only entries dated on or after this date (YYYY-MM-DD). Unreleased entries are always included.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'Maximum observations to return (default: 100, max: 1000)'}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Natural language query describing what observations to find'}, 'filters': {'type': 'object', 'properties': {'geohash': {'type': 'string', 'maxLength': 12, 'description': 'Filter by geohash-6 prefix for geographic area'}, 'device_id': {'type': 'string', 'maxLength': 100, 'description': 'Filter to a specific device ID'}, 'screen_id': {'type': 'string', 'maxLength': 100, 'description': 'Filter to a specific screen (mongo ID)'}, 'time_range': {'type': 'object', 'properties': {'end': {'type': 'string', 'description': 'End time (ISO 8601)'}, 'start': {'type': 'string', 'description': 'Start time (ISO 8601)'}}, 'description': 'Time range filter', 'additionalProperties': False}, 'venue_type': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20, 'description': 'Filter by venue type: retail, transit, office, restaurant_qsr, entertainment, healthcare, outdoor, etc.'}, 'observation_family': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 10, 'description': 'Filter by observation family: audience, vehicle, environment, commerce'}}, 'description': 'Structured filters to narrow results', 'additionalProperties': False}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['moment_description', 'creative_ids'], 'properties': {'creative_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 20, 'minItems': 1, 'description': 'Array of creative/ad IDs to rank. Maximum 20 candidates.'}, 'moment_description': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Natural-language description of the target moment context.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['fingerprint', 'ad_id'], 'properties': {'ad_id': {'type': 'string', 'pattern': '^[0-9a-f]{24}$', 'description': 'Advertisement ID (MongoDB ObjectId)'}, 'metadata': {'type': 'object', 'description': 'Additional impression metadata', 'additionalProperties': {}}, 'timestamp': {'type': 'string', 'format': 'date-time', 'description': 'ISO 8601 timestamp when impression occurred (optional, defaults to now)'}, 'fingerprint': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Device fingerprint (e.g., "P_abc123")'}, 'duration_seconds': {'type': 'number', 'maximum': 3600, 'description': 'How long the ad was displayed (seconds)', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['device_id'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'description': 'Human-readable device name'}, 'specs': {'type': 'object', 'properties': {'os': {'type': 'string', 'maxLength': 100, 'description': 'Operating system'}, 'model': {'type': 'string', 'maxLength': 100, 'description': 'Device model'}, 'browser': {'type': 'string', 'maxLength': 100, 'description': 'Browser/WebView type'}, 'orientation': {'enum': ['landscape', 'portrait'], 'type': 'string'}, 'screen_width': {'type': 'integer', 'description': 'Screen width in pixels', 'exclusiveMinimum': 0}, 'screen_height': {'type': 'integer', 'description': 'Screen height in pixels', 'exclusiveMinimum': 0}}, 'description': 'Device specifications', 'additionalProperties': False}, 'location': {'type': 'object', 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90, 'description': 'Latitude'}, 'lng': {'type': 'number', 'maximum': 180, 'minimum': -180, 'description': 'Longitude'}, 'zip': {'type': 'string', 'maxLength': 20, 'description': 'Postal code'}, 'city': {'type': 'string', 'maxLength': 100, 'description': 'City'}, 'state': {'type': 'string', 'maxLength': 100, 'description': 'State/province'}, 'address': {'type': 'string', 'maxLength': 200, 'description': 'Street address'}, 'country': {'type': 'string', 'maxLength': 100, 'description': 'Country'}, 'venue_type': {'type': 'string', 'maxLength': 100, 'description': 'Venue type (office, retail, gym, etc.)'}}, 'description': 'Device location information', 'additionalProperties': False}, 'metadata': {'type': 'object', 'description': 'Additional custom metadata', 'additionalProperties': {}}, 'device_id': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Your internal unique device identifier'}, 'device_type': {'enum': ['vending_machine', 'kiosk', 'tablet', 'display', 'digital_signage', 'other'], 'type': 'string', 'description': 'Type of device'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['company_name', 'email'], 'properties': {'email': {'type': 'string', 'format': 'email', 'description': 'Contact email for the partner account'}, 'website': {'type': 'string', 'format': 'uri', 'description': 'Company website URL (optional)'}, 'industry': {'type': 'string', 'maxLength': 100, 'description': 'Industry type (e.g., "vending", "retail", "hospitality")'}, 'company_name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Company or organization name'}, 'contact_name': {'type': 'string', 'maxLength': 100, 'description': 'Primary contact person name (optional)'}, 'contact_phone': {'type': 'string', 'maxLength': 20, 'description': 'Contact phone number (optional)'}, 'expected_devices': {'type': 'integer', 'description': 'Estimated number of devices to connect', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Maximum results to return (default: 20, max: 100)'}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 3, 'description': 'Natural language search query (min 3 characters)'}, 'min_similarity': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Minimum cosine similarity threshold (default: 0.5, range: 0-1)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of results (default: 20, max: 100)'}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Natural language description of the audience/scene to search for'}, 'since': {'type': 'string', 'pattern': '^\\d+[hd]$', 'description': 'Time window for scene data (e.g., "1h", "24h", "7d"). Default: "24h"'}, 'min_similarity': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': 'Minimum semantic similarity threshold 0-1 (default: 0.5)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Maximum results to return (default: 20, max: 100)'}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Natural language description of the observation moments to search for'}, 'filters': {'type': 'object', 'properties': {'time_range': {'type': 'object', 'properties': {'end': {'type': 'string', 'description': 'End time (ISO 8601). Default: now'}, 'start': {'type': 'string', 'description': 'Start time (ISO 8601). Default: end - 30 days'}}, 'description': 'Time range filter. Omitted ends default to the last 30 days (end = now, start = end - 30d) — the search is always time-bounded.', 'additionalProperties': False}, 'venue_type': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20, 'description': 'Filter by venue type'}, 'observation_family': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 10, 'description': 'Filter by observation family: audience, vehicle, environment, commerce'}}, 'description': 'Additional structured filters to narrow semantic search', 'additionalProperties': False}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['payment_method_id'], 'properties': {'payment_method_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Stripe payment method token (pm_xxx) from Stripe.js or Elements'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['idempotency_key', 'accounts'], 'properties': {'context': {'type': 'object', 'additionalProperties': {}}, 'dry_run': {'type': 'boolean', 'description': 'Echo what would happen without applying it. Reported back as dry_run.'}, 'accounts': {'type': 'array', 'items': {'type': 'object', 'properties': {'brand': {'$ref': '#/properties/accounts/items/properties/account/properties/brand'}, 'account': {'type': 'object', 'properties': {'brand': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253}, 'brand_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'sandbox': {'type': 'boolean'}, 'operator': {'type': 'string', 'maxLength': 253}, 'account_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'billing': {'enum': ['operator', 'agent', 'advertiser'], 'type': 'string', 'description': "Who we invoice on this account. APPLIED and stored. 'operator' = you, buying direct; 'agent' = you are a buying agent consolidating across the brands you front. See account.supported_billing in get_adcp_capabilities for the accepted set — 'advertiser' is refused with a reason."}, 'sandbox': {'type': 'boolean'}, 'operator': {'type': 'string', 'maxLength': 253, 'description': "Domain of the entity operating on the brand's behalf"}, 'payment_terms': {'enum': ['net_15', 'net_30', 'net_45', 'net_60', 'net_90', 'prepay'], 'type': 'string'}, 'billing_entity': {'type': 'object', 'description': 'Legal/tax details of the invoiced party. Not applied — see warnings.', 'additionalProperties': {}}, 'notification_configs': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'maxItems': 16}, 'preferred_reporting_protocol': {'type': 'string', 'maxLength': 50}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Per-account entries. Each uses ONE key shape: `account` (settings-update) or the flat brand + operator + billing trio (provisioning).'}, 'delete_missing': {'type': 'boolean', 'description': 'Not supported — this seller never deletes an account from a sync.'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Client-generated key for safe retries. This operation has no side effects, so a replay returns the same result.'}, 'push_notification_config': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['creatives'], 'properties': {'ext': {'type': 'object', 'additionalProperties': {}}, 'account': {'type': 'object', 'properties': {'brand': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253}, 'brand_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'sandbox': {'type': 'boolean'}, 'operator': {'type': 'string', 'maxLength': 253}, 'account_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'context': {'type': 'object', 'additionalProperties': {}}, 'dry_run': {'type': 'boolean'}, 'creatives': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string', 'maxLength': 300}, 'type': {'enum': ['video', 'image', 'vast'], 'type': 'string'}, 'width': {'type': 'number'}, 'assets': {'type': 'object', 'additionalProperties': {}}, 'height': {'type': 'number'}, 'format_id': {'anyOf': [{'type': 'object', 'required': ['agent_url', 'id'], 'properties': {'id': {'type': 'string', 'maxLength': 200}, 'width': {'type': 'number'}, 'height': {'type': 'number'}, 'agent_url': {'type': 'string', 'maxLength': 500}, 'duration_ms': {'type': 'number'}}, 'additionalProperties': False}, {'type': 'string'}], 'description': 'AdCP creative format ID (e.g., dooh_landscape_1920x1080)'}, 'creative_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'format_kind': {'type': 'string', 'maxLength': 100}, 'file_size_mb': {'type': 'number'}, 'duration_seconds': {'type': 'number'}}, 'additionalProperties': True}, 'maxItems': 10, 'minItems': 1, 'description': 'Creative assets to validate'}, 'assignments': {'type': 'array', 'items': {'type': 'object', 'required': ['creative_id'], 'properties': {'package_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'creative_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'media_buy_id': {'type': 'string', 'maxLength': 100, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100}, 'creative_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'maxItems': 200}, 'media_buy_id': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Media buy ID'}, 'delete_missing': {'type': 'boolean'}, 'idempotency_key': {'type': 'string', 'maxLength': 200}, 'validation_mode': {'type': 'string', 'maxLength': 50}, 'push_notification_config': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'account': {'type': 'object', 'properties': {'brand': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253}, 'brand_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'sandbox': {'type': 'boolean'}, 'operator': {'type': 'string', 'maxLength': 253}, 'account_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'context': {'type': 'object', 'additionalProperties': {}}, 'task_id': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Unique identifier of the task to retrieve, as issued in the `task_id` field of the originating task response.'}, 'include_result': {'type': 'boolean', 'description': "Include the task's result payload when status is completed. Defaults to false for lightweight status-only polls."}, 'include_history': {'type': 'boolean', 'description': 'Include conversation history. Trillboards tasks complete in-process and hold no multi-turn history, so this is accepted and has no effect.'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'account': {'type': 'object', 'properties': {'brand': {'type': 'object', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'maxLength': 253}, 'brand_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'sandbox': {'type': 'boolean'}, 'operator': {'type': 'string', 'maxLength': 253}, 'account_id': {'type': 'string', 'maxLength': 200}}, 'additionalProperties': False}, 'context': {'type': 'object', 'additionalProperties': {}}, 'filters': {'type': 'object', 'properties': {'status': {'enum': ['submitted', 'working', 'input-required', 'completed', 'canceled', 'failed', 'rejected', 'auth-required', 'unknown'], 'type': 'string', 'description': 'Single task status to match'}, 'statuses': {'type': 'array', 'items': {'enum': ['submitted', 'working', 'input-required', 'completed', 'canceled', 'failed', 'rejected', 'auth-required', 'unknown'], 'type': 'string'}, 'description': 'Task statuses to match (enums/task-status.json)'}, 'task_type': {'enum': ['create_media_buy', 'update_media_buy', 'media_buy_delivery', 'sync_creatives', 'build_creative', 'activate_signal', 'get_products', 'get_signals', 'create_property_list', 'update_property_list', 'get_property_list', 'list_property_lists', 'delete_property_list', 'sync_accounts', 'get_account_financials', 'get_creative_delivery', 'sync_event_sources', 'sync_audiences', 'sync_catalogs', 'log_event', 'get_brand_identity', 'search_brands', 'get_rights', 'acquire_rights'], 'type': 'string', 'description': 'Single task type to match'}, 'task_types': {'type': 'array', 'items': {'enum': ['create_media_buy', 'update_media_buy', 'media_buy_delivery', 'sync_creatives', 'build_creative', 'activate_signal', 'get_products', 'get_signals', 'create_property_list', 'update_property_list', 'get_property_list', 'list_property_lists', 'delete_property_list', 'sync_accounts', 'get_account_financials', 'get_creative_delivery', 'sync_event_sources', 'sync_audiences', 'sync_catalogs', 'log_event', 'get_brand_identity', 'search_brands', 'get_rights', 'acquire_rights'], 'type': 'string'}, 'description': 'Task types to match (enums/task-type.json)'}}, 'description': 'Narrow the returned tasks.', 'additionalProperties': False}, 'pagination': {'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size (max 100, default 50)'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Rows to skip'}}, 'additionalProperties': False}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['webhook_id'], 'properties': {'event': {'enum': ['device.online', 'device.offline', 'impression.recorded', 'campaign.allocated', 'payout.processed', 'programmatic.ad_started', 'programmatic.ad_ended', 'programmatic.no_fill', 'programmatic.error', 'sensing.threshold_crossed', 'audience.spike', 'audience.venue_busy', 'audience.purchase_intent', 'audience.demographics_update', 'venue.traffic_summary', 'screen_group.created', 'screen_group.updated', 'screen_group.deleted', 'screen_group.member.added', 'screen_group.member.removed', 'screen_group.content_policy.updated', 'screen_group.sensing_config.updated', 'fleet_command.completed', 'fleet_command.failed'], 'type': 'string', 'description': 'Event type to simulate (optional, defaults to device.online)'}, 'webhook_id': {'type': 'string', 'pattern': '^(wh_[a-z0-9]+_[a-f0-9]+|[a-f0-9]{24})$', 'description': 'Webhook ID to test (wh_xxx format or legacy ObjectId)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['media_buy_id'], 'properties': {'ext': {'type': 'object', 'additionalProperties': {}}, 'paused': {'type': 'boolean'}, 'account': {'type': 'object', 'additionalProperties': {}}, 'context': {'type': 'object', 'additionalProperties': {}}, 'updates': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'budget': {'type': 'object', 'properties': {'bid_cpm': {'type': 'number'}, 'daily_usd': {'type': 'number'}, 'total_usd': {'type': 'number'}}, 'additionalProperties': False}, 'status': {'enum': ['active', 'paused', 'cancelled'], 'type': 'string'}, 'end_date': {'type': 'string'}, 'targeting': {'type': 'object', 'additionalProperties': {}}, 'screen_ids': {'type': 'array', 'items': {'type': 'string'}}, 'start_date': {'type': 'string'}}, 'description': 'Fields to update', 'additionalProperties': False}, 'canceled': {'type': 'boolean'}, 'end_time': {'type': 'string'}, 'packages': {'type': 'array', 'items': {'type': 'object', 'required': ['package_id'], 'properties': {'package_id': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'targeting_overlay': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}]}, 'creative_assignments': {'type': 'array', 'items': {'type': 'object', 'required': ['creative_id'], 'properties': {'creative_id': {'type': 'string', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100}}, 'additionalProperties': True}}, 'revision': {'type': 'integer'}, 'start_time': {'anyOf': [{'type': 'string'}, {'type': 'string', 'const': 'asap'}]}, 'media_buy_id': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Media buy ID to update'}, 'new_packages': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}, 'idempotency_key': {'type': 'string', 'maxLength': 200}, 'invoice_recipient': {'type': 'object', 'additionalProperties': {}}, 'reporting_webhook': {'type': 'object', 'additionalProperties': {}}, 'cancellation_reason': {'type': 'string', 'maxLength': 500}, 'push_notification_config': {'type': 'object', 'additionalProperties': {}}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['path', 'method'], 'properties': {'path': {'type': 'string', 'maxLength': 256, 'minLength': 1, 'description': 'Operation path (OpenAPI template form).'}, 'method': {'type': 'string', 'maxLength': 16, 'minLength': 1}, 'payload': {'description': 'Shape is operation-dependent. GET → { query?, params? }. POST → body + optional { query?, params? }.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Max proofs to return (default: 1000, used with campaign_id)'}, 'cursor': {'type': 'string', 'maxLength': 200, 'description': 'Pagination cursor from previous response (used with campaign_id)'}, 'end_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'End date for proof query (YYYY-MM-DD, used with campaign_id)'}, 'start_date': {'type': 'string', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Start date for proof query (YYYY-MM-DD, used with campaign_id)'}, 'campaign_id': {'type': 'string', 'maxLength': 128, 'description': 'Campaign ID to get proofs for (mutually exclusive with proof_payload)'}, 'proof_payload': {'type': 'object', 'required': ['signature', 'timestamp'], 'properties': {'adId': {'type': 'string'}, 'deviceId': {'type': 'string'}, 'screenId': {'type': 'string'}, 'signature': {'type': 'string', 'description': 'Signature string (ed25519=... or sha256=...)'}, 'timestamp': {'type': 'string', 'description': 'ISO 8601 timestamp'}, 'impressionId': {'type': 'string'}, 'signatureVersion': {'type': 'string', 'description': 'v1 or v2'}}, 'description': 'Proof data to verify (mutually exclusive with campaign_id). Must include: signature, timestamp, adId, impressionId, screenId, deviceId', 'additionalProperties': False}}, 'additionalProperties': False}
Cambios recientes en herramientas
Servidores MCP similares
SharksAPI.AI
Provides marketing analytics and actions across GA4, Search Console, Google Ads, social channels, SEO, WordPress, and marketing p…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
Stratalize Intelligence
Provides vendor, market, SaaS, workforce, government contract, public company, regulatory, competitive, and AI-brand intelligence…
captapi
Retrieves social media profiles, posts, engagement metrics, comments, marketplace listings, events, and Meta advertising data acr…
CorpusIQ
Connects authenticated users to business systems such as CRM, ecommerce, advertising, analytics, email marketing, SEO, calendars,…
Rahul D Sarker: Marketing & RevOps Tools
Provides marketing, revenue operations, sales, advertising, SaaS, and conversion calculators, along with article search and consu…
rankparse-mcp
Provides SEO and search marketing research including backlinks, authority, competitor gaps, Google Ads keyword metrics, and Googl…