此 MCP 可以做什么
Manages digital out-of-home advertising campaigns and media buys across screens, with edge-AI audience sensing, impression tracking, and attribution analytics.
工具
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': True}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', 'properties': {}}
输入模式
{'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}
输入模式
{'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}
近期工具变更
类似的 MCP 服务器
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…