# Pull Channel Metrics

Aggregate performance data from paid ads, website analytics, and email campaigns into a normalized dataset for cross-channel ROI analysis.

## Inputs

- **Channels** — Which sources to include: Google Ads, Meta (Facebook/Instagram), LinkedIn, GA4, email provider. Default: all.
- **Date range** — Start and end dates for the pull (YYYY-MM-DD). Default: last 30 days.
- **Key metrics** — Select from: impressions, clicks, conversions, revenue, cost, engagement rate. Default: all available.
- **Normalization rules** — Mapping of platform-specific field names to standard names (e.g., "Purchase" → "conversion"). Default: auto-map by type.
- **Output format** — CSV, JSON, or Excel. Default: CSV.
- **UTM tracking scope** — Include only traffic tagged with utm_campaign? Default: no filter.

## Steps

1. Confirm the date range, channel list, and output format with the stakeholder.
2. Pull impressions, clicks, cost, and conversions from Google Ads for the selected date range.
3. Extract pageviews, sessions, goal completions, and revenue from GA4 for the same period.
4. Fetch send count, open rate, click rate, and conversions from the email service provider.
5. Normalize metric names across all sources (e.g., "goal_completion" → "conversion," "send_count" → "impressions" for email).
6. Combine rows by date and channel into a single table.
7. Validate that all channels have data; flag any gaps or anomalies to the stakeholder.

## Constraints

- API rate limits may require staggered pulls; plan for 15–30 minute total runtime.
- Each platform reports with 6–48 hour lag; schedule pulls during off-peak hours.
- Ensure all PII and sensitive UTM values are excluded from the final export.

Done when: A single report file contains all selected metrics normalized by date and channel, validated against source counts, and delivered to the requestor.