Skip to main content

Overview

This is the install path for publishers who run Google Ad Manager with Prebid — the established way to connect a storefront to real-time targeting (TMP). You add the Scope3 module to your existing Prebid setup; on each ad request it calls the hosted TMP Router and returns targeting key-values that your GAM line items match against. No new infrastructure, no change to how you sell — the module enriches the requests you already serve. Installing takes three steps: add the module with your credentials, make sure the targeting keys reach GAM, and verify end-to-end. Most publishers complete the page-side work in an afternoon.
Run your own ad stack or sales agent instead of GAM/Prebid? That’s the self-hosted router path — see the TMP overview and talk to Scope3 about onboarding.

Before you start

  • You run Prebid.js 10.9.0 or later. The Scope3 RTD provider ships in the Prebid.js tree from 10.9.0; any version before that (10.8.x and below, including all of 9.x) does not include it and cannot build it. If you’re on an older wrapper, plan the Prebid upgrade first.
  • Your storefront is set up with your GAM connected as an inventory source (see inventory sources).
  • You have your Scope3 credentials. Prebid.js needs your org ID; Prebid Server needs an API key. Both are issued by Scope3 during TMP onboarding — ask Murph in chat, or your Scope3 team, to get them issued. Use exactly the values you’re given.
  • You know who runs your Prebid. If a wrapper vendor manages your header bidding, the install below is theirs to make — send them this page and your credentials, and stay on the thread for the GAM half, which is yours.

Which integration — Prebid.js or Prebid Server?

Both call the same hosted router and produce the same targeting keys. If you’re unsure, client-side Prebid.js is the shorter path.

Install the module

1

Include the module in your Prebid.js build

The module is the Scope3 RTD provider (scope3RtdProvider) — a standard Prebid Real-Time Data module, built into your bundle like any other:
Full reference: docs.prebid.org — Scope3 RTD provider.
2

Add the configuration

3

Send targeting to GAM only after the auction ends

The module writes its keys (axei, axex, axem) onto your ad units at auction end. If your page calls setTargetingForGPTAsync() earlier, the keys silently never reach GAM.
Calling it inside bidsBackHandler (which runs after the auction) is equally correct. If your wrapper uses a setTimeout fallback, make sure it cannot fire before the auction completes.
The auction-end timing above is the most common install mistake — the page looks fine, the module calls the router successfully, and GAM still never sees the keys. If you hand the install to a wrapper vendor, include this step verbatim.

Configure Google Ad Manager

The module puts key-values on your ad requests; GAM needs the matching keys and line items. If your storefront runs a GAM sales agent, most of this is automated:
  • Targeting keys — the custom targeting keys (axei, axex, axem) are created by the segment keys task in your sales agent’s setup panel. Complete it once; it’s listed under your inventory source’s setup tasks.
  • Line items — when a buyer’s media buy executes, your sales agent creates the GAM order and line item targeting the campaign’s axei value automatically. You don’t traffic these by hand; you’ll see them appear under the advertiser your sales agent manages.
  • Authorize the creative tracker domain — in GAM, authorize https://ping.interchange.io for creatives (Google’s validation of the domain is in progress, so today this is a one-time manual authorization).
Skipping the tracker-domain authorization is the most common reason a correctly-installed setup serves nothing: GAM blocks the creative with a domain error, and impressions stay at zero until the domain is authorized.
If your consent management platform maintains a vendor allowlist (e.g. Didomi), add ping.interchange.io as a custom vendor so consent tooling never blocks the tracker.

Verify it’s working

1

Check the module is firing

Load a page with ?pbjs_debug=true and confirm in the browser’s network panel that a request goes to prebid.scope3.com/prebid and returns 200.
2

Check the keys reach GAM

On the same page, inspect the GAM ad request and confirm the axei key appears in the request’s custom targeting (for video/instream, check the cust_params of the video ad call — the keys must ride there too).
3

Check delivery end-to-end

Once a TMP-targeted media buy is live, its line item in GAM should show impressions against the axei targeting. In chat, ask Murph to check your TMP setup — it can confirm your enrollment state and flag anything missing.

Troubleshooting

Still stuck? Ask Murph in chat — describe what you’re seeing and it will help diagnose or flag the Scope3 team with the details.

Real-time targeting (TMP)

What TMP is, the capabilities it unlocks, and the two connection paths.

Frequency caps

How buyer-side, cross-publisher caps work on TMP-connected storefronts.

Inventory sources

Connecting your GAM and managing your sales agent’s setup tasks.

Scope3 RTD provider reference

The module’s full parameter reference on docs.prebid.org.