Campaign Analytics

Integrate and automate marketing campaign data analysis to optimize performance and track ROI effectively

Campaign Analytics is a community skill for tracking and analyzing marketing campaign performance, covering metric collection, attribution modeling, A/B test analysis, reporting dashboards, and ROI calculation for digital marketing campaigns.

What Is This?

Overview

Campaign Analytics provides patterns for measuring and analyzing the effectiveness of marketing campaigns. It covers metric collection that gathers impressions, clicks, conversions, and revenue from campaign platforms, attribution modeling that assigns credit to touchpoints along the customer journey, A/B test analysis that evaluates statistical significance of variant performance differences, reporting dashboards that visualize campaign metrics across channels and time periods, and ROI calculation that computes return on investment accounting for all campaign costs. The skill enables data-driven marketing decisions through systematic campaign measurement.

Who Should Use This

This skill serves marketing teams measuring campaign effectiveness across channels, growth engineers building analytics pipelines for campaign data, and business analysts reporting on marketing ROI to stakeholders.

Why Use It?

Problems It Solves

Campaign data is scattered across multiple ad platforms with different metric definitions. Attribution across touchpoints requires modeling that simple last-click analysis misses. A/B test results need proper statistical analysis to avoid false conclusions. Calculating true campaign ROI requires combining cost and revenue data from different systems.

Core Highlights

Metric aggregator combines data from multiple ad platforms into a unified view. Attribution engine models credit across touchpoints using configurable models. Statistical tester evaluates A/B experiment results with confidence intervals. ROI calculator computes return accounting for all campaign expenditures.

How to Use It?

Basic Usage

from dataclasses\
  import dataclass

@dataclass
class CampaignMetrics:
  campaign_id: str
  impressions: int = 0
  clicks: int = 0
  conversions: int = 0
  spend: float = 0.0
  revenue: float = 0.0

  @property
  def ctr(self) -> float:
    if self.impressions == 0:
      return 0.0
    return (self.clicks
      / self.impressions)

  @property
  def cpa(self) -> float:
    if self.conversions == 0:
      return 0.0
    return (self.spend
      / self.conversions)

  @property
  def roas(self) -> float:
    if self.spend == 0:
      return 0.0
    return (self.revenue
      / self.spend)

class CampaignTracker:
  def __init__(self):
    self.campaigns:\
      dict[str,
        CampaignMetrics] = {}

  def record(
    self,
    campaign_id: str,
    metrics: dict
  ):
    if campaign_id\
        not in self.campaigns:
      self.campaigns[
        campaign_id] =\
          CampaignMetrics(
            campaign_id)
    cm = self.campaigns[
      campaign_id]
    for k, v\
        in metrics.items():
      if hasattr(cm, k):
        setattr(cm, k,
          getattr(cm, k)
          + v)

Real-World Examples

from scipy import stats

def ab_test_result(
  control: dict,
  variant: dict,
  confidence: float = 0.95
) -> dict:
  c_rate = (
    control['conversions']
    / control['visitors'])
  v_rate = (
    variant['conversions']
    / variant['visitors'])

  chi2, p_value, _, _ =\
    stats.chi2_contingency(
      [[
        control['conversions'],
        control['visitors']
        - control[
          'conversions']],
       [
        variant['conversions'],
        variant['visitors']
        - variant[
          'conversions']]])

  return {
    'control_rate': c_rate,
    'variant_rate': v_rate,
    'lift': (v_rate
      - c_rate) / c_rate,
    'p_value': p_value,
    'significant':
      p_value
      < (1 - confidence)}

Advanced Tips

Use multi-touch attribution models instead of last-click to properly credit awareness campaigns that initiate the customer journey. Run A/B tests to a minimum sample size calculated before launch to avoid peeking bias. Segment campaign metrics by audience cohort to identify which segments drive the highest return.

When to Use It?

Use Cases

Track cross-channel campaign performance combining Google Ads, Meta, and email metrics in one dashboard. Analyze A/B test results for landing page conversion rate experiments. Calculate quarterly marketing ROI across all campaign channels for executive reporting.

Related Topics

Marketing analytics, attribution modeling, A/B testing, ROI analysis, and campaign optimization.

Important Notes

Requirements

Access to campaign platform APIs for metric collection. scipy library for statistical significance calculations. Structured campaign cost data for ROI computation.

Usage Recommendations

Do: define conversion events consistently across all campaign channels before analysis. Use statistical tests to validate A/B results before acting on them. Include all costs including creative production in ROI calculations.

Don't: compare campaigns with different objectives using the same metric which produces misleading rankings. End A/B tests early based on preliminary results before reaching sample size targets. Attribute all conversions to the last click ignoring awareness touchpoints.

Limitations

Cross-platform attribution becomes unreliable as privacy restrictions limit tracking across sites. Statistical significance does not guarantee practical significance for business decisions. Campaign metrics from different platforms may use inconsistent definitions for the same event type. Offline conversions like in-store purchases are difficult to attribute to specific digital campaigns without dedicated tracking infrastructure.