How to get a Google VAST Tag (and start monetizing) + alternatives that pay you by providing a VAST tag to paste into your video player
In this guide you’ll find practical steps to set up Google Ad Manager and generate a VAST/VMAP ad tag (the typical “VAST code” you paste into a player), plus an overview of alternative platforms that monetize in revenue share by giving you a ready-to-use VAST tag.
A VAST tag isn’t a “password” like a stream key, but it can still expose inventory details (e.g., network/ad unit, macros, parameters). Avoid posting it in public tickets or sharing it with unauthorized parties.
- Requirements
- Key concepts: VAST vs VMAP, CSAI vs SSAI
- First: what “getting a Google VAST tag” really means (and what you actually need)
- Create and configure Google Ad Manager (GAM)
- Demand (to monetize): direct, Ad Exchange, MCM partner
- Generate a VAST/VMAP tag in Google Ad Manager
- Insert the VAST tag in the player (Video.js/IMA, Shaka/IMA, JW Player, etc.)
- Testing & debugging: inspect VAST responses, ad blockers, “no fill”
- Other platforms that pay you by giving you a VAST tag (alternatives to Google)
- Troubleshooting
- FAQ
1) Requirements
- Website/App/CTV with video content and a property you can manage/verify (domain or app).
- Player compatible with VAST/VMAP (or IMA integration): e.g., Video.js + IMA plugin, Shaka Player + IMA, JW Player/JWP, Bitmovin, THEOplayer, etc.
- Privacy & consent: in the EU you typically need a CMP (TCF) to manage GDPR and pass consent strings where required.
- Enough traffic/engagement: for premium programmatic (Ad Exchange/SSPs), partners often require minimum volume (varies by partner).
- VAST: an XML response containing one (or more) video ad creatives and tracking. IAB standard. Source: IAB.
- VMAP: a “playlist” describing multiple ad breaks (pre/mid/post-roll) using VAST + timing. Source: Google Ad Manager Help.
- CSAI (Client-Side Ad Insertion): the player fetches/renders the ad (typical VAST + IMA).
- SSAI/DAI (Server-Side / Dynamic Ad Insertion): ads are inserted server-side (more complex, common in OTT/CTV).
References: IAB VAST Guidelines • Google VMAP VMAP for video ad insertion
2) Key concepts: VAST vs VMAP, CSAI vs SSAI
2.1 VAST vs VMAP
- Only a pre-roll (one break before content)? A VAST tag is often enough.
- Multiple breaks (pre + mid + post-roll, pods, etc.)? Consider VMAP (or “ad rules”) to describe the full schedule. VMAP includes VAST + timing.
2.2 CSAI (classic) vs SSAI/DAI (“TV-like”)
- CSAI: easiest to implement (paste an adTagUrl into the player). Downsides: ad blockers have more impact; client-side latency/measurement complexity.
- SSAI/DAI: smoother experience and often more robust on CTV/OTT; but requires a more complex stack and frequently commercial agreements.
If your goal is “start fast”, begin with CSAI (VAST) and move to SSAI/DAI once you have volume and clear technical needs.
3) First: what “getting a Google VAST tag” really means (and what you actually need)
With Google, “having a VAST tag” usually means one of these:
- Test VAST tags (to verify player integration): Google publishes IMA sample tags you can use for testing without real monetization.
- A Google Ad Manager (GAM) VAST tag for your own inventory: you generate it in GAM, but you only earn revenue if you also have demand (direct campaigns, programmatic, Ad Exchange, or a partner).
The tag alone doesn’t “pay”: if there’s no demand behind it (line items / programmatic / partner), the response may be empty (“no fill”).
To validate your player integration, use Google’s IMA sample tags: ready-made URLs that return VAST so you can confirm requests and XML responses, remembering to disable ad blockers. Source: Google IMA sample tags.
4) Create and configure Google Ad Manager (GAM)
- Go to Google Ad Manager and create a network with your publisher details (company/site/app).
- Set up Inventory:
- Create a video Ad Unit (set up depends on your workflow: “video” inventory is commonly represented with 1x1 video or player dimensions).
- Define placements: pre-roll, mid-roll (cue points), post-roll if needed.
- Configure baseline policies (brand safety, blocked categories, etc.) and privacy (GDPR/consent).
Plan your privacy parameters early (e.g.,
gdpr, gdpr_consent, us_privacy, etc.). Google documents a broad list of supported VAST tag parameters. Source: Google Ad Manager Help.5) Demand (to monetize): direct, Ad Exchange, MCM partner
To monetize with a Google tag (or any VAST tag), you need at least one source of demand:
- Direct campaigns: you (or a sales house) sell ads and traffic them in GAM as line items.
- Google programmatic: commonly via Google Ad Exchange (AdX) — not always immediately available to smaller publishers.
- MCM partner: many publishers access AdX demand via a partner operating under Google MCM (parent-child). MCM is commonly used for smaller publishers.
- If you don’t have direct AdX access or don’t have an in-house AdOps team.
- If you want “ready demand” + optimization (sometimes Open Bidding / multi-SSP) in revenue share.
- Trade-offs: fees/revenue share + minimums/contracts + technical constraints.
MCM overview: Freestar — Guide to Google MCM • Access to AdX via partners (discussion): Google Ad Manager Community
6) Generate a VAST/VMAP tag in Google Ad Manager
Once your inventory exists, you can generate an ad tag URL (VAST or VMAP) to use in your player/IMA. Tags typically include parameters like iu (ad unit), output (format), correlator (cachebuster), plus privacy parameters when needed. Source: Google VAST tag parameters.
Note: the real URL depends on your network/ad unit. Below is a pattern with placeholders. Keep HTTPS and use a different correlator per request (cachebuster). Google references correlator/output in tag usage.
https://pubads.g.doubleclick.net/gampad/ads?
iu=/1234567/YOUR_VIDEO_AD_UNIT
&description_url=https%3A%2F%2Fwww.yoursite.com%2Fpage
&env=vp
&gdfp_req=1
&sz=640x360
&output=xml_vast3
&unviewed_position_start=1
&correlator=[CACHEBUSTER]
&gdpr=[0|1]
&gdpr_consent=[TCF_STRING]
If you want multiple breaks (ad rules/pods), you may request a VMAP playlist (VAST + timing). Source: VMAP in GAM.
7) Insert the VAST tag in the player (Video.js/IMA, Shaka/IMA, JW Player, etc.)
7.1 Typical approach (IMA)
The most common method is using a player with Google IMA SDK and passing an adTagUrl (VAST). Google explains using IMA requests with VAST URLs and parameters. Source: IMA SDK getting started.
7.2 JW Player / JWP
JW Player supports advertising configuration and scheduling with VAST ad tags and provides an “ad tester” workflow to validate tags. Source: JW Player docs.
Parameters must be properly URL-encoded (e.g.,
description_url) and free of invisible leading/trailing spaces. Encoding/macros issues are a common cause of “no fill” or VAST errors.8) Testing & debugging: inspect VAST responses, ad blockers, “no fill”
- Disable ad blockers during testing (they often block ad server calls).
- Open the tag in a browser (or a testing tool) to confirm it returns XML (VAST/VMAP) rather than HTML.
- For IMA tags, Google provides sample tags and indicates using a variable
correlatorandoutputfor format selection (e.g., VAST 4). Source: IMA sample tags. - Use an inspector to validate parsing/tracking: Google provides a “Video Suite Inspector” where you can paste tags or VAST and test playback. Source: IMA HTML5 VSI.
- Do you actually have active demand behind that ad unit? (line items, programmatic, partner)
- Does the tag point to the correct ad unit?
- Are parameters and macros populated correctly?
- Are you sending a correlator/cachebuster?
- Are you passing privacy/consent where required (GDPR)?
9) Other platforms that pay you by giving you a VAST tag (alternatives to Google)
If you want a “paste a VAST tag and monetize” approach without building a full AdOps stack immediately, consider monetization partners or SSPs that provide VAST tags and demand in revenue share.
| Platform | Type | What you get | Practical notes |
|---|---|---|---|
| Teads | Monetization partner / demand | VAST tag (typically provided by your rep) | Requires onboarding: “once you receive the VAST tag from the representative” you integrate macros/placeholders. Source: Teads Support. |
| Primis | Video monetization / player ecosystem | Integrations (including VAST tag options) | Documentation mentions integration paths including VAST tag usage. Source: Primis docs. |
| Playwire | Full-stack monetization | Player + VAST/VPAID support + monetization | Positions itself as a publisher platform with VAST/VPAID support and managed monetization. Source: Playwire. |
| EX.CO | Video platform + ad server/demand | VAST tag integration to EX.CO ad server | Official doc: VAST integration via HTTP GET with parameters (pubid/tagid/env) to maximize revenue. Source: EX.CO Support. |
| OpenX | Ad Exchange / SSP | VAST/VPAID tags (BrandTags) + exchange demand | OpenX mentions JavaScript, VAST, and VPAID tags designed to be easy to integrate. Source: OpenX. |
| Microsoft Monetize (Xandr) | SSP / ad platform | Placement tags (including video) exportable | Docs cover exporting placement tags and domain/whitelabel considerations. Source: Microsoft Learn. |
| Magnite / SpringServe | SSP + video ad serving | VAST ad tag (“secure tag”) per ad unit/channel | Magnite glossary: “Secure tag” = VAST Ad Tag for an ad unit/channel. Source: Magnite Help. |
If you want the fastest path, consider a managed monetization partner (Teads/Playwire/EX.CO/Primis) that brings demand + support. If you have in-house AdOps and want more control and multi-demand auctions, consider SSPs/Exchanges (OpenX, Magnite, Microsoft Monetize) or a stack via GAM + partners.
10) Troubleshooting
Ads don’t show (but content plays)
- Confirm the adTagUrl returns valid XML (VAST/VMAP), not an HTML redirect/error page.
- If using IMA, confirm tag compatibility and disable ad blockers. Google also notes this for sample tags.
- Check console/network: blocked requests, CORS, mixed content (HTTP on HTTPS).
“No fill” / empty response
- No demand: no active line items or no connected partner/SSP for that inventory.
- Macros not populated (e.g., device/app bundle/consent).
- Overly strict targeting (geo, device, sizes, min/max duration).
VAST errors (tracking, wrappers, timeout)
- Simplify first: validate a single pre-roll tag, then add wrappers/pods gradually.
- Use testing tools (inspector) to locate parsing breaks and failed tracking URLs. Source: IMA VSI.
11) FAQ
Can I get a “Google VAST tag” like AdSense?
In general, AdSense isn’t the typical route for “giving you a VAST tag” to paste into a video player. For VAST/VMAP, the most common flow is Google Ad Manager + demand (direct, programmatic, AdX, or a partner).
Is creating GAM enough to monetize immediately?
GAM is the “container” (ad server / inventory management). To earn money you need demand: direct line items or programmatic (AdX/partners/SSPs). If there’s no demand behind the tag, you’ll likely see “no fill”.
VAST or VMAP: which one should I use?
Use VAST for a simple single break (often pre-roll). Use VMAP if you want a playlist of breaks (pre/mid/post) and insertion rules. VMAP includes VAST + timing.
What’s the fastest way to tell if the issue is the player or the tag?
Test the tag in an inspector/validator and/or try a known working sample tag. If a sample tag works and yours doesn’t, the issue is often in the tag (params/macros/demand).
Useful references: Google Ad Manager — All VAST ad tag parameters • Google IMA — Sample ad tags • Google IMA — Video Suite Inspector (VAST test) • Google Ad Manager — VMAP for video ad insertion • Teads — VAST integration for instream • EX.CO — Ad Server VAST Integration • OpenX — VAST/VPAID tags (BrandTags) • Microsoft Monetize — Export placement tags
