Skip to main content

Programmatic Ads Fundamentals

Learn the core concepts behind programmatic advertising and how automated ad buying works.

Updated this week

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:

  1. User’s geographic location

  2. Device type

  3. Domain where the ad is displayed

  4. Audience segmentation

  5. Available budget

  6. Priority rules configured in the Ad Server

  7. 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:

  1. Which ad is served

  2. Under what priority

  3. Under what conditions

  4. 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:

  1. The Ad Unit

  2. Allowed sizes

  3. The container ID (div)

  4. 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

  1. Ad Unit: Inventory identifier within GAM.

  2. Slot: Physical space where the ad is rendered.

  3. SRA (Single Request Architecture): Bundles multiple requests into a single call.

  4. 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:

  1. Is executed.

  2. Returns XML.

  3. Contains the video URL and tracking events.

  4. 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

  1. Autoplay depends on browser policies.

  2. If autoplay with sound is blocked, the ad must start muted.

  3. The IMA tester is not equivalent to a real production environment.

Relevant Parameters for Web

In a Web environment, important VAST parameters typically include:

  1. description_url → Recommended to send the real site URL (encoded).

  2. vpos → Ad position (preroll, midroll, postroll).

  3. vid_d → Expected content duration.

  4. vpmute → Indicates whether it starts muted.

  5. vconp → Indicates continuous content (e.g., social feed).

  6. plcmt → Placement type.

  7. ott_placement → Internal placement classification.

  8. wta → Web Targeting Allowed.

  9. tfcd → Child-directed treatment flag.

  10. 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:

  1. That the XML responds correctly

  2. That the video loads properly

  3. 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:

  1. Does not always replicate domain restrictions

  2. Does not simulate real targeting conditions

  3. Does not necessarily reflect budget limitations

  4. May not apply the same eligibility rules as the production environment

In production, the Ad Server evaluates:

  1. Real domain

  2. Real device

  3. Real user

  4. User consent

  5. Targeting rules

  6. 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:

  1. Unauthorized domain

  2. Restrictive targeting

  3. Campaign budget exhausted

  4. Incorrect parameters

  5. Browser autoplay restrictions

How to Properly Validate

Real validation should be performed:

  1. On the final domain where the Timeline will be published

  2. With real traffic conditions

  3. 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:

  1. A request is sent to the Ad Server.

  2. The Ad Server evaluates:

    • Active campaigns

    • Targeting rules

    • Priorities

    • Domain restrictions

    • Device

    • User consent

  3. A real-time auction (RTB) is executed.

  4. The winning creative is returned.

  5. 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.

Did this answer your question?