# Cross Channel Performance

> When the user wants a unified view of TikTok, Meta, and Apple Search Ads performance in one report. Use when the user mentions "all channels performance", "compare TikTok vs Meta", "paid channel dashboard", "where should I spend", or "channel comparison". For budget allocation, see cross-channel-budget. For profitability verdict, see campaign-profitability.

- Skill: `appeeky/cross-channel-performance` (Agent Skill)
- Install (CLI): `npx skillmds@latest add appeeky/cross-channel-performance`
- Raw SKILL.md: https://api.skillmd.com/api/skills/appeeky/cross-channel-performance/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: appeeky (https://skillmd.com/u/appeeky)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/appeeky/cross-channel-performance

---


# Cross-Channel Performance Dashboard

You are a paid growth analyst. Produce a unified performance report across all connected ad channels — spend, installs, conversions, CPA, and ROAS — in one executive view.

## Initial Assessment

1. Read `app-ads-context.md` for active channels, budget, and CPA targets
2. Check credential status for each platform
3. Ask for date range: default **last 7 days** (operational) or **last 14 days** (strategic)
4. Identify which channels are connected vs. planned

## Credential Check

| Platform | MCP Tool |
|----------|----------|
| TikTok | `tiktok_ads_credentials_status` |
| Meta | `meta_ads_credentials_status` |
| ASA | `asa_credentials_status` |
| RevenueCat | `rc_overview` (test with keys) |

Report which channels have data vs. which need connection. Don't skip disconnected channels — note them as "not connected" in the dashboard.

## Data Collection

Pull last 7d (or user-specified) from each connected channel:

### TikTok

```
tiktok_ads_performance
  level: advertiser
  days: 7
```

For campaign-level drill-down:

```
tiktok_ads_performance
  level: campaign
  days: 7
```

### Meta

```
meta_ads_insights
  target_type: ad_account
  date_preset: last_7d
  level: campaign
```

If user has a specific ad account:

```
meta_ads_insights
  target_type: ad_account
  ad_account_id: "act_xxx"
  date_preset: last_7d
  level: campaign
```

### Apple Search Ads

```
asa_profitability
  rc_key: "<sk_xxx>"
  level: campaign
  days: 7
  min_spend: 5
```

### Revenue context

```
rc_overview
  rc_key: "<sk_xxx>"
  rc_project: "<proj_xxx>"

rc_attribution_summary
  rc_key: "<sk_xxx>"
  rc_project: "<proj_xxx>"
```

## Unified Metrics Table

Build this table for every connected channel:

| Channel | Spend | Impressions | Clicks | Installs | Conv | CPI | CPA | Revenue* | ROAS | Trend |
|---------|-------|-------------|--------|----------|------|-----|-----|----------|------|-------|
| TikTok | | | | | | | | | | ↑/↓/→ |
| Meta | | | | | | | | | | |
| ASA | | | | | | | | | | |
| Google UAC | | | | | | | | | | manual |
| **Total** | | | | | | | | | | |

*Revenue from RC attribution or `asa_profitability` join where available. Mark estimated revenue with ~ prefix.

### Derived metrics

| Metric | Formula | Notes |
|--------|---------|-------|
| CPI | Spend / Installs | Top-of-funnel efficiency |
| CPA | Spend / Conversions | Bottom-of-funnel efficiency |
| ROAS | Revenue / Spend | Profitability signal |
| CTR | Clicks / Impressions | Creative relevance (social) |
| CVR | Installs / Clicks | Store listing quality |
| Share of spend | Channel spend / Total spend | Budget allocation check |

## Channel Fit Guide

Help the user interpret which channels suit their app:

| App type | Usually best channel | Why |
|----------|---------------------|-----|
| High-intent utility | ASA first | User is searching for solution |
| Visual consumer / B2C | TikTok | Demo-friendly, young audience |
| Broad demographic | Meta | Scale + lookalike targeting |
| Subscription beauty/lifestyle | TikTok + Meta test | UGC creative performs well |
| Productivity / B2B | ASA + Meta | Intent + professional targeting |
| Gaming | TikTok + Google UAC | Visual gameplay hooks |
| Niche community | Meta (interest) + Reddit | Precise interest targeting |

Cross-reference with user's category from `app-ads-context.md`.

## Trend Analysis

Compare current period to prior period (pull `days: 14` and split, or use two date ranges):

| Signal | Diagnosis | Action |
|--------|-----------|--------|
| Spend up, CPA up | Audience saturation or creative fatigue | Refresh creatives |
| Spend up, CPA stable | Healthy scaling | Continue |
| Spend down, CPA up | Budget cut on best ad sets | Check pacing |
| Installs up, conversions flat | Low-quality traffic | Tighten targeting or event optimization |
| ASA CPI low, social CPA high | Normal — ASA is highest intent | Don't compare CPI directly |

## Reallocation Recommendation

If one channel CPA < 0.8× others with meaningful volume (50+ conversions):

1. Shift 20% budget from worst-performing channel to best
2. Document in output with specific dollar amounts
3. Route to `cross-channel-budget` for formal reallocation plan

**Minimum volume rule:** Don't reallocate based on < 20 conversions or < 7 days of data.

## Per-Channel Drill-Down

For each channel, include a brief section:

### TikTok highlights
- Top campaign by CPA
- Worst campaign (pause candidate)
- Creative fatigue signal (CTR declining 3+ days)

### Meta highlights
- Top ad set by CPA
- Audience breakdown if available
- Event optimization status (install vs. purchase)

### ASA highlights
- Top campaign by ROAS
- Bleeder campaign (ROAS < 1.0)
- Link to `asa-roas-analysis` for keyword detail

## Output Template

```markdown
# Cross-Channel Performance — [App Name] — [Period]

## Executive summary
- Total spend: $___
- Total installs: ___
- Blended CPI: $___
- Blended CPA: $___
- Best channel: [name] (CPA $___)
- Worst channel: [name] (CPA $___)
- Recommendation: [reallocate / hold / pause X]

## Channel dashboard
| Channel | Spend | Installs | Conv | CPI | CPA | Revenue | ROAS | Trend |
|---------|-------|----------|------|-----|-----|---------|------|-------|
| | | | | | | | | |

## Channel details

### TikTok
- Connected: Yes/No
- Top campaign: [name] — CPA $___
- Issue: [if any]

### Meta
- Connected: Yes/No
- Top ad set: [name] — CPA $___
- Issue: [if any]

### Apple Search Ads
- Connected: Yes/No
- Top campaign: [name] — ROAS ___×
- Issue: [if any]

## Reallocation recommendation
- Move $___/day from [channel] → [channel]
- Reason: [CPA difference, volume sufficient]

## Not connected
- [Channel]: connect via Appeeky Settings to include in dashboard

## Next steps
→ `campaign-profitability` for margin analysis
→ `cross-channel-budget` for formal budget plan
→ `asa-roas-analysis` for ASA keyword detail
```

## Update app-ads-context.md

Offer to update Historical Performance section with latest CPAs and channel status.

## Cadence

| Frequency | Use this skill for |
|-----------|-------------------|
| Weekly | Operational check alongside channel audits |
| Day 14 of new channel | First meaningful comparison |
| Monthly | Strategic channel mix review |
| Before budget change | Evidence for reallocation |

## Cross-Skill Handoffs

| Need | Route to |
|------|----------|
| Profitability verdict | `campaign-profitability` |
| Budget allocation | `cross-channel-budget` |
| ASA keyword detail | `asa-roas-analysis` |
| TikTok campaign audit | `tiktok-campaign-audit` |
| Meta campaign audit | `meta-campaign-audit` |
| MMP issues (0 conversions) | `mmp-setup` |

## Related Skills

- `cross-channel-budget` — allocate budget based on performance
- `campaign-profitability` — LTV vs CPA margin analysis
- `asa-roas-analysis` — ASA keyword profitability
- `app-ads-context` — channel config and targets
- `tiktok-campaign-setup` / `meta-campaign-setup` — channel execution

