multi-channel-reporting
Skill4 starsChanged 6 months agoMITView on GitHub
Generates cross-channel advertising reports and performance summaries. Use for campaign analysis, budget reviews, and executive reporting.
In this repository59 other files it gives its agents.
- ad-copy-generationSkill
- ad-creative-fatigue-detectorSkill
- ad-policy-complianceSkill
- amazon-ads-optimizerSkill
- anomaly-detectorSkill
- attribution-modelingSkill
- audience-expansion-strategySkill
- bid-optimizationSkill
- budget-optimizerSkill
- campaign-ide-handoffSkill
- campaign-preflightSkill
- campaign-structure-auditorSkill
- chatgpt-ads-conversion-trackingSkill
- chatgpt-ads-launchSkill
- competitor-analysisSkill
- creative-testingSkill
- cross-platform-attributionSkill
- cross-platform-launcherSkill
- dayparting-schedulerSkill
- executive-reportingSkill
- first-party-data-strategySkill
- google-ads-operatorSkill
- google-ads-quality-scoreSkill
- google-shopping-optimizerSkill
- gtm-metricsSkill
- incrementality-testingSkill
- keyword-researchSkill
- kill-scale-rulesSkill
- klaviyo-campaignsSkill
- landing-page-optimizerSkill
- launch-gatesSkill
- linkedin-ads-operatorSkill
- linkedin-ads-targetingSkill
- media-plan-builderSkill
- meta-ads-diagnosticsSkill
- meta-ads-operatorSkill
- mmm-budget-plannerSkill
- multi-platform-ads-operatorSkill
- multi-platform-launchSkill
- negative-keyword-minerSkill
- openai-ads-operatorSkill
- performance-max-optimizerSkill
- pixel-capi-auditorSkill
- pixel-capi-setupSkill
- platform-cost-benchmarksSkill
- public-ad-library-intelligenceSkill
- retargeting-sequence-designerSkill
- roas-calculatorSkill
- seasonal-budget-plannerSkill
- spearSkill
- spec-driven-devSkill
- synter-mcp-setupSkill
- tiktok-ads-operatorSkill
- tracking-leak-detectorSkill
- ugc-creative-briefSkill
- ui-contrast-reviewSkill
- utm-builderSkill
- video-ad-scriptwriterSkill
- x-ads-operatorSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 30
Run scripts/generate-report.py with date range:
- Very specific: line 46
Run scripts/daily-pull.py for scheduled extraction:
- Very specific: line 169
Add platform query function in generate-report.py
- Distinctive: line 171
Add to channel summary aggregation
- Distinctive: line 195
Async reporting: - must poll for report completion
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Multi-Channel Reporting Skill
Generates cross-channel advertising performance reports using Google Ads API Report Fetcher (GAARF) patterns. Token-efficient summaries instead of raw data dumps.
Capabilities
- Executive summaries - High-level spend, conversions, ROAS across all channels
- Channel comparison - Side-by-side platform performance
- Top/bottom performers - Identify winners and losers to act on
- Daily data extraction - Scheduled pulls for trend analysis
Report Types
| Report | Description | Use When |
| Executive Summary | Totals + KPIs across channels | Weekly/monthly reviews |
| Channel Summary | Per-platform breakdown | Budget allocation decisions |
| Campaign Performance | Top/bottom campaigns | Optimization meetings |
| Trend Report | Day-over-day/week-over-week | Identifying anomalies |
Workflow
Generate Performance Report
Run scripts/generate-report.py with date range:
python3 scripts/generate-report.py \
--start-date 2025-01-01 \
--end-date 2025-01-15 \
--breakdown campaignOptions:
--breakdown:campaign|ad_group|keyword|day--top-n: Number of top/bottom performers to show (default: 10)--output: Save to JSON file
Daily Data Pull
Run scripts/daily-pull.py for scheduled extraction:
python3 scripts/daily-pull.py \
--days 7 \
--output-dir data/This stores data in data/YYYY-MM-DD.json for trend analysis.
GAQL Query Examples
Campaign Performance (Last 30 Days)
SELECT
campaign.name,
campaign.status,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
metrics.conversions_value
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
AND campaign.status = 'ENABLED'
ORDER BY metrics.cost_micros DESCDaily Spend Trend
SELECT
segments.date,
metrics.cost_micros,
metrics.conversions,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY segments.dateAd Group Performance
SELECT
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions
FROM ad_group
WHERE segments.date DURING LAST_30_DAYS
AND campaign.status = 'ENABLED'
AND ad_group.status = 'ENABLED'
ORDER BY metrics.cost_micros DESCKeyword Performance
SELECT
campaign.name,
ad_group.name,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions
FROM keyword_view
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.cost_micros DESCOutput Format
Reports are token-efficient summaries, not raw row dumps:
EXECUTIVE SUMMARY
=================
Period: 2025-01-01 to 2025-01-15
Total Spend: $12,345.67
Conversions: 234
CPA: $52.76
ROAS: 3.2x
CHANNEL SUMMARY
===============
Google Ads: $10,000 | 200 conv | $50 CPA
LinkedIn: $2,000 | 30 conv | $67 CPA
Reddit: $345 | 4 conv | $86 CPA
TOP 5 PERFORMERS (by CPA)
=========================
1. Brand - Search ($15 CPA, 50 conv)
2. JTBD - Budget ($35 CPA, 30 conv)
...
BOTTOM 5 PERFORMERS (by CPA)
============================
1. Cold - Display ($250 CPA, 2 conv)
...
ACTION ITEMS
============
• Scale: Brand - Search (lowest CPA, room to grow)
• Fix: Cold - Display (CPA 5x average)
• Pause: Test Campaign (no conversions in 14 days)Environment Requirements
Requires environment variables:
DATABASE_URLGOOGLE_ADS_DEVELOPER_TOKEN
Account IDs
- MCC Login Customer ID: 7431593382
Extending to Other Platforms
The scripts are designed for extension. To add a new platform:
- Add platform query function in
generate-report.py - Normalize data to common schema:
{name, spend, impressions, clicks, conversions, cpa} - Add to channel summary aggregation
Supported Platforms
| Platform | API Type | Notes |
| Google Ads | GAQL | GAARF patterns |
| Meta Ads | Graph API | Campaign insights |
| LinkedIn Ads | Rest.li 2.0 | B2B metrics |
| X Ads | v12 API | Engagement metrics |
| Reddit Ads | v3 API | Requires User-Agent |
| TikTok Ads | Business API | Video-first metrics |
| Amazon Ads | Sponsored Ads API | ACOS → ROAS conversion |
| The Trade Desk | REST + GraphQL | Delta sync for efficiency |
| Amazon DSP | Async Reporting | Request → poll → download |
Platform-Specific Notes
The Trade Desk
- Uses
changeTrackingVersionfor incremental sync - GraphQL for complex cross-dimension queries
- Supports display, video, CTV, audio metrics
Amazon DSP
- Async reporting - must poll for report completion
- Order = Campaign, Line Item = Ad Group
- Lifetime budgets (convert to daily for comparison)
About this skill
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.
- 🌐 syntermedia.ai
- 📚 All free skills
- 💬 Built by @syntermedia — questions? Open an issue.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

