Google Ad Manager (GAM) is the backbone of serious ad monetization. If you're still running AdSense tags directly on your site, you're using training wheels — and leaving significant revenue on the table. GAM gives you the infrastructure to manage multiple demand sources, implement header bidding, run direct deals, set floor prices, and access the kind of granular reporting that actually lets you optimize your ad revenue.

This guide walks you through the entire setup process — from creating your account to implementing advanced features that most publishers never touch. Whether you're migrating from AdSense or setting up ad monetization for the first time, this is the reference you'll keep coming back to.

What Is Google Ad Manager?

Google Ad Manager is a full-featured ad serving platform that acts as the central hub for all advertising on your website. Formerly known as DoubleClick for Publishers (DFP), GAM handles four core functions:

  1. Ad serving: Delivers the right ad to the right user at the right time. GAM evaluates all competing demand sources and selects the highest-paying ad for each impression.
  2. Inventory management: Organizes your available ad space into structured "ad units" that map to specific locations on your pages (header leaderboard, sidebar rectangle, in-content placements, etc.).
  3. Demand orchestration: Manages the competition between different revenue sources — AdSense, Ad Exchange, header bidding partners, direct-sold campaigns — to maximize yield per impression.
  4. Reporting and analytics: Provides detailed performance data by ad unit, device, geography, advertiser, and dozens of other dimensions.

The free version of GAM supports up to 200 million monthly impressions in most markets — more than enough for the vast majority of publishers. The paid enterprise version (GAM 360) adds features like audience segmentation, advanced yield management, and dedicated Google support, but you don't need it to get started.

Google Ad Manager vs Google AdSense: Which Do You Need?

This is the most common question from publishers getting started with ad monetization, and the answer depends on where you are in your growth journey.

Google AdSense is an ad network. You paste a code snippet on your site, and Google handles everything — finding advertisers, running auctions, serving ads, and paying you. It's simple, requires zero ad ops knowledge, and works well for small sites. But it has fundamental limitations:

Google Ad Manager is an ad server — it's the infrastructure layer that sits between your website and all demand sources, including AdSense. With GAM, AdSense becomes one of many competitors for your inventory rather than the sole provider. This competition alone typically increases revenue by 20–40%.

When to Switch from AdSense to GAM

If your site earns more than $500/month from AdSense or receives more than 100,000 monthly pageviews, you should strongly consider migrating to GAM. The revenue uplift from adding demand competition typically pays for the setup effort within the first month.

The ideal setup for most publishers: GAM as your ad server, with AdSense linked as a demand source competing alongside header bidding partners. This gives you the simplicity of AdSense demand with the control and competition that GAM provides.

Step-by-Step: Setting Up Google Ad Manager

Here's the complete walkthrough. Each step builds on the previous one, so follow them in order.

Step 1 — Create a GAM Account

Go to admanager.google.com and sign in with the Google account you want to use for ad management. If you already have an AdSense account, use the same Google account — this makes linking AdSense demand easier later.

During account creation, you'll provide:

After creating the account, you'll land on the GAM dashboard. The interface has evolved significantly — the 2026 version uses a cleaner navigation with major sections: Delivery (orders, line items, creatives), Inventory (ad units, placements), Reporting, Admin, and Protections.

Important: Write down your GAM Network ID (found under Admin > Global Settings). You'll need this for ad tag generation and header bidding configuration. It's a numeric code like 12345678.

Step 2 — Set Up Your Inventory (Ad Units)

Ad units are the building blocks of your inventory. Each ad unit represents a specific ad placement on your website — the header leaderboard, sidebar rectangle, in-article unit, etc.

Navigate to Inventory > Ad Units and click New Ad Unit. For each unit, configure:

For a typical content website, start with these ad units:

Ad Unit Name Position Sizes Notes
header_leaderboard Top of page, below navigation 728x90, 970x90, 970x250 High viewability, above the fold
sidebar_rectangle Right sidebar, near top 300x250, 336x280, 300x600 Desktop only — hide on mobile
incontent_1 After 2nd paragraph 300x250, 336x280 Strong viewability in articles
incontent_2 Mid-article 300x250, 336x280 Lazy-loaded recommended
anchor_bottom Fixed bottom of viewport 320x50, 728x90 Sticky format, high viewability

You can also organize ad units into Placements — groups of ad units that share targeting criteria. For example, a "Premium Above-Fold" placement might include header_leaderboard and sidebar_rectangle, making it easy to target direct deals to your best inventory.

Step 3 — Create Orders and Line Items

Orders and line items are how GAM manages ad campaigns. An order represents a business arrangement with an advertiser (or demand source). A line item within that order defines the specific campaign parameters — what ad to show, where, when, and how much it should pay.

For programmatic monetization, you'll create line items for each demand source:

AdSense/Ad Exchange Line Items:

  1. Go to Delivery > Orders and create a new order (name it "AdSense Backfill" or similar)
  2. Create a line item with type "Ad Exchange" or "AdSense"
  3. Set targeting to "Run of Network" (all ad units) or select specific units
  4. GAM handles pricing automatically based on real-time auction data

Header Bidding Line Items:

For each header bidding partner, you'll create a set of price-priority line items that represent different bid ranges. This is called line item granularity. Common approaches:

Each line item's rate should match its corresponding bid bucket, with targeting set to a key-value pair like hb_pb = 2.50 (indicating a $2.50 header bid). We'll cover key-value setup in the header bidding section below.

Step 4 — Generate and Install Ad Tags

Ad tags are the JavaScript code snippets that go on your website to load and display ads. GAM uses the Google Publisher Tag (GPT) library. Here's the structure:

In your page's <head>:

Load the GPT library and define your ad slots:

Include the GPT script (securepubads.g.doubleclick.net/tag/js/gpt.js), then use googletag.defineSlot() for each ad unit, passing your network ID, ad unit code, sizes, and the target div ID. Call googletag.pubads().enableSingleRequest() for better performance, then googletag.enableServices().

In your page's <body>:

Place a <div> with a matching ID at each ad position, and call googletag.display() to render the ad.

Key implementation tips:

Step 5 — Set Up Reporting

Navigate to Reporting > Reports and create saved reports for the metrics you need to monitor regularly:

Daily Revenue Report:

Weekly Performance Report:

Header Bidding Analysis:

GAM also provides real-time dashboards under Reporting > Overview that show impressions and revenue trends without needing to run custom reports.

How to Connect Header Bidding with Google Ad Manager

Header bidding is the single most impactful optimization you can make in GAM. It lets multiple SSPs compete for every impression before GAM makes its allocation decision, driving CPMs up through genuine auction competition.

Here's how to connect Prebid.js (the industry-standard open-source header bidding wrapper) with GAM:

1. Install Prebid.js

Download a custom Prebid.js build from prebid.org with your selected bid adapters (SSPs). Start with 3–5 adapters to balance demand coverage against latency. Popular choices: AppNexus/Xandr, Rubicon/Magnite, Index Exchange, PubMatic, OpenX.

2. Configure Bid Adapters

Each SSP gives you account credentials (placement IDs, site IDs, etc.) after you sign up with them. Configure each adapter in the Prebid.js config with these credentials and map them to your GAM ad units.

3. Set Up Key-Values in GAM

Prebid.js sends bid information to GAM via key-value pairs. In GAM, go to Inventory > Key-Values and create:

4. Create Header Bidding Line Items

As described in Step 3, create price-priority line items in GAM that target specific hb_pb values. Each line item has a creative that calls pbjs.renderAd() to render the winning bid's ad. Tools like Prebid's Line Item Manager Chrome extension or third-party solutions can generate these line items automatically.

5. Set Auction Timeout

Configure a timeout (typically 1,000–1,500ms) so header bidding doesn't delay ad loading if a bidder is slow. After the timeout, Prebid.js sends whatever bids it has collected to GAM, and any late bidders are excluded from that auction.

Implementation Complexity

Header bidding setup is the most technically involved part of ad monetization. Getting the Prebid.js configuration, GAM line items, key-values, and creatives all wired correctly requires ad ops expertise. Mistakes in line item pricing or targeting can cost thousands in lost revenue. This is where working with a monetization partner like WeForAds saves significant time — the technical setup is handled for you, including ongoing bidder optimization and A/B testing.

Advanced GAM Features Most Publishers Miss

Once your basic setup is running, these advanced features can extract significantly more revenue from the same traffic.

Floor Prices (Unified Pricing Rules)

Unified Pricing Rules in GAM let you set minimum CPM floors for specific inventory segments. Without floors, some impressions sell for fractions of a cent — especially from low-quality demand.

Start with conservative floors and increase gradually while monitoring fill rate impact:

If your fill rate drops more than 5% after setting a floor, the floor is too high. Adjust down in $0.10 increments until you find the sweet spot where floor price increases more than compensate for lost fill.

Key-Value Targeting

Key-value pairs let you pass contextual information from your website to GAM for targeting decisions. Common use cases:

Key-values are particularly valuable for PMP and preferred deals, where advertisers want to target specific content segments at premium CPMs.

Lazy Load Configuration

GAM's built-in lazy loading is one of the most underused features. It delays fetching and rendering ads until the user is about to scroll to them, improving both page speed and viewability.

Configure it in your GPT code with enableLazyLoad(). The two key parameters:

Recommended starting values: fetchMarginPercent: 500, renderMarginPercent: 200. Test and adjust based on your site's scroll behavior.

Should You Use a Monetization Partner with GAM?

This is a legitimate question. GAM is free, Prebid.js is open-source, and SSP accounts are free to set up. Why would you pay a monetization partner a revenue share?

The answer comes down to expertise, access, and opportunity cost:

Technical expertise. A properly optimized ad stack involves hundreds of configuration decisions — bid adapter selection, timeout tuning, floor price strategy, ad unit sizing, refresh logic, lazy loading settings. Each decision affects revenue, and the optimal configuration changes over time. Ad ops engineers who do this full-time will consistently outperform a publisher managing their own stack part-time.

Demand access. Some premium SSPs and demand sources require minimum traffic thresholds or only work with approved partners. A monetization partner with pooled inventory can give a 500,000 pageview/month site access to demand sources that would normally require 5 million+.

Advanced ad formats. Formats like sticky ads, interstitials, in-image ads, and smart refresh require custom development and ongoing maintenance. Building and maintaining these in-house is a significant engineering investment. WeForAds, for example, provides 19+ ad formats that publishers can deploy through simple tag integration — formats that would take weeks to build independently.

Ongoing optimization. The ad tech landscape changes constantly — new demand sources launch, SSPs adjust algorithms, browser updates affect ad loading, and seasonal patterns shift floor price strategy. A good monetization partner continuously tests and adjusts these variables. A publisher managing their own stack typically sets it up once and rarely revisits the configuration.

The threshold question: if your site earns less than $2,000–$3,000/month from ads, a monetization partner's revenue share (typically 15–25%) is well worth the uplift they provide. If you earn $10,000+/month and have a dedicated ad ops person, you might capture more value managing the stack yourself — but even large publishers often use partners for specific capabilities like advanced formats or demand access.

Frequently Asked Questions

Is Google Ad Manager free for publishers?

Google Ad Manager (formerly DFP — DoubleClick for Publishers) is free for publishers serving up to 200 million monthly impressions in most markets. Above that threshold, publishers use Google Ad Manager 360, which is a paid enterprise product with additional features like audience segmentation, advanced reporting, and dedicated support. The free version includes all core features needed for ad serving, reporting, and header bidding integration.

How long does it take to set up Google Ad Manager?

Basic GAM setup — creating an account, setting up a few ad units, and generating tags — can be done in 2–4 hours. A full production setup with multiple ad units, orders, targeting, and header bidding integration typically takes 1–2 weeks. If you're working with a monetization partner like WeForAds, they handle the technical setup, which reduces your hands-on time to initial account creation and tag installation.

Can I use Google Ad Manager with AdSense?

Yes, and you should. GAM can use AdSense as a demand source by linking your AdSense account. This lets AdSense compete with other demand sources (header bidding partners, direct deals) in the GAM auction. The result is higher CPMs because AdSense has to compete rather than being your sole demand source. You enable this by creating an "AdSense" line item type in GAM and linking your AdSense publisher ID.

What is the difference between Google Ad Manager and Google AdSense?

Google AdSense is a simple plug-and-play ad network — you paste a code snippet and Google handles everything. Google Ad Manager is a full ad server that gives you control over your entire ad stack — you can manage multiple demand sources, run direct deals, set floor prices, implement header bidding, and access detailed reporting. AdSense is demand; GAM is the infrastructure. Most serious publishers use GAM with AdSense as one of many demand sources.

Need Help Setting Up GAM?

WeForAds handles the entire GAM setup — ad units, header bidding, demand partners, and optimization — so you can focus on creating content.

Get Started Free
Weekly newsletter

Get these insights in your inbox

One tactical ad monetization tip per week. No fluff. Unsubscribe anytime.

Free forever. No spam. Learn more