Skip to main content

Overview

Tactics are containers that organize and execute media buys. They define targeting parameters (channels, countries) and can be linked to one or more campaigns, allowing you to reuse successful media buying tactics across multiple marketing initiatives.
Two-Tier Architecture: Campaign → Tactic → Media Buy
  • Campaigns: Overall marketing initiative with total budget
  • Tactics: Targeting configuration and media buy organization
  • Media Buys: Direct publisher execution at negotiated CPMs

Key Concepts

Tactic Purpose

Tactics serve as organizational containers that:
  • Define targeting parameters (channels, countries)
  • Can be linked to multiple campaigns
  • Organize related media buys under a common tactical approach
  • Enable reuse of proven media buying approaches

Tactic Configuration

Every tactic includes:
  • Name: Descriptive identifier for the tactic
  • Campaign Link: Associated with one or more campaigns
  • Channel Targeting: Specific channels to target (web, mobile, CTV, etc.)
  • Geographic Targeting: Country codes for geographic focus
  • Tactical Brief: Optional prompt describing the tactic’s approach

Tactic Types

All tactics in this API are automatically configured as:
  • Activity Type: AMP (Agentic Media Protocol)
  • Tactic Type: INTELLIGENT_CAMPAIGNS
This standardization ensures consistent integration with the platform’s optimization and execution engines.

Working with Tactics

Creating Tactics

User: "Create a tactic for CTV and mobile targeting the US market"

Claude: Creating tactic...

✅ Tactic Created Successfully!

🎯 US CTV & Mobile Tactic

Configuration:
• Type: INTELLIGENT_CAMPAIGNS
• Activity: AMP
• Channels: ctv, mobile
• Countries: US

Next: Create media buys with publishers using this tactic

Linking Tactics to Campaigns

Tactics can be associated with multiple campaigns, enabling tactic reuse:
// Link existing tactic to another campaign
await tactic_link_campaign({
  tacticId: "strat_456",
  campaignId: "camp_789"
});

// The tactic now contributes to both campaigns
// Media buys under this tactic count toward both campaign budgets

Managing Tactics

// List all tactics for a campaign
const tactics = await campaign_list_tactics({
  campaignId: "camp_123"
});

// Get detailed tactic information
const tactic = await tactic_get({
  tacticId: "strat_456"
});

// Update tactic configuration
await tactic_update({
  tacticId: "strat_456",
  channelCodes: ["ctv", "mobile", "web"], // Add web channel
  countryCodes: ["US", "CA"] // Expand to Canada
});

Tactic Architecture

Campaign-Tactic-Media Buy Flow

Multi-Campaign Tactic Sharing

// One tactic can serve multiple campaigns
const sharedTactic = await tactic_create({
  name: "Premium Sports Inventory",
  campaignId: "camp_q4_sports",
  channelCodes: ["ctv", "web"],
  countryCodes: ["US"]
});

// Link to another campaign
await tactic_link_campaign({
  tacticId: sharedTactic.id,
  campaignId: "camp_holiday_sports"
});

// Media buys under this tactic now contribute to both:
// - Q4 Sports Campaign
// - Holiday Sports Campaign

Channel Targeting

Tactics can target specific advertising channels:
Channel CodeDescriptionCommon Use Cases
webDesktop web browsersStandard display advertising
mobileMobile web & in-appMobile-optimized campaigns
ctvConnected TVPremium video campaigns
socialSocial media platformsSocial advertising
videoOnline videoVideo-first campaigns
audioStreaming audio/podcastsAudio advertising
// Get available channels
const channels = await channel_list();

// Create multi-channel tactic
const tactic = await tactic_create({
  name: "Multi-Channel Awareness",
  campaignId: "camp_123",
  channelCodes: ["web", "mobile", "ctv", "video"],
  countryCodes: ["US", "CA", "GB"]
});

Geographic Targeting

Target specific countries using ISO 2-digit country codes:
// North America focus
const naTactic = await tactic_create({
  name: "North America Tactic",
  campaignId: "camp_123",
  channelCodes: ["web", "mobile"],
  countryCodes: ["US", "CA", "MX"]
});

// European focus
const euTactic = await tactic_create({
  name: "European Tactic",
  campaignId: "camp_123",
  channelCodes: ["web", "ctv"],
  countryCodes: ["GB", "DE", "FR", "IT", "ES"]
});

Best Practices

1. Tactical Organization

Organize tactics by targeting approach:
// Good: Clear tactical differentiation
Campaign: $100K Holiday Sales
├── Tactic: "CTV Premium" (ctv, US/CA)
│   └── Media Buys: Hulu, Roku, Amazon Fire
├── Tactic: "Mobile Performance" (mobile, US)
│   └── Media Buys: Google, Meta, TikTok
└── Tactic: "Desktop Remarketing" (web, US)
    └── Media Buys: Trade Desk, Yahoo, CNN

2. Tactic Reuse

Leverage successful tactics across campaigns:
// Create proven tactic once
const provenTactic = await tactic_create({
  name: "High-Performance CTV",
  campaignId: "camp_q1",
  channelCodes: ["ctv"],
  countryCodes: ["US"]
});

// Reuse for Q2 campaign
await tactic_link_campaign({
  tacticId: provenTactic.id,
  campaignId: "camp_q2"
});

// Same tactical approach, different campaign budgets

3. Clear Naming

Use descriptive names that indicate targeting:
// Good naming conventions
"US CTV Premium - Sports Content"
"Mobile Web - Retargeting"
"UK Desktop Display - Prospecting"
"Global Video - Brand Awareness"

// Avoid vague names
"Tactic 1"
"Test"
"Main"

4. Geographic Segmentation

Separate tactics by region for better control:
// Regional tactics for global campaign
const usTactic = await tactic_create({
  name: "US Market Tactic",
  campaignId: "camp_global",
  countryCodes: ["US"]
});

const euTactic = await tactic_create({
  name: "EU Market Tactic",
  campaignId: "camp_global",
  countryCodes: ["GB", "DE", "FR", "IT", "ES"]
});

const apacTactic = await tactic_create({
  name: "APAC Market Tactic",
  campaignId: "camp_global",
  countryCodes: ["AU", "JP", "SG", "KR"]
});

Integration with Media Buys

Tactics organize media buys for execution:
// Create tactic
const tactic = await tactic_create({
  name: "Premium Video Tactic",
  campaignId: "camp_123",
  channelCodes: ["ctv", "video"],
  countryCodes: ["US"]
});

// Create media buys under this tactic
const huluBuy = await media_buy_create({
  tacticId: tactic.id,
  name: "Hulu Premium Inventory",
  products: [{
    salesAgentId: "agent_hulu",
    mediaProductId: "prod_hulu_ctv",
    budgetAmount: 25000,
    pricingCpm: 28.00
  }],
  budget: { amount: 25000, currency: "USD" }
});

const rokuBuy = await media_buy_create({
  tacticId: tactic.id,
  name: "Roku Streaming",
  products: [{
    salesAgentId: "agent_roku",
    mediaProductId: "prod_roku_streaming",
    budgetAmount: 15000,
    pricingCpm: 24.00
  }],
  budget: { amount: 15000, currency: "USD" }
});

// Both media buys inherit tactic's targeting
// Performance rolls up to tactic and campaign

Performance Tracking

Monitor tactic performance through associated media buys:
// Get tactic details with media buy summary
const tactic = await tactic_get({
  tacticId: "strat_456"
});

// Shows:
// - Linked campaigns
// - Total media buys
// - Aggregate spend and performance
// - Channel and geographic breakdown

API Reference

Next Steps

The Bottom Line

  • Tactics are containers - They organize media buys with common targeting
  • Tactics enable reuse - Link one tactic to multiple campaigns
  • Targeting is simple - Define channels and countries, that’s it
  • Media buys do the work - Tactics just provide structure and targeting
  • Keep it organized - Use clear names and logical grouping