Trillboards DOOH Advertising
Was dieses MCP kann
Manages digital out-of-home advertising campaigns and media buys across screens, with edge-AI audience sensing, impression tracking, and attribution analytics.
Tools
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': True}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', 'properties': {}}
Eingabeschema
{'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}
Eingabeschema
{'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}
Letzte Tool-Änderungen
Ähnliche MCP-Server
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…