Deploys campaigns to multiple ad platforms simultaneously (Google, Meta, LinkedIn, X, Reddit, TikTok, Amazon, The Trade Desk, Amazon DSP). Use for launching unified campaigns, multi-channel rollouts, or synchronized campaign deployment.
71%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/cross-platform-launcher/SKILL.mdDeploy advertising campaigns to multiple platforms simultaneously from a single unified campaign definition. Supports Google Ads, Meta Ads, LinkedIn Ads, X Ads, Reddit Ads, TikTok Ads, Amazon Ads, The Trade Desk, and Amazon DSP.
Create a campaign definition JSON file:
{
"name": "Q1 2026 Lead Generation",
"objective": "LEAD_GENERATION",
"budget": {
"total_daily": 500,
"currency": "USD",
"distribution": "weighted",
"weights": {
"google": 0.35,
"meta": 0.25,
"linkedin": 0.20,
"x": 0.10,
"reddit": 0.10
}
},
"schedule": {
"start_date": "2026-02-01",
"end_date": "2026-03-31"
},
"targeting": {
"locations": ["US", "CA", "GB"],
"age_min": 25,
"age_max": 55,
"interests": ["marketing", "advertising", "business"],
"job_titles": ["Marketing Manager", "CMO", "Director of Marketing"]
},
"platforms": ["google", "meta", "linkedin", "x", "reddit"],
"status": "PAUSED"
}python3 scripts/validate_unified_campaign.py \
--config campaign.json \
--check-credentials \
--check-budgetspython3 scripts/launch_unified_campaign.py \
--config campaign.json \
--dry-runpython3 scripts/launch_unified_campaign.py \
--config campaign.jsonpython3 scripts/check_deployment_status.py \
--deployment-id dep_abc123python3 scripts/sync_deployment_status.py \
--deployment-id dep_abc123python3 scripts/launch_unified_campaign.py \
--name "Spring Sale 2026" \
--objective WEBSITE_TRAFFIC \
--daily-budget 200 \
--platforms google,meta \
--locations US \
--status PAUSEDpython3 scripts/launch_unified_campaign.py \
--name "Enterprise Demo Requests" \
--objective LEAD_GENERATION \
--daily-budget 500 \
--platforms linkedin,google \
--job-titles "CTO,VP Engineering,Director IT" \
--industries "Technology,Software" \
--status PAUSEDpython3 scripts/launch_unified_campaign.py \
--name "Brand Awareness 2026" \
--objective BRAND_AWARENESS \
--daily-budget 1000 \
--platforms google,meta,linkedin,x,reddit \
--distribution weighted \
--weights "google:0.30,meta:0.25,linkedin:0.20,x:0.15,reddit:0.10" \
--status PAUSED| Unified Objective | Google Ads | Meta Ads | X Ads | TikTok | Amazon | TTD | Amazon DSP | ||
|---|---|---|---|---|---|---|---|---|---|
BRAND_AWARENESS | Display/Video | REACH | BRAND_AWARENESS | AWARENESS | AWARENESS | REACH | - | MaximizeReach | AWARENESS |
WEBSITE_TRAFFIC | Search/Display | TRAFFIC | WEBSITE_VISITS | CLICKS | TRAFFIC | TRAFFIC | - | MaximizeClicks | CONSIDERATION |
LEAD_GENERATION | Search/Lead Forms | LEAD_GENERATION | LEAD_GENERATION | LEADS | CONVERSIONS | LEAD_GENERATION | - | MaximizeConversions | CONVERSION |
CONVERSIONS | Search/pMax | CONVERSIONS | WEBSITE_CONVERSIONS | CONVERSIONS | CONVERSIONS | CONVERSIONS | PURCHASES | MaximizeConversions | CONVERSION |
APP_INSTALLS | App | APP_INSTALLS | - | APP_INSTALL | APP_INSTALL | APP_PROMOTION | - | - | - |
VIDEO_VIEWS | Video | VIDEO_VIEWS | VIDEO_VIEWS | VIDEO_VIEWS | VIDEO_VIEWS | VIDEO_VIEWS | - | ViewableImpressions | AWARENESS |
ENGAGEMENT | Display | ENGAGEMENT | ENGAGEMENT | ENGAGEMENTS | ENGAGEMENT | ENGAGEMENT | - | MaximizeClicks | CONSIDERATION |
| Mode | Description |
|---|---|
equal | Split budget equally across all platforms |
weighted | Split budget by specified weights (must sum to 1.0) |
custom | Specify exact amounts per platform |
performance | Auto-optimize based on historical ROAS (requires data) |
| Parameter | Required | Default | Description |
|---|---|---|---|
--config | No | - | Path to campaign JSON config file |
--name | Yes* | - | Campaign name (*required if no config) |
--objective | Yes* | - | Unified campaign objective |
--daily-budget | Yes* | - | Total daily budget in USD |
--platforms | Yes* | all | Comma-separated platform list |
--distribution | No | equal | Budget distribution mode |
--weights | No | - | Platform weights for weighted distribution |
--locations | No | US | Comma-separated geo targets |
--start-date | No | tomorrow | Campaign start date (YYYY-MM-DD) |
--end-date | No | - | Campaign end date (YYYY-MM-DD) |
--status | No | PAUSED | Initial campaign status |
--dry-run | No | false | Preview without deploying |
--parallel | No | true | Deploy to platforms in parallel |
| Script | Purpose |
|---|---|
launch_unified_campaign.py | Main launcher - deploys to all platforms |
validate_unified_campaign.py | Validate config and credentials |
check_deployment_status.py | Check status of a deployment |
sync_deployment_status.py | Sync deployment status to database |
list_active_deployments.py | List all active multi-platform deployments |
pause_deployment.py | Pause campaigns across all platforms |
resume_deployment.py | Resume paused deployment |
update_deployment_budget.py | Update budget across all platforms |
{
"success": true,
"deployment_id": "dep_20260118_abc123",
"name": "Q1 2026 Lead Generation",
"total_budget": 500,
"currency": "USD",
"platforms": {
"google": {
"success": true,
"campaign_id": "customers/123/campaigns/456",
"budget_allocated": 175,
"status": "PAUSED"
},
"meta": {
"success": true,
"campaign_id": "23849573845",
"budget_allocated": 125,
"status": "PAUSED"
},
"linkedin": {
"success": true,
"campaign_id": "389457839",
"budget_allocated": 100,
"status": "PAUSED"
},
"x": {
"success": true,
"campaign_id": "1234567890",
"budget_allocated": 50,
"status": "PAUSED"
},
"reddit": {
"success": true,
"campaign_id": "t5_abc123",
"budget_allocated": 50,
"status": "PAUSED"
}
},
"created_at": "2026-01-18T10:30:00Z"
}Before deploying, the launcher validates:
GOOGLE_ADS_DEVELOPER_TOKENGOOGLE_ADS_CUSTOMER_IDMETA_AD_ACCOUNT_IDLINKEDIN_AD_ACCOUNT_IDTWITTER_AD_ACCOUNT_IDREDDIT_AD_ACCOUNT_IDTIKTOK_ADVERTISER_IDAMAZON_ADS_PROFILE_IDTTD_AUTH_TOKEN and TTD_ADVERTISER_IDVersion: "Kokai"AMAZON_DSP_PROFILE_ID and AMAZON_DSP_ADVERTISER_IDRequired per platform:
# Google Ads
GOOGLE_ADS_DEVELOPER_TOKEN
GOOGLE_ADS_CUSTOMER_ID
GOOGLE_ADS_LOGIN_CUSTOMER_ID
# Meta Ads
META_AD_ACCOUNT_ID
META_ACCESS_TOKEN
# LinkedIn Ads
LINKEDIN_AD_ACCOUNT_ID
LINKEDIN_ACCESS_TOKEN
# X Ads
TWITTER_AD_ACCOUNT_ID
X_ACCESS_TOKEN
# Reddit Ads
REDDIT_AD_ACCOUNT_ID
REDDIT_ACCESS_TOKEN
# TikTok Ads
TIKTOK_ADVERTISER_ID
TIKTOK_ACCESS_TOKEN
# Amazon Ads
AMAZON_ADS_PROFILE_ID
AMAZON_ACCESS_TOKEN
# The Trade Desk
TTD_AUTH_TOKEN
TTD_ADVERTISER_ID
TTD_ENVIRONMENT # sandbox or prod
# Amazon DSP
AMAZON_DSP_PROFILE_ID
AMAZON_DSP_ADVERTISER_ID
AMAZON_DSP_ACCESS_TOKEN
AMAZON_DSP_REGION # na, eu, or feDeployments tracked in unified_deployments table:
CREATE TABLE unified_deployments (
id UUID PRIMARY KEY,
deployment_id VARCHAR(255) UNIQUE NOT NULL,
user_id INTEGER REFERENCES users(id),
name VARCHAR(255) NOT NULL,
objective VARCHAR(50) NOT NULL,
total_budget DECIMAL(10,2),
currency VARCHAR(3) DEFAULT 'USD',
distribution_mode VARCHAR(20) DEFAULT 'equal',
status VARCHAR(20) DEFAULT 'PENDING',
platforms JSONB NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE deployment_campaigns (
id UUID PRIMARY KEY,
deployment_id UUID REFERENCES unified_deployments(id),
platform VARCHAR(20) NOT NULL,
platform_campaign_id VARCHAR(255),
budget_allocated DECIMAL(10,2),
status VARCHAR(20) DEFAULT 'PENDING',
error_message TEXT,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);| Error | Cause | Solution |
|---|---|---|
MISSING_CREDENTIALS | Platform OAuth not connected | Connect platform in Settings |
BUDGET_TOO_LOW | Platform minimum not met | Increase budget or remove platform |
OBJECTIVE_NOT_SUPPORTED | Platform doesn't support objective | Remove platform from deployment |
TARGETING_UNAVAILABLE | Targeting option not on platform | Adjust targeting or remove platform |
RATE_LIMITED | Too many API requests | Retry with backoff |
PARTIAL_FAILURE | Some platforms failed | Check individual errors, retry failed |
Part of the Synter free skills collection — open-source agent skills for advertising, PPC, and marketing automation.
Want this skill (and 40+ more) running on autopilot against your live ad accounts? Try Synter — AI Agent Media Buyers that connect to Google, Meta, LinkedIn, TikTok, Reddit, Amazon, and 7+ more platforms.
Synter-Media-AI/free-skills
3df48f1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.