What Are Programmatic Ads?
Programmatic advertising is the automated process by which advertising inventory is bought and sold in real time through technology platforms.
Instead of manually negotiating each campaign, ads are assigned through an automatic auction where different advertisers compete to display their creative to a specific user at a specific moment.
The decision on which ad is served depends on multiple variables such as:
User’s geographic location
Device type
Domain where the ad is displayed
Audience segmentation
Available budget
Priority rules configured in the Ad Server
Real-time competition
The result is dynamic: every time an ad is requested, an auction runs in milliseconds.
What is Google Ads, and how is it managed?
It is important to differentiate between two products that are often confused:
Google Ads: Platform used by advertisers to create campaigns and buy inventory.
Google Ad Manager (GAM): Platform used by publishers (media companies, apps, websites) to manage their advertising inventory.
In the context of Terrific, what matters is Google Ad Manager, since it is the system that determines:
Which ad is served
Under what priority
Under what conditions
Whether there is fill or not
Terrific does not manage advertising campaigns directly; it executes the tag configured by the client in their Ad Manager.
General Types of Ads in Google
Broadly speaking, there are two main categories relevant to our environment:
A) Display (Banners): Served via GPT (Google Publisher Tag). These are graphic ads, images, or interactive HTML creatives.
B) Video (VAST): Served via a VAST tag. These are video-format ads that play within a video player.
What is GPT?
GPT (Google Publisher Tag) is the JavaScript library used to load Display ads (banners) from Google Ad Manager.
It is integrated via a script that defines:
The Ad Unit
Allowed sizes
The container ID (div)
Configurations such as Single Request Architecture
Simplified GPT Script Example
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<div id="div-gpt-ad-1"></div>
<script>
window.googletag = window.googletag || {cmd: []};
googletag.cmd.push(function() {
googletag.defineSlot(
'/123456/site/placement',
[[300,600],[320,480]],
'div-gpt-ad-1'
).addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
googletag.display('div-gpt-ad-1');
});
</script>
Key GPT Concepts
Ad Unit: Inventory identifier within GAM.
Slot: Physical space where the ad is rendered.
SRA (Single Request Architecture): Bundles multiple requests into a single call.
Refresh: Allows requesting a new ad in the same slot.
What is VAST?
VAST (Video Ad Serving Template) is a standard that returns an XML containing all necessary information to play a video ad.
A VAST tag is a URL that:
Is executed.
Returns XML.
Contains the video URL and tracking events.
Is interpreted by a compatible player (IMA).
Example VAST Tag
https://pubads.g.doubleclick.net/gampad/ads iu=/123456/site/video&output=vast&...
Important Web Considerations
Autoplay depends on browser policies.
If autoplay with sound is blocked, the ad must start muted.
The IMA tester is not equivalent to a real production environment.
Relevant Parameters for Web
In a Web environment, important VAST parameters typically include:
description_url → Recommended to send the real site URL (encoded).
vpos → Ad position (preroll, midroll, postroll).
vid_d → Expected content duration.
vpmute → Indicates whether it starts muted.
vconp → Indicates continuous content (e.g., social feed).
plcmt → Placement type.
ott_placement → Internal placement classification.
wta → Web Targeting Allowed.
tfcd → Child-directed treatment flag.
npa → Non-Personalized Ads.
VAST: Testing Environments vs. Production
It is important to understand that ad behavior may vary between testing environments and production environments.
What Is IMA (Testing Environment)?
IMA (Interactive Media Ads SDK) is Google’s library used to play VAST ads in web environments.
The IMA Video Suite Inspector (Google’s tester) is a tool designed to technically validate a VAST tag:
That the XML responds correctly
That the video loads properly
That tracking events function as expected
This is a controlled environment and does not replicate all real traffic conditions.
Why Ads May Appear in the Tester but Not in Production
The tester:
Does not always replicate domain restrictions
Does not simulate real targeting conditions
Does not necessarily reflect budget limitations
May not apply the same eligibility rules as the production environment
In production, the Ad Server evaluates:
Real domain
Real device
Real user
User consent
Targeting rules
Remaining campaign budget
Therefore, a VAST tag may return an ad in the tester but fail to serve in real traffic conditions.
Common Restrictions
The most frequent causes of discrepancies between testing and production include:
Unauthorized domain
Restrictive targeting
Campaign budget exhausted
Incorrect parameters
Browser autoplay restrictions
How to Properly Validate
Real validation should be performed:
On the final domain where the Timeline will be published
With real traffic conditions
By verifying the Ad Server response in the browser console or network tab
The tester is useful for validating technical structure, but it does not guarantee fill in production.
How do Programmatic Ads Work?
When an ad slot becomes visible:
A request is sent to the Ad Server.
The Ad Server evaluates:
Active campaigns
Targeting rules
Priorities
Domain restrictions
Device
User consent
A real-time auction (RTB) is executed.
The winning creative is returned.
The player renders the ad.
If no campaign is eligible: The slot may remain empty (no-fill), unless a fallback such as House Ads is configured.
Inventory Types in Google Ad Manager
In Google Ad Manager, different types of line items determine priority and behavior:
1. Sponsorship / Programmatic Guaranteed
Reserved inventory with high priority.
Typically pre-negotiated deals.
They take precedence over other campaigns.
2. Standard / Direct
Campaigns sold directly by the commercial team.
They have defined priority but compete according to configuration.
3. Programmatic Open Auction
Inventory available in an open auction.
Assigned to the highest bidder in real time.
4. Remnant
Leftover inventory not filled by higher-priority campaigns.
5. House (Autopromo / Internal Ads)
Publisher-owned creatives.
Used as backup to ensure inventory is always filled.
Strategic recommendation: Always configure House Ads to protect the fill rate.
