Structure YouTube Video Action campaigns with a tiered funnel approach—separate awareness, consideration, and conversion ad groups, apply custom intent audiences, and use conversion‑focused bidding (Maximize conversions or Target CPA).
1. Define funnel stages – Create three campaign types:
- Awareness: TrueView for Reach, CPV ≤ $0.03, 30‑second view‑through rate (VTR) > 70 %.
- Consideration: TrueView for Action, CPV ≤ $0.06, add‑to‑list or form‑start conversion rate (CVR) > 4 %.
- Conversion: Bumper + TrueView for Action, use Target CPA (e.g., $75) or Maximize conversions.
2. Audience segmentation – Use Google Audiences:
- In‑market + custom intent (keywords: ‘enterprise video platform’, ‘B2B SaaS demo’).
- Remarketing lists: 30‑day site visitors, 7‑day video viewers ≥ 75 %.
3. Bid strategy selection – Apply:
- Awareness: Maximize impressions.
- Consideration: Target CPA set at 1.5× average lead cost.
- Conversion: Target CPA at $75 or Maximize conversions if CPA data < 30 days.
4. Creative hierarchy – Upload three assets per ad group: short hook (≤ 5 s), product demo (15‑30 s), and strong CTA overlay. Use asset‑level performance filters (CTR > 1 %).
5. Conversion tracking – Implement Google Ads conversion actions for form submit, demo request, and phone‑call via Click‑to‑Call. Set conversion window to 30 days.
6. Optimization loop – Every 7 days, pull metrics via Google Ads API, calculate ROAS = (Revenue ÷ Spend). Pause ad groups with ROAS < 2.5 and reallocate budget to top‑performing conversion ad groups.
| Stage | Campaign type | Bidding | CPV cap | KPI |
|---|---|---|---|---|
| Awareness | TrueView for Reach | Maximize impressions | $0.03 | VTR ≥70 % |
| Consideration | TrueView for Action | Target CPA | $0.06 | CVR ≥4 % |
| Conversion | Bumper + TrueView for Action | Target CPA | $0.08 | CPL ≤$75 |
# Google Ads API snippet to create a conversion‑focused TrueView for Action campaign
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage('google-ads.yaml')
campaign_service = client.get_service('CampaignService')
operation = client.get_type('CampaignOperation')
campaign = operation.create
campaign.name = 'B2B_Conversion_Stage'
campaign.advertising_channel_type = client.enums.AdvertisingChannelTypeEnum.VIDEO
campaign.status = client.enums.CampaignStatusEnum.PAUSED
campaign.objective_type = client.enums.CampaignObjectiveEnum.VIDEO_ACTIONS
campaign.bidding_strategy_type = client.enums.BiddingStrategyTypeEnum.TARGET_CPA
campaign.target_cpa.target_cpa_micros = 7500000 # $75 CPA
response = campaign_service.mutate_campaigns(customer_id='INSERT_CUSTOMER_ID', operations=[operation])
print('Created campaign with resource name:', response.results[0].resource_name)