Overview

Campaigns are the core execution layer of the Scope3 platform - where your advertising strategy comes to life through intelligent programmatic optimization. Every campaign exists within a Brand Agent (your advertiser account) and leverages shared resources like creatives, audiences, and brand standards.
Campaign Dependency: All campaigns must be created within a Brand Agent context. You cannot create standalone campaigns - they always belong to an advertiser account.

Campaign Lifecycle

Phase 1: Planning & Setup

Before launching any campaign, ensure you have:
  1. Brand Agent Created - Your advertiser account foundation
  2. Creative Assets Ready - High-quality creatives significantly impact performance
  3. Audience Profiles (Optional) - Brand story targeting profiles
  4. Brand Standards Configured (Optional) - Domain filtering and brand safety rules

Phase 2: Campaign Creation

User: "Create a $50,000 CTV campaign for Nike targeting sports fans aged 25-45"

Claude: 🚀 Creating Nike campaign...
        
        ✅ Campaign created: camp_abc123
        📊 Budget: $50,000 USD
        🎯 Targeting: Sports enthusiasts, ages 25-45, CTV inventory
        📺 Strategy: AI-driven optimization
        🎨 Creatives: Auto-assigned from Nike brand agent library
        
        Status: Ready to launch

Phase 3: Launch & Optimization

Once launched, campaigns automatically begin the AI optimization process:
  1. Signal Discovery - Algorithm identifies high-performing audience signals
  2. Brand Story Optimization - AI-generated audience profiles are tested and refined
  3. Tactic Generation - AI creates optimized targeting combinations
  4. Continuous Learning - Performance data feeds back into optimization

Phase 4: Monitoring & Management

🔄 Incremental Optimization Requests

Natural language optimization - Use the changeRequest parameter to make targeted improvements without rebuilding your entire campaign strategy.
// Boost specific metrics
await updateCampaign({
  campaignId: "camp_123",
  changeRequest: "increase viewability by 10% and need 20% more scale per day"
});
Response shows applied changes:
✅ Campaign updated successfully

**Change Request:** increase viewability by 10% and need 20% more scale per day

**Changes Applied to Campaign Brief:**
👁️ **Viewability Target**: Set minimum viewability standard to 10%
💎 **Premium Inventory**: Prioritized high-viewability placements and publishers
📈 **Scale Increase**: Raised daily spending capacity by 20%
🎯 **Targeting Expansion**: Broadened reach parameters to support increased scale

## 🎯 Strategy Updates
**Targeting Updated** (2 new profiles):
  • Premium Inventory: include 15 items
  • Viewability Standards: exclude 8 items
Common optimization patterns:
  • Performance improvements: “increase CTR by 15%”, “improve completion rates to 80%”
  • Scale adjustments: “need 30% more reach”, “reduce daily spend to $2000”
  • Quality changes: “prioritize viewability over cost”, “add stricter brand safety”
  • Efficiency targets: “reduce CPM to $25”, “improve cost efficiency by 20%”
The changeRequest parameter works alongside existing parameters like prompt, reason, and tacticAdjustments. When provided, it automatically generates an optimized strategy prompt that gets processed by the same backend optimization engine.

Key Campaign Features

🎯 AI-Driven Optimization Strategy

All campaigns use Scope3’s intelligent optimization approach:
  • Premium Inventory Focus: Curated, high-quality ad placements
  • AI-Driven Optimization: Machine learning optimizes targeting in real-time
  • Quality-First: Brand-safe, viewable, fraud-free impressions
  • Performance Optimization: Continuous learning and adjustment

🔗 Resource Integration

Campaigns seamlessly integrate with other Brand Agent resources:
Shared Creative Library
  • Creatives belong to the Brand Agent, not individual campaigns
  • Multiple campaigns can use the same creative assets
  • Creative performance tracked across all campaigns
  • Easy creative swapping and A/B testing
// Assign creatives during campaign creation
const campaign = await createCampaign({
  brandAgentId: "ba_123",
  name: "Summer Sale Campaign",
  creativeIds: ["cr_video_456", "cr_display_789"]
});

// Update creative assignments
await updateCampaign({
  campaignId: "camp_123",
  creativeIds: ["cr_new_video_999"] // Replaces existing assignments
});

📊 Advanced Analytics & Insights

Every campaign generates rich performance data for optimization:

Performance Analysis

For detailed tactic performance analysis including signal effectiveness and brand story optimization, see the Tactic Guide and Signal Guide. Key Analysis Types Available:
  • Signal Performance: Track audience targeting effectiveness
  • Brand Story Optimization: Understand which AI-generated audiences perform best
  • Efficiency Analysis: Compare tactic cost-effectiveness
  • Attribution Analysis: Understand conversion path contributions

Real-time Delivery Monitoring

Get instant visibility into campaign pacing and performance:
const summary = await getCampaignSummary({
  campaignId: "camp_123"
});

// Returns human-readable summary:
// 🎯 Campaign Health Score: 85/100
// 📊 Pacing: On track (52% budget, 48% flight remaining)
// 💰 Performance: $2.34 CPM, strong completion rates
// 🔧 Recommendation: Increase budget for high performers

⚖️ Scoring Configuration

Control how tactics are evaluated and optimized with three-component scoring. Campaigns use a weighted formula combining Quality, Outcome, and Story Affinity scores to determine budget allocation. You configure the weights and outcome measurement timing.
Optimize for conversions and outcomes
const campaign = await createCampaign({
  brandAgentId: "ba_123",
  name: "Q4 Performance Campaign",
  prompt: "Target high-intent customers for holiday conversions",
  
  // Weight outcome scores heavily
  scoringWeights: {
    quality: 0.2,       // 20% media quality
    outcome: 0.7,       // 70% your conversion data
    affinity: 0.1       // 10% brand story alignment
  },
  
  // Attribution data arrives in 7 days
  outcomeScoreWindowDays: 7,
  
  budget: { total: 100000, currency: "USD" }
});

The Three Scoring Components

Quality Score (Scope3-provided)
  • Impression quality, viewability, completion rates
  • IVT detection and brand safety metrics
  • Scale: 0-100 (100 = premium media quality)
Outcome Score (You provide)
  • Your normalized measurement data (ROAS, conversions, brand lift)
  • Scale: 0-1000 (100 = meets target, 1000 = 10x target)
  • You define what the numbers mean
Story Affinity Score (Scope3-provided)
  • How well tactics align with your selected brand stories
  • Uses the brand stories you created and assigned
  • Scale: 0-100 (100 = perfect story alignment)
Weights determine relative importance of each component for budget allocation. See the Scoring Guide for detailed explanation and weight strategy examples.

Outcome Score Window Days

Critical for RL algorithm performance. Specify how many days before your outcome measurement data arrives:
  • Immediate data: 0-1 days (engagement, clicks)
  • Attribution data: 1-7 days (conversions, CRM matching)
  • Brand studies: 7-30 days (lift measurement)
  • MMM data: 30+ days (incrementality studies)
Without proper window configuration, tactics get incorrectly penalized before your measurement data arrives.

Campaign Workflow Examples

Complete Campaign Setup

Multi-Campaign Resource Sharing

// Step 1: Create Brand Agent with shared resources
const brandAgent = await createBrandAgent({
  name: "Nike Global",
  description: "Nike's global advertising account"
});

// Step 2: Build shared creative library
const videoCreative = await createCreative({
  brandAgentId: brandAgent.id,
  name: "Nike Performance Video",
  type: "video",
  url: "https://cdn.nike.com/performance.mp4"
});

const displayCreative = await createCreative({
  brandAgentId: brandAgent.id,
  name: "Nike Performance Display",
  type: "image", 
  url: "https://cdn.nike.com/performance.jpg"
});

// Step 3: Create audience profiles
const sportsAudience = await createAudience({
  brandAgentId: brandAgent.id,
  name: "Sports Enthusiasts",
  description: "Active lifestyle, aged 25-45"
});

// Step 4: Launch multiple campaigns using shared resources
const summerCampaign = await createCampaign({
  brandAgentId: brandAgent.id,
  name: "Nike Summer Campaign",
  budget: { total: 50000, currency: "USD" },
  creativeIds: [videoCreative.id, displayCreative.id],
  audienceIds: [sportsAudience.id]
});

const backToSchoolCampaign = await createCampaign({
  brandAgentId: brandAgent.id,
  name: "Nike Back to School Campaign", 
  budget: { total: 30000, currency: "USD" },
  creativeIds: [displayCreative.id], // Reusing creative
  audienceIds: [sportsAudience.id]   // Reusing audience
});

Performance Optimization Best Practices

1. Creative Quality First

  • High-quality creatives are the single biggest factor in campaign performance
  • Use multiple creative formats (video, display, native) for broader reach
  • Test different creative messages and CTAs
  • Monitor creative performance across campaigns

2. Budget Sizing

  • Minimum viable: $1,000 for basic campaigns
  • Recommended minimum: $10,000 for meaningful optimization
  • Enterprise scale: $100,000+ for advanced ML optimization
  • Higher budgets enable more sophisticated targeting and learning

3. Targeting Strategy

  • Start broad, let AI find optimal segments
  • Use natural language descriptions in campaign prompts
  • Leverage brand stories for precise targeting
  • Monitor signal performance and adjust accordingly

4. Monitoring & Optimization

  • Check campaign health weekly with get_campaign_summary
  • Export data for deeper analysis with export_campaign_data
  • Use tactic performance insights for optimization decisions
  • Set up real-time alerts for performance issues

Common Campaign Patterns

A/B Testing Campaigns

// Create two campaigns with different targeting approaches
const campaignA = await createCampaign({
  brandAgentId: "ba_123",
  name: "Test A: Broad Targeting",
  prompt: "Target general sports interests, broad age range",
  budget: { total: 25000, currency: "USD" },
  creativeIds: ["cr_video_123"]
});

const campaignB = await createCampaign({
  brandAgentId: "ba_123", 
  name: "Test B: Narrow Targeting",
  prompt: "Target premium athletic footwear enthusiasts aged 25-35",
  budget: { total: 25000, currency: "USD" },
  creativeIds: ["cr_video_123"] // Same creative for fair comparison
});

// Compare performance after sufficient data collection
// Compare campaign performance using tactic analysis
// See Tactic Guide for detailed analysis examples

Seasonal Campaign Management

// Create seasonal campaigns that share core resources
const holidayCampaign = await createCampaign({
  brandAgentId: "ba_nike_123",
  name: "Nike Holiday 2024",
  prompt: "Target holiday shoppers looking for athletic gifts, premium inventory focus",
  budget: { total: 100000, currency: "USD" },
  creativeIds: ["cr_holiday_video", "cr_holiday_display"],
  audienceIds: ["aud_gift_shoppers", "aud_premium_customers"]
});

const backToSchoolCampaign = await createCampaign({
  brandAgentId: "ba_nike_123",
  name: "Nike Back to School 2024", 
  prompt: "Target students and parents preparing for school year, value-focused messaging",
  budget: { total: 75000, currency: "USD" },
  creativeIds: ["cr_bts_video", "cr_value_display"],
  audienceIds: ["aud_students", "aud_parents"]
});

Integration with External Systems

BI/Analytics Integration

// Export campaign data for external analysis
const exportData = await exportCampaignData({
  brandAgentId: "ba_123",
  dateRange: { 
    start: "2024-01-01", 
    end: "2024-01-31" 
  },
  datasets: ["delivery", "events", "tactics"],
  groupBy: ["date", "campaign", "tactic", "signal"],
  format: "csv", // Optimized for analytics
  compression: "gzip"
});

// Use exported data in your BI pipeline
// Supports: JSON, CSV formats
// Integrates with: Snowflake, BigQuery, Databricks, etc.

Real-time Notifications

While campaign tools provide on-demand insights, set up real-time notifications through the Scope3 Dashboard:
  1. Log into app.scope3.com
  2. Navigate to Campaign Settings → Notifications
  3. Configure alert destinations:
    • Slack channels for team notifications
    • Email addresses for key stakeholders
    • Webhook URLs for custom integrations
Alert types include:
  • Budget pacing issues (over/under delivery)
  • Performance anomalies (significant CPM changes)
  • Campaign status changes (paused, completed)
  • Creative performance alerts (poor completion rates)

Campaign API Reference

Next Steps