Skip to main content

Google Ad Manager
DirectionBidirectional
Environment
WebiOSAndroidCTVAPI Direct
Capability
Event CollectionCohort ActivationCampaign Optimization
SDK RequiredYes
Product(s) RequiredCore Platform

Google Ad Manager is a comprehensive ad management platform that helps publishers sell, deliver, and optimize ads across web, app, and video content.

Overview

Google Ad Manager (GAM) is Google’s comprehensive ad serving platform that helps publishers manage their advertising inventory and maximize revenue. Our integration with Google Ad Manager (GAM) primarily enables you to target your advertising campaigns with Permutive cohorts. Additionally, this integration can be used to ingest ad impressions and clicks into Permutive. This integration is both a Source and Destination:
  • Source: Permutive is able to ingest ad impressions and clicks.
  • Destination: Permutive is able to activate your cohorts in GAM.
Use cases include:
  • Send Permutive cohorts to your ad server so that they can be used for decisioning and targeting in real-time.
  • Track ad impressions and clicks in Permutive, for insights, retargeting or modeling.
  • (Advanced) Ad Logs: Capture every ad click in Permutive through Ad Logs in GAM 360.
  • (Advanced) Campaign Optimization: Optimize your GAM campaigns with Permutive’s AI.

Environment Compatibility

EnvironmentSupportedNotes
WebYes
iOSYesCohort targeting and ad impression events are supported. Advanced event collection (SlotViewable, SlotClicked, etc.) requires Ad Logs
AndroidYesCohort targeting and ad impression events are supported. Advanced event collection (SlotViewable, SlotClicked, etc.) requires Ad Logs
CTVYesSupported via Permutive CTV SDKs
API DirectYesFor environments where SDK deployment is not possible

Prerequisites

  • Network Code - You must provide your Network Code, which is displayed in your GAM dashboard.
  • Permissions - You must grant Permutive permission to create targeting keys and values in your GAM account. This allows Permutive to programmatically create targeting key-values when you configure cohorts for activation into GAM. To do this, assign [email protected] a custom role with the following permissions:
    • View ad units, placements and key-values
    • Edit ad units, placements and key-values
    • Edit key-values values
    • Access to Inventory tab

Setup

1

Enable in Permutive Dashboard

You must enable the Google Ad Manager integration in the Permutive dashboard, if this has not already be done. Please ensure you’ve already granted permissions in GAM appropriately (see prerequisites). In the Permutive dashboard, navigate to your workspace’s integrations page. Click Add Integration and select Google Ad Manager. You will be asked to enter your Network Code at this stage.
2

Check Key-Values in GAM

In your GAM dashboard, head to “Inventory” => Key-Values and search for permutive. You should find that a targeting key has been created for permutive, with the Reportable attribute set to On. If the Reportable attribute is Off, click on permutive and select include values in reporting. Hit Save. If you cannot find the targeting key-value, please reach out to Permutive Support.
3

Verify Setup

In the Permutive Dashboard, navigate to one of your cohorts. Check that the Google Ad Manager activation sync is visible. You can try toggling this to On. After doing this, in your GAM dashboard you should see a new targeting value created under the permutive targeting key, with the value corresponding your cohort’s ID. This verifies your integration setup is successful.

Usage

Data Types

With your GAM integration setup, you’ll see the following additional event types collected in Permutive:
Tracks for every ad impression that becomes viewable. Based on Google Publisher Tag’s ImpressionViewableEvent.
advertiser_id
number
The Advertiser ID for this impression, from GAM.
line_item_id
number
The Line Item ID for this impression, from GAM.
campaign_id
number
The Campaign ID for this impression, from GAM.
creative_id
number
The Creative ID for this impression, from GAM.
service_name
string
The service name, from GAM.
slot.ad_unit_path
string
The ad unit path, from GAM.
slot.slot_element_id
string
The slot element ID, from GAM.
Tracks a subset of your ad clicks.
advertiser_id
number
The Advertiser ID for this impression, from GAM.
line_item_id
number
The Line Item ID for this impression, from GAM.
campaign_id
number
The Campaign ID for this impression, from GAM.
creative_id
number
The Creative ID for this impression, from GAM.
service_name
string
The service name, from GAM.
slot.ad_unit_path
string
The ad unit path, from GAM.
slot.slot_element_id
string
The slot element ID, from GAM.
is_empty
boolean
Indicates whether an empty creative was served.
width
number
The width of the creative served.
height
number
The height of the creative served.

Troubleshooting

If you see an error when enabling the Google Ad Manager integration, check that you have granted the correct permissions to [email protected] (see Prerequisites).
Double check that you have granted the correct permissions to [email protected] (see Prerequisites). In rare cases, you may have reached GAMs limit of 200 active targeting keys. In this case, you must remove an old/inactive key to enable Permutive.
If Permutive cohorts are not being passed to GAM, check the following:
  • Timing Issue: Open your browser console and append ?googfc to your site URL to access the GAM console. Look for the “permutive” targeting key in the Page Request tab. If Permutive values appear after “Calling fillslot”, the targeting is being set too late. To fix this, ensure the Permutive tag loads as early as possible in the page <head>, ideally before googletag.enableServices() is called.
  • Missing Cached Segments: Deploy the GAM-specific JavaScript snippet (shown in the Web setup tab) to ensure cached cohorts from previous sessions are always available for targeting.
  • First Pageview Targeting: If first-pageview targeting is critical, consider implementing a timeout that waits for Permutive to load before enabling GAM services.
For iOS and Android apps, verify the following:
  • iOS: Confirm you’re calling Permutive.shared.googleCustomTargeting() and passing the result to your GAMRequest.customTargeting property. If using a PageTracker, pass it as a parameter to include the prmtvvid field.
  • Android: Ensure you’ve added the com.permutive.android:google-ads dependency and are using .addPermutiveTargeting(permutive) or .buildWithPermutiveTargeting(permutive) on your AdManagerAdRequest.Builder.
  • AAID/IDFA: Use a proxy tool (like mitmproxy) to verify the Permutive SDK is tracking the AAID (Android) or IDFA (iOS) identifier. On Android, this requires explicit implementation as outlined in the developer documentation.
  • Event Validation: Check that Permutive events are being accepted (HTTP 200 response) and not rejected (4xx response). Enable debug mode on Android with setDeveloperMode(true) to see detailed logs.
If your targetable impression volume is lower than expected:
  • Ensure the Permutive tag loads early in the page lifecycle, preferably in the <head> tag rather than through a tag manager.
  • Implement the GAM-specific JavaScript snippet to read cached cohorts from local storage, ensuring returning visitors are immediately targetable.
  • Review the timing of when googletag.enableServices() is called relative to Permutive initialization. Consider adding a configurable timeout (e.g., 2 seconds) to wait for Permutive before enabling GAM services.

Changelog

June 2025

  • Enhanced support for activating Contextual Cohorts via GAM
For detailed changelog information, visit our Changelog.