This page describes the various messages you can encounter when viewing the
Google Publisher Console [Page Request](https://developers.google.com/publisher-tag/guides/publisher-console#page_request) tab. Each
message is assigned a severity, which indicates the relative importance of the
issue being reported.

If you need more help with GPT, see the [support
options](https://developers.google.com/publisher-tag/support/feedback-questions).

| Severity | Meaning | Impact |
|---|---|---|
| [Error](https://developers.google.com/publisher-tag/guides/publisher-console-messages#error) | Action *required* | A serious issue prevented GPT from loading or displaying an ad. |
| [Warning](https://developers.google.com/publisher-tag/guides/publisher-console-messages#warning) | Action *recommended* | An issue occurred which might cause unexpected behavior (for example, the wrong ad being served) or significantly impact monetization. |
| [Info](https://developers.google.com/publisher-tag/guides/publisher-console-messages#info) | Review *recommended* | An issue occurred which might be safe to ignore. Review the message and determine whether it's relevant to your GPT integration. |
| [Verbose](https://developers.google.com/publisher-tag/guides/publisher-console-messages#verbose) | No action necessary | GPT has successfully performed an action. |

### Message variables

Many Google Publisher Console messages use variables to provide additional
context that's useful for debugging. In this document, message variables are
shown as capitalized strings which describe the value they represent, preceded
by a `$` character. For example, <var translate="no">$DIV_ID</var> represents the ID of a
`<div>` element unique to your page.

Messages shown here may not exactly match what you see in the Google Publisher
Console. If you're having trouble locating a specific message reported in the
console, try searching for parts of the message that don't contain any values
that are specific to your site.

## Error messages

| Message ||
|---|---|
| An IAB Transparency \& Consent Framework Consent Management Platform was detected. Interaction with this CMP failed. The ad request was blocked as a result. | **Issue** The attempt to retrieve consent signals from the [IAB TCF v2.0](https://iabeurope.eu/tcf-2-0/) consent management platform (CMP) failed and ad request was blocked. *** ** * ** *** **Details** If you see this message, please review your implementation of the IAB TCF v2.0 Consent Management Platform (CMP) integration. |
| ContentService is no longer available. Use the browser's built-in DOM APIs to directly add content to div elements instead. | **Issue** The `ContentService` API has been sunset and is no longer available. *** ** * ** *** **Details** This API is no longer available. Use the browser's built-in DOM APIs to directly add content to div elements instead. For example, if you currently have: ```javascript var slot = googletag.defineSlot('/1234567/sports', [728, 90], 'div-1').addService(googletag.content()); googletag.enableServices(); var content = '<a href="www.mydestinationsite.com">' + '<img src="www.mysite.com/img.png">' + '</img></a>'; googletag.content().setContent(slot, content); ``` You can replace it with: ```javascript var content = '<a href="www.mydestinationsite.com">' + '<img src="www.mysite.com/img.png">' + '</img></a>'; document.getElementById('div-1').innerHTML = content; ``` You may need to retain the calls to [`googletag.defineSlot()`](https://developers.google.com/publisher-tag/reference#googletag.defineSlot) and [`googletag.enableServices()`](https://developers.google.com/publisher-tag/reference#googletag.enableServices) if you intend to define an ad slot for a different service (for example, [`PubAdsService`](https://developers.google.com/publisher-tag/reference#googletag.pubadsservice)) using the same `div` element. <br /> |
| Error in googletag.defineSlot: Cannot create slot <var translate="no">$AD_UNIT_PATH</var>. Div element "<var translate="no">$DIV_ID</var>" is already associated with another slot: <var translate="no">$OTHER_AD_UNIT_PATH</var>. | **Issue** Unable to create an ad slot with the specified div ID. The ID is currently associated with another ad slot. *** ** * ** *** **Details** Every GPT ad slot must be associated with a unique `<div>` element. The ID of this element (<var translate="no">$DIV_ID</var>) is provided as a parameter to [`defineSlot()`](https://developers.google.com/publisher-tag/reference#googletag.defineSlot). To address this issue, first locate the two offending `defineSlot()` calls in your code: - `googletag.defineSlot($AD_UNIT_PATH, ..., $DIV_ID)` - `googletag.defineSlot($OTHER_AD_UNIT_PATH, ..., $DIV_ID)` Update or remove one call to ensure unique <var translate="no">$DIV_ID</var> values. <br /> |
| Error in googletag.defineSlot: Invalid ad unit path provided <var translate="no">$AD_UNIT_PATH</var>, see https://support.google.com/admanager/answer/10477476 for more information. | **Issue** Attempted to create an ad slot with an invalid ad unit path. *** ** * ** *** **Details** The ad unit path (<var translate="no">$AD_UNIT_PATH</var>) provided to [`googletag.defineSlot()`](https://developers.google.com/publisher-tag/reference#googletag.defineSlot) does not match the expected ad unit format. Ad unit paths must follow the format ` /network-code/[parent-ad-unit-code/.../]ad-unit-code `, where: - `network-code` is a [unique identifier](https://support.google.com/admanager/answer/7674889#network-code) for the Ad Manager network the ad unit belongs to (or a comma separated list of such identifiers for [Multiple Customer Management (MCM)](https://support.google.com/admanager/answer/11130475) publishers) - `parent-ad-unit-code` are the codes of all parent ad units (only applies to non-top level ad units) - `ad-unit-code` is the code for the ad unit to be displayed <br /> Note that all ad unit codes included in the ad unit path must also adhere to the [formatting rules](https://support.google.com/admanager/answer/1628457#ad-unit-codes) specified by Ad Manager. <br /> |
| Exception in <var translate="no">$TYPE</var> event listener: "<var translate="no">$ERROR</var>". | **Issue** An unhandled exception was encountered while executing a GPT event listener. *** ** * ** *** **Details** A [user-defined event listener](https://developers.google.com/publisher-tag/reference#googletag.Service_addEventListener) for event type <var translate="no">$TYPE</var> caused an error. Review the provided <var translate="no">$ERROR</var> message for more information and take appropriate action to resolve the issue in the event listener. Learn about supported GPT events and see examples of how to use them in the [ad event listeners](https://developers.google.com/publisher-tag/guides/publisher-tag/samples/ad-event-listeners) sample. |
| Exception in googletag.cmd function: <var translate="no">$ERROR</var>. | **Issue** An unhandled exception was encountered while executing a function in the GPT command queue. *** ** * ** *** **Details** A function added to the [GPT command queue](https://developers.google.com/publisher-tag/reference#googletag.cmd) caused an error. Review the provided <var translate="no">$ERROR</var> message for more information and take appropriate action to resolve the issue in the queued function. |
| Missing required event listener "<var translate="no">$EVENT</var>" for <var translate="no">$FORMAT</var> slot: <var translate="no">$AD_UNIT_PATH</var> | **Issue** An out-of-page ad format was requested without registering the required event listener for that format. *** ** * ** *** **Details** This error occurs when an out-of-page ad format (<var translate="no">$FORMAT</var>) is requested, but the required event listener (<var translate="no">$EVENT</var>) for that format can't be found. In this scenario, an ad request will not be made for the affected slot (<var translate="no">$AD_UNIT_PATH</var>). This error normally indicates that either the event listener was not added to the Publisher Ads service, or that the event listener was added after an ad was requested. To address this, ensure that the required event listener is added by calling [`PubAdsService.addEventListener()`](https://developers.google.com/publisher-tag/reference#googletag.Service_addEventListener) before the first call to `display()` or `refresh()` the slot. Applicable to: - `OutOfPageFormat.GAME_MANUAL_INTERSTITIAL` Required event listener: [`gameManualInterstitialSlotReady`](https://developers.google.com/publisher-tag/reference#googletag.events.GameManualInterstitialSlotReadyEvent) - `OutOfPageFormat.REWARDED` Required event listener: [`rewardedSlotReady`](https://developers.google.com/publisher-tag/reference#googletag.events.RewardedSlotReadyEvent) <br /> |
| SRA requests may include a maximum of 30 ad slots. <var translate="no">$NUM_ATTEMPTED</var> were requested, so the last <var translate="no">$NUM_IGNORED</var> were ignored. | **Issue** Too many ad slots were included in a Single Request Architecture (SRA) request, preventing some slots from being loaded. *** ** * ** *** **Details** The maximum number of ad slots allowed in a single [SRA request](https://developers.google.com/publisher-tag/guides/ad-best-practices#use_single_request_architecture_correctly) (30) was exceeded. Ad slots above this maximum were ignored (<var translate="no">$NUM_IGNORED</var>), preventing them from being filled. To address this, batch the slots into multiple SRA requests as shown below. Note that this example uses a maximum of 5 slots per request for illustrative purposes. ```javascript // Define first batch of slots. googletag.defineSlot(..., 'ad-slot-1').addService(googletag .pubads()); ... googletag.defineSlot(..., 'ad-slot-5').addService(googletag .pubads()); // Enable SRA and services. googletag.pubads().enableSingleRequest(); googletag.enableServices(); // Issue first SRA request (ad-slot-1 to ad-slot-5). googletag.display('ad-slot-5'); // Define second batch of slots. googletag.defineSlot(..., 'ad-slot-6').addService(googletag .pubads()); ... googletag.defineSlot(..., 'ad-slot-10').addService(googletag .pubads()); // Issue second SRA request (ad-slot-6 to ad-slot-10). googletag.display('ad-slot-10'); ``` <br /> |

## Warning messages

| Message ||
|---|---|
| <var translate="no">$AD_FORMAT</var> <var translate="no">$AD_UNIT_PATH</var> not requested: Format already created on the page. | **Issue** An ad of the specified out-of-page format has already been created on the page. *** ** * ** *** **Details** Certain GPT-managed out-of-page formats are limited to a single instance per-page. The ad identified by <var translate="no">$AD_UNIT_PATH</var> specifies an out-of-page format (<var translate="no">$AD_FORMAT</var>) that is already in use by another slot on thepage. Applicable to: - `OutOfPageFormat.BOTTOM_ANCHOR` - `OutOfPageFormat.INTERSTITIAL` - `OutOfPageFormat.REWARDED` - `OutOfPageFormat.TOP_ANCHOR` <br /> |
| <var translate="no">$AD_FORMAT</var> <var translate="no">$AD_UNIT_PATH</var> not requested: GPT is not running in the top-level window. | **Issue** The specified out-of-page format can only be displayed in the topmost window. *** ** * ** *** **Details** Certain GPT-managed out-of-page formats are only supported when GPT is running in the topmost window. An attempt was made to request the ad identified by <var translate="no">$AD_UNIT_PATH</var> from a nested window. Applicable to: - `OutOfPageFormat.BOTTOM_ANCHOR` - `OutOfPageFormat.INTERSTITIAL` - `OutOfPageFormat.TOP_ANCHOR` <br /> |
| <var translate="no">$AD_FORMAT</var> ad slot ineligible as page is not mobile optimized: <var translate="no">$AD_UNIT_PATH</var>. | **Issue** The specified ad slot is only eligible on mobile optimized pages. *** ** * ** *** **Details** For a page to be considered mobile optimized, the zoom level must be neutral. Typically, this is accomplished by adding the following to the `<head>` of the page: ``` <meta name="viewport" content="width=device-width, initial-scale=1"> ``` <br /> |
| <var translate="no">$FORMAT</var> <var translate="no">$AD_UNIT_PATH</var> not requested: Codeless ad unit request not sent because there are existing sticky elements on the page. | **Issue** Codeless ad unit request not sent because there are existing sticky elements on the page. *** ** * ** *** **Details** Codeless ad unit request not sent because there are existing sticky elements on the page. Add 'google-allow-overlap' attribute to the sticky elements to allow the codeless ad unit to be requested. |
| Attempted to load GPT from both standard and limited ads domains. | **Issue** `gpt.js` was requested from both the standard and limited ads URLs within the same page. *** ** * ** *** **Details** This message indicates that the page has attempted to load GPT multiple times, from both the standard and limited ads URLs. Depending on the order in which the requested scripts load, limited ads functionality may or may not be available. If you intend to manually enable limited ads on your page, GPT **must** be loaded from the limited ads URL. See [Display a limited ad](https://developers.google.com/publisher-tag/samples/display-limited-ad) for more information. |
| Beta keys cannot be cleared. clearTargeting() was called on <var translate="no">$BETA_KEY</var>. | **Issue** Attempted to clear beta keys. *** ** * ** *** **Details** <br /> > [!WARNING] > Beta keys are provided to select trusted testers, for the purpose of gathering feedback on pre-release functionality. Once set, beta keys cannot be modified or unset. Ensure that beta keys are only set when beta functionality is desired for the life of the page. Additionally, you should ensure that your code does not call [`clearTargeting()`](https://developers.google.com/publisher-tag/reference#googletag.PubAdsService_clearTargeting) without parameters when beta keys are in use. <br /> |
| Conflict: Teen treatment for TagForAgeTreatment (TFAT) was ignored because Child treatment was already requested via legacy TagForChildDirectedTreatment (TFCD) and/or TagForUnderAgeOfConsent (TFUA) settings. Please use only TFAT settings going forward. | **Issue** Conflict between legacy privacy settings (TFCD/TFUA) and new TFAT settings. *** ** * ** *** **Details** The page attempted to set Teen treatment using the newer `tagForAgeTreatment` (TFAT) setting, but Child treatment was already requested using legacy `TFCD` (Tag for Child-Directed) or `TFUA` (Tag for Under Age of Consent) settings. In this case, the stricter Child treatment takes precedence, and the Teen treatment request is ignored. As a best practice, you should avoid mixing legacy and new parameters on the same page. We recommend migrating fully to the newer `TFAT` settings. |
| Div ID passed to googletag.display() does not match any defined slots: <var translate="no">$DIV_ID</var>. | **Issue** Attempted to display an ad slot that was not previously defined. *** ** * ** *** **Details** The specified <var translate="no">$DIV_ID</var> value passed into [`googletag.display()`](https://developers.google.com/publisher-tag/reference#googletag.display) has not been associated with a GPT ad slot. Ensure that: 1. The <var translate="no">$DIV_ID</var> value is correct. 2. Your code contains a corresponding call to [`googletag.defineSlot(..., $DIV_ID)`](https://developers.google.com/publisher-tag/reference#googletag.defineSlot). 3. The call to `googletag.display()` occurs **after** the call to `googletag.defineSlot()`. See [Getting Started with Google Publisher Tags](https://developers.google.com/publisher-tag/guides/get-started) for more information. <br /> |
| Error in googletag.display: could not find div with id "<var translate="no">$DIV_ID</var>" in DOM for slot: <var translate="no">$AD_UNIT_PATH</var>. | **Issue** Attempted to display the ad slot associated with the specified div ID, but no div element with that ID could be found on the page. *** ** * ** *** **Details** The specified <var translate="no">$DIV_ID</var> value passed into [`display()`](https://developers.google.com/publisher-tag/reference#googletag.display) does not correspond to an element on the page. Ensure that: 1. The <var translate="no">$DIV_ID</var> value is correct. 2. The page contains a `<div id="$DIV_ID">...</div>` element. 3. The element is defined and present on the page before the call to `display()`. See [Get Started with Google Publisher Tags](https://developers.google.com/publisher-tag/guides/get-started) for more information. <br /> |
| Failed to register listener. Unknown event type: <var translate="no">$TYPE</var>. | **Issue** Attempted to register an event listener, but the specified event type is not defined by GPT. *** ** * ** *** **Details** An invalid event type was specified when calling [`PubAdsService.addEventListener()`](https://developers.google.com/publisher-tag/reference#googletag.Service_addEventListener). Learn about supported GPT events and see examples of how to use them in the [ad event listeners](https://developers.google.com/publisher-tag/guides/publisher-tag/samples/ad-event-listeners) sample. |
| GPT must be loaded from the limited ads URL to configure limited ads functionality via the PrivacySettings API. | **Issue** Attempted to configure limited ads serving via `googletag.pubads().setPrivacySettings()`, but this is not supported by the currently executing version of GPT. *** ** * ** *** **Details** You can instruct GPT to request limited ads in two ways: - Automatically, by using a signal from an [IAB TCF v2.0](https://iabeurope.eu/tcf-2-0/) consent management platform (CMP). - Manually, by using the [GPT `PrivacySettings` API](https://developers.google.com/publisher-tag/reference#googletag.privacysettingsconfig). In order to manually control limited ads, you must load GPT from the [limited ads URL](https://developers.google.com/publisher-tag/guides/general-best-practices#load_from_an_official_source). The version of GPT served from this URL contains additional safeguards against accessing client-side storage by default. > [!IMPORTANT] > **Important:** It is not necessary to manually enable limited ads when a CMP is in use. See [Display a limited ad](https://developers.google.com/publisher-tag/samples/display-limited-ad) documentation for more information. <br /> |
| Ignoring a call to setCollapseEmptyDiv(false, true). Slots that start out collapsed should also collapse when empty. Slot: <var translate="no">$SLOT</var>. | **Issue** An invalid `collapseEmptyDiv()` configuration was specified. The specified configuration was ignored. *** ** * ** *** **Details** Slots configured to collapse before an ad is fetched must also be configured to collapse when empty. This is to ensure that the behavior of the slot is predictable in the event that it cannot be filled. See the [collapse empty ad slots](https://developers.google.com/publisher-tag/samples/collapse-empty-ad-slots) sample to learn more about properly configuring the `collapseEmptyDivs()` feature. |
| Ignoring the <var translate="no">$METHOD_NAME</var>(<var translate="no">$ARGS</var>) call since the service is already enabled. | **Issue** The specified method was called after the `PubAdsService` was enabled. |
| Invalid argument: <var translate="no">$METHOD_NAME</var>(<var translate="no">$ARG</var>). Valid values: <var translate="no">$VALUES</var>. | **Issue** An invalid enum value was passed to the specified GPT method. *** ** * ** *** **Details** The specified GPT method (<var translate="no">$METHOD_NAME</var>) only accepts enum values from the list provided (<var translate="no">$VALUES</var>). Refer to the [GPT reference documentation](https://developers.google.com/publisher-tag/reference) for more information. |
| Invalid arguments: <var translate="no">$METHOD_NAME</var>(<var translate="no">$ARGS</var>). | **Issue** An invalid argument was passed to the specified GPT method. *** ** * ** *** **Details** The arguments (<var translate="no">$ARGS</var>) passed to the specified GPT method (<var translate="no">$METHOD_NAME</var>) were incorrect or improperly formatted. Refer to the [GPT reference documentation](https://developers.google.com/publisher-tag/reference) for more information. |
| Invalid arguments: <var translate="no">$METHOD_NAME</var>(<var translate="no">$ARGS</var>). All zero-area slot sizes were removed. | **Issue** An invalid argument was passed to the specified GPT method. *** ** * ** *** **Details** The [`SizeMapping`](https://developers.google.com/publisher-tag/reference#googletag.SizeMapping) (<var translate="no">$ARGS</var>) provided to the specified GPT method (<var translate="no">$METHOD_NAME</var>) was invalid and automatically removed. Refer to the [GPT reference documentation](https://developers.google.com/publisher-tag/reference) for more information. |
| Invalid object passed to <var translate="no">$METHOD_NAME</var>(<var translate="no">$ARGS</var>), for <var translate="no">$KEY</var>: <var translate="no">$VALUE</var>. | **Issue** An invalid object was passed to the specified GPT method. *** ** * ** *** **Details** The arguments (<var translate="no">$ARGS</var>) passed to the specified GPT method (<var translate="no">$METHOD_NAME</var>) contained an object with an incorrect or improperly formatted key-value pair ({<var translate="no">$KEY</var>: <var translate="no">$VALUE</var>}). Refer to the [GPT reference documentation](https://developers.google.com/publisher-tag/reference) for more information. |
| Invalid publisher-provided ID (PPID) specified. See https://support.google.com/admanager/answer/2880055 for requirements. | **Issue** Warn publisher when an invalid publisher-provided ID (PPID) is provided. |
| Invalid value encountered when calling: <var translate="no">$PATH</var>: <var translate="no">$VALUE</var> | **Issue** Attempted to set an invalid config value. *** ** * ** *** **Details** A call to `googletag.setConfig()` or `Slot.setConfig()` specified an invalid value (<var translate="no">$VALUE</var>) for <var translate="no">$PATH</var>. The property was not set to the specified value. The warning is followed by a diagnostic message explaining why the value was rejected (such as the expected type or allowed values, a missing required property, or an unrecognized nested property). Refer to the config reference documentation for more information: - [`PageSettingsConfig`](https://developers.google.com/publisher-tag/reference#googletag.config.PageSettingsConfig) - [`SlotSettingsConfig`](https://developers.google.com/publisher-tag/reference#googletag.config.SlotSettingsConfig) <br /> |
| PubAdsService.<var translate="no">$METHOD</var> is deprecated, use googletag.getConfig('<var translate="no">$REPLACEMENT</var>') instead. | **Issue** The specified `PubAdsService` method is deprecated and should no longer be used. Use the recommended `PageSettingsConfig` replacement, instead. *** ** * ** *** **Details** A call to `PubAdsService.$METHOD` was detected. This method is no longer supported and will soon be removed. Instead, use the recommended `googletag.getConfig()` alternative. Refer to the config reference documentation for more information: - [`googletag.getConfig()`](https://developers.google.com/publisher-tag/reference#googletag.getConfig) <br /> |
| PubAdsService.<var translate="no">$METHOD</var> is deprecated, use googletag.setConfig({<var translate="no">$REPLACEMENT</var>: ...}) instead. | **Issue** The specified `PubAdsService` method is deprecated and should no longer be used. Use the recommended `PageSettingsConfig` replacement, instead. *** ** * ** *** **Details** A call to `PubAdsService.$METHOD` was detected. This method is no longer supported and will soon be removed. Instead, use the recommended `googletag.setConfig()` alternative. Refer to the config reference documentation for more information: - [`PageSettingsConfig`](https://developers.google.com/publisher-tag/reference#googletag.config.PageSettingsConfig) <br /> |
| Publisher betas <var translate="no">$BETA_KEYS</var> were declared after enableServices() was called. | **Issue** Attempted to declare beta keys after the `PubAdsService` was enabled. *** ** * ** *** **Details** <br /> > [!WARNING] > Beta keys are provided to select trusted testers, for the purpose of gathering feedback on pre-release functionality. Beta keys must be set before [`enableServices()`](https://developers.google.com/publisher-tag/reference#googletag.enableServices) is called. Once set, these keys cannot be modified or unset. Because of this, you should ensure that beta keys are only set when beta functionality is desired for the life of the page. <br /> |
| Publisher betas may only be declared once. <var translate="no">$BETA_KEYS</var> were added after betas had already been declared. | **Issue** Attempted to declare beta keys more than once. *** ** * ** *** **Details** <br /> > [!WARNING] > Beta keys are provided to select trusted testers, for the purpose of gathering feedback on pre-release functionality. Individual beta keys may only be set once, before [`enableServices()`](https://developers.google.com/publisher-tag/reference#googletag.enableServices) is called. Once set, these keys cannot be modified or unset. You should ensure that beta keys are only set when beta functionality is desired for the life of the page. <br /> |
| Size mapping is null because invalid mappings were added: <var translate="no">$MAPPINGS</var>. | **Issue** A `SizeMappingBuilder` could not be built, since invalid mappings were specified. *** ** * ** *** **Details** A call to [`SizeMappingBuilder.build()`](https://developers.google.com/publisher-tag/reference#googletag.SizeMappingBuilder_build) returned `null`, because the builder contained invalid size mappings (<var translate="no">$MAPPINGS</var>). Fix or remove the invalid mappings before retrying. See the [ad sizes guide](https://developers.google.com/publisher-tag/guides/ad-sizes#responsive_ads) for more information. |
| Slot <var translate="no">$DIV_ID</var> cannot be refreshed until PubAdsService is enabled. | **Issue** Attempted to refresh an ad slot before enabling `PubAdsService`. *** ** * ** *** **Details** GPT ad slots start out empty and cannot be filled until services are enabled via [`enableServices()`](https://developers.google.com/publisher-tag/reference#googletag.enableServices). Prior to this, calls to [`PubAdsService.refresh()`](https://developers.google.com/publisher-tag/reference#googletag.PubAdsService_refresh) have no effect. See the [control ad loading and refresh](https://developers.google.com/publisher-tag/guides/control-ad-loading) guide for more information. |
| Slot <var translate="no">$SLOT_ID</var> rendered inside of the viewport. | **Issue** The slot was in the viewport when the ad was rendered. *** ** * ** *** **Details** This warning indicates that there was not enough time for the ad in slot <var translate="no">$SLOTID</var> to render before entering the viewport. This is most commonly caused by lazy loading configurations with too small of a render margin. If you see this warning for a slot that was lazily loaded, review your lazy loading configuration. There may be an opportunity to increase viewable impressions by adjusting the render margin. Learn more: - [Viewability best practices](https://support.google.com/admanager/answer/6199883#lazy-loading) - [GPT Reference: `enableLazyLoad`](https://developers.google.com/publisher-tag/reference#googletag.PubAdsService.enableLazyLoad) - [Sample: Lazy loading](https://developers.google.com/publisher-tag/samples/lazy-loading) <br /> |
| Slot object at position <var translate="no">$POSITION</var> is of incorrect type. | **Issue** An invalid slot object was included in an array passed to `clear()` or `refresh()` at the specified position. *** ** * ** *** **Details** A slot object at position <var translate="no">$POSITION</var> in an array passed to either [`PubAdsService.clear()`](https://developers.google.com/publisher-tag/reference#googletag.PubAdsService_clear) or [`PubAdsService.refresh()`](https://developers.google.com/publisher-tag/reference#googletag.PubAdsService_refresh) was invalid. This usually indicates that the slot object was previously destroyed via a call to [`destroySlots()`](https://developers.google.com/publisher-tag/reference#googletag.destroySlots). |
| Slot.<var translate="no">$METHOD</var> is deprecated, use Slot.getConfig('<var translate="no">$REPLACEMENT</var>') instead. | **Issue** The specified `Slot` method is deprecated and should no longer be used. Use the recommended `SlotSettingsConfig` replacement, instead. *** ** * ** *** **Details** A call to `Slot.$METHOD` was detected. This method is no longer supported and will soon be removed. Instead, use the recommended `Slot.getConfig()` alternative. Refer to the config reference documentation for more information: - [`Slot.getConfig()`](https://developers.google.com/publisher-tag/reference#googletag.Slot.getConfig) <br /> |
| Slot.<var translate="no">$METHOD</var> is deprecated, use Slot.setConfig({<var translate="no">$REPLACEMENT</var>: ...}) instead. | **Issue** The specified `Slot` method is deprecated and should no longer be used. Use the recommended `SlotSettingsConfig` replacement, instead. *** ** * ** *** **Details** A call to `Slot.$METHOD` was detected. This method is no longer supported and will soon be removed. Instead, use the recommended `Slot.setConfig()` alternative. Refer to the config reference documentation for more information: - [`SlotSettingsConfig`](https://developers.google.com/publisher-tag/reference#googletag.config.SlotSettingsConfig) <br /> |
| Slots cannot be cleared until service is enabled. | **Issue** The `PubAdsService.clear()` method was called before the service was enabled. *** ** * ** *** **Details** GPT ad slots start out empty and cannot be filled until: 1. Services are enabled via [`enableServices()`](https://developers.google.com/publisher-tag/reference#googletag.enableServices). 2. Ads are requested via a call to [`PubAdsService.display()`](https://developers.google.com/publisher-tag/reference#googletag.PubAdsService_display) or [`PubAdsService.refresh()`](https://developers.google.com/publisher-tag/reference#googletag.PubAdsService_refresh). Prior to this, calls to [`PubAdsService.clear()`](https://developers.google.com/publisher-tag/reference#googletag.PubAdsService_clear) have no effect. See the [control ad loading and refresh](https://developers.google.com/publisher-tag/guides/control-ad-loading) guide for more information. <br /> |
| Starting June 15, 2026, the backward trigger is no longer supported and its configuration will be ignored. | **Issue** The `backward` interstitial trigger is deprecated. *** ** * ** *** **Details** Starting June 15, 2026, navigating backward using a browser's back button will no longer trigger an Ad Manager web interstitial across any supported browsers (including Chrome, Edge, and Opera). This update applies automatically to all publishers opted into the `backward` trigger and requires no publisher action. The change ensures compliance with Google Search's new policy against "back button hijacking". [Learn more](https://developers.google.com/search/blog/2026/04/back-button-hijacking) |
| Taxonomy with type <var translate="no">$TAXONOMY</var> has reached the limit of <var translate="no">$LIMIT</var> values. | **Issue** A taxonomy has reached the maximum supported size. *** ** * ** *** **Details** The specified [taxonomy](https://developers.google.com/publisher-tag/reference#googletag.config.Taxonomy) (<var translate="no">$TAXONOMY</var>) configured in [googletag.config.PublisherProvidedSignalsConfig](https://developers.google.com/publisher-tag/reference#googletag.config.PublisherProvidedSignalsConfig) has reached the maximum number of values supported by GPT. Only the first <var translate="no">$LIMIT</var> values were set. Remaining values were not added to the configuration. |
| This ad request is subject to Google's EU User Consent Policy. An IAB TCF signal was not received. This ad request will not be eligible for personalized ads. | **Issue** The ad request is subject to Google's EU User Consent Policy. However, a valid IAB TCF signal was not received. The ad request will be served as [limited ad](https://support.google.com/admanager/answer/9882911) and thus not eligible for personalization and features that require use of a local identifier. *** ** * ** *** **Details** If you see this message, please implement a [Google-Cerified consent management platform (CMP)](https://support.google.com/admanager/answer/13554116#google-cmps). |
| Unrecognized property encountered when calling getConfig: <var translate="no">$PROPERTY</var> | **Issue** Attempted to retrieve an unrecognized config property. *** ** * ** *** **Details** A call to `googletag.getConfig()` or `Slot.getConfig()` specified an unrecognized config property (<var translate="no">$PROPERTY</var>). Refer to the `getConfig()` reference documentation for more information: - [`googletag.getConfig()`](https://developers.google.com/publisher-tag/reference#googletag.getConfig) - [`googletag.Slot.getConfig()`](https://developers.google.com/publisher-tag/reference#googletag.Slot.getConfig) <br /> |
| Unrecognized property encountered when calling setConfig: <var translate="no">$PATH</var>.<var translate="no">$PROPERTY</var> | **Issue** Attempted to configure an unrecognized config property. *** ** * ** *** **Details** A call to `googletag.setConfig()` or `Slot.setConfig()` specified an unrecognized config property (<var translate="no">$PROPERTY</var>) at <var translate="no">$PATH</var>. When a similar valid property name exists, the message includes a suggestion (for example, `Did you mean $SUGGESTION?`). Refer to the config reference documentation for more information: - [`PageSettingsConfig`](https://developers.google.com/publisher-tag/reference#googletag.config.PageSettingsConfig) - [`SlotSettingsConfig`](https://developers.google.com/publisher-tag/reference#googletag.config.SlotSettingsConfig) <br /> |
| Unsupported property encountered when calling getConfig: <var translate="no">$PROPERTY</var> | **Issue** Attempted to retrieve an unsupported config property. *** ** * ** *** **Details** A call to `googletag.getConfig()` or `Slot.getConfig()` specified an unsupported config property (<var translate="no">$PROPERTY</var>). Only a limited number of `setConfig()` properties are supported by the `getConfig()` method. Refer to the `getConfig()` reference documentation for more information: - [`googletag.getConfig()`](https://developers.google.com/publisher-tag/reference#googletag.getConfig) - [`googletag.Slot.getConfig()`](https://developers.google.com/publisher-tag/reference#googletag.Slot.getConfig) <br /> |
| Using a locally cached version of the GPT library is not supported. | **Issue** Using a locally cached version of the GPT library is not supported. *** ** * ** *** **Details** This page was detected to be using a service worker to cache GPT script resources outside of the standard HTTP cache. This is not supported and may cause the GPT library to malfunction, see the [Don't serve cached versions of GPT"](https://developers.google.com/publisher-tag/guides/general-best-practices#dont_serve_cached_versions) best practice for more information. |
| Using deprecated googletag.encryptedSignalProviders. Please use googletag.secureSignalProviders instead. | **Issue** The `googletag.encryptedSignalProviders` variable is deprecated. *** ** * ** *** **Details** The `googletag.encryptedSignalProviders` variable is no longer supported and will be removed in a future release. You can use [`googletag.secureSignalProviders`](https://developers.google.com/publisher-tag/reference#googletag.secureSignalProviders) as a direct replacement. |
| getName on googletag.Slot is deprecated and will be removed. Use getAdUnitPath instead. | **Issue** `getName` on `googletag.Slot` is deprecated. *** ** * ** *** **Details** The `Slot.getName()` method is no longer supported and might be removed in a future release. You can use [` Slot.getAdUnitPath()`](https://developers.google.com/publisher-tag/reference#googletag.Slot_getAdUnitPath) as a direct replacement. Unsupported: `Slot.getName()` ```javascript var slot = googletag.defineSlot('/1234567/sports', [160, 600], 'div-1').addService(googletag.pubads()); var name = slot.getName(); // name is '/1234567/sports' ``` Supported: `Slot.getAdUnitPath()` ```javascript var slot = googletag.defineSlot('/1234567/sports', [160, 600], 'div-1').addService(googletag.pubads()); var path = slot.getAdUnitPath(); // path is '/1234567/sports' ``` <br /> |
| setConfig key <var translate="no">$COMPONENT</var> is deprecated and <var translate="no">$ALTERNATIVE</var> should be used instead. | **Issue** Attempted to configure a deprecated config property. *** ** * ** *** **Details** A call to `googletag.setConfig()` or `Slot.setConfig()` specified a deprecated config property (<var translate="no">$COMPONENT</var>). This property is no longer supported and will soon be removed. Instead, use the recommended alternative (<var translate="no">$ALTERNATIVE</var>). Refer to the config reference documentation for more information: - [`PageSettingsConfig`](https://developers.google.com/publisher-tag/reference#googletag.config.PageSettingsConfig) - [`SlotSettingsConfig`](https://developers.google.com/publisher-tag/reference#googletag.config.SlotSettingsConfig) <br /> |

## Info messages

| Message ||
|---|---|
| <var translate="no">$AD_FORMAT</var> <var translate="no">$AD_UNIT_PATH</var> not requested: Detected browser is currently unsupported. | **Issue** The specified out-of-page format is not supported on the current browser. *** ** * ** *** **Details** Certain GPT-managed out-of-page formats depend on CSS and JavaScript features that aren't available in all browsers. GPT has determined that the browser attempting to request the ad identified by <var translate="no">$AD_UNIT_PATH</var> lacks the necessary functionality to properly render the specified format, (<var translate="no">$AD_FORMAT</var>). Applicable to: - `OutOfPageFormat.INTERSTITIAL` <br /> |
| <var translate="no">$AD_FORMAT</var> <var translate="no">$AD_UNIT_PATH</var> not requested: Format currently only supported on mobile. | **Issue** The specified out-of-page format can only be displayed on mobile devices. *** ** * ** *** **Details** Certain GPT-managed out-of-page formats are only supported on mobile devices. An attempt was made to request the ad identified by <var translate="no">$AD_UNIT_PATH</var> from a non-mobile device. As a best practice, GPT-managed out-of-page formats should only be requested on pages or environments where you want an ad of that type to appear. Support for additional devices and environments may be added in the future. Applicable to: - `OutOfPageFormat.BOTTOM_ANCHOR` - `OutOfPageFormat.TOP_ANCHOR` <br /> |
| <var translate="no">$AD_FORMAT</var> <var translate="no">$AD_UNIT_PATH</var> not requested: Format currently only supports portrait orientation. | **Issue** The specified out-of-page format can only be displayed in portrait orientation. *** ** * ** *** **Details** Certain GPT-managed out-of-page formats are only supported when the width of the viewport is less than its height (portrait orientation). An attempt was made to request the ad identified by <var translate="no">$AD_UNIT_PATH</var> on a page where the width of the viewport exceeds its height (landscape orientation). Applicable to: - `OutOfPageFormat.BOTTOM_ANCHOR` - `OutOfPageFormat.TOP_ANCHOR` <br /> |
| <var translate="no">$AD_FORMAT</var> <var translate="no">$AD_UNIT_PATH</var> not requested: Frequency cap of <var translate="no">$FREQ_CAP</var> has been exceeded. | **Issue** The specified out-of-page format has been shown the maximum number of times for the current user within a short period. *** ** * ** *** **Details** Certain GPT-managed out-of-page formats use frequency capping to limit the number of times a single user can be shown the same type of ad within a fixed timeframe (usually 1 hour). An attempt to request the ad identified by <var translate="no">$AD_UNIT_PATH</var> was blocked, since the user has been shown an ad of the specified format (<var translate="no">$AD_FORMAT</var>) the maximum number of times (<var translate="no">$FREQCAP</var>) for the current frequency capping period. Applicable to: - `OutOfPageFormat.INTERSTITIAL` <br /> |
| <var translate="no">$AD_FORMAT</var> <var translate="no">$AD_UNIT_PATH</var> not requested: The viewport exceeds the current maximum width of 2500px. | **Issue** The viewport exceeds the current maximum allowed for the specified out-of-page format on the current device. *** ** * ** *** **Details** Certain GPT-managed out-of-page formats are only supported when the width of the viewport is less than a predefined maximum value. An attempt was made to request the ad identified by <var translate="no">$AD_UNIT_PATH</var> on a page where the width of the viewport was greater than this maximum value. The maximum width specified in the body of this message is a default used by GPT in most circumstances. The exact maximum width for a given format may vary slightly depending on the device and environment in which the format is requested, and is subject to change without notice. Applicable to: - `OutOfPageFormat.BOTTOM_ANCHOR` - `OutOfPageFormat.TOP_ANCHOR` <br /> |
| <var translate="no">$FORMAT</var> <var translate="no">$AD_UNIT_PATH</var> not requested: Unable to access local storage to determine if the frequency cap has been exceeded due to insufficient user consent. | **Issue** Local storage cannot be accessed to determine if the frequency cap for the specified out-of-page format has been exceeded due to insufficient user consent. *** ** * ** *** **Details** Frequency capping requires access to local storage in the user's browser to store how frequently an ad of the specified format (<var translate="no">$AD_FORMAT</var>) has been shown. An attempt to request the ad identified by <var translate="no">$AD_UNIT_PATH</var> was blocked because GPT is unable to determine if the current frequency cap has been exceeded, due to a lack of user consent to access local storage. Applicable to: - `OutOfPageFormat.INTERSTITIAL` <br /> |
| An IAB Global Privacy Platform (GPP) Consent Management Platform was detected. Interaction with this CMP failed. User consent decisions may not be correctly respected. | **Issue** An attempt to retrieve consent signals from an IAB Global Privacy Platform Consent Management Platform failed. *** ** * ** *** **Details** GPT detected the presence of an IAB Global Privacy Platform Consent Management Platform (CMP) on the page, but was unable to retrieve consent signals from it. Due to this, ad requests will not contain Global Privacy Platform consent signals. Review your CMP implementation to ensure it is properly configured and responsive. |
| An IAB US Privacy Consent Management Provider was detected, but was unresponsive. Please review USP integration to ensure an optimal setup. | **Issue** An attempt to retrieve consent signals from an IAB US Privacy Consent Management Platform failed. *** ** * ** *** **Details** GPT detected the presence of an IAB US Privacy Consent Management Platform (CMP) on the page, but the provider did not respond within 500ms. Due to this, ad requests will not contain US Privacy consent signals. Review your CMP implementation to ensure it is properly configured and responsive. |
| Attempted to collect Prebid metadata but window.pbjs.getEvents is undefined. | **Issue** Attempted to collect Prebid metadata but `pbjs.getEvents` was undefined. *** ** * ** *** **Details** GPT attempted to call [`pbjs.getEvents()`](https://docs.prebid.org/dev-docs/publisher-api-reference/getEvents.html), but the function was not defined. This is required for the header bidding trafficking feature to work properly, see [Header bidding trafficking FAQ](https://support.google.com/admanager/answer/12270263) for more information. |
| Calling this method may reduce the likelihood of signals being included in ad requests for the current and potentially later page views. Due to this, it should only be called when meaningful state changes occur, such as events that indicate a new user (log in, log out, sign up, etc.). | **Issue** A call to `googletag.secureSignalProviders.clearAllCache()` was made. This may reduce the likelihood of signals being included in ad requests and should only be used in situations that indicate a significant change in the user's state. |
| Creative content has successfully rendered after being delayed due to slot element not being attached to the DOM. | **Issue** An ad slot which was previously unable to render due to its container not being attached to the DOM has successfully been attached and rendered. |
| Encountered the following error while attempting to collect Prebid metadata: <var translate="no">$ERROR</var>. | **Issue** There was an error while collecting and processing Prebid metadata. |
| Lazy loading is not supported for Side Rail formats. Invocation will have no effect. | **Issue** Lazy loading is not supported for Side Rail formats. |
| Legacy browser does not support intersection observer causing lazy render/fetch as well as viewability events not to work properly. | **Issue** Legacy browser does not support intersection observer. *** ** * ** *** **Details** GPT has determined that the current browser lacks support for the [Intersection Observer API](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). This API is used by certain GPT features to determine the visibility of ad elements. Without access to this API, these features will not work. Applicable to: - [`events.ImpressionViewableEvent`](https://developers.google.com/publisher-tag/reference#googletag.events.impressionviewableevent) - [`events.SlotVisibilityChangedEvent`](https://developers.google.com/publisher-tag/reference#googletag.events.slotvisibilitychangedevent) - [`PubAdsService.enableLazyLoad`](https://developers.google.com/publisher-tag/reference#googletag.PubAdsService_enableLazyLoad) <br /> |
| Refresh for slot <var translate="no">$DIV_ID</var> pending googletag.enableServices. | **Issue** A request to `refresh()` a slot or slots was made prior to enabling services. The request will be queued and executed after services have been enabled. |
| Refresh is disabled for <var translate="no">$AD_FORMAT</var> <var translate="no">$AD_UNIT_PATH</var>. | **Issue** The specified slot cannot be refreshed. |
| Refresh was throttled <var translate="no">$COUNTER</var> time(s) for slot: <var translate="no">$AD_UNIT_PATH</var> | **Issue** Attempted to refresh an ad slot too quickly. The refresh request was ignored. *** ** * ** *** **Details** There were multiple calls to [`PubAdsService.refresh()`](https://developers.google.com/publisher-tag/reference#googletag.PubAdsService_refresh) for the specified ad slot (<var translate="no">$AD_UNIT_PATH</var>) in a short period of time. The most recent call was ignored. Ensure you are adhering to [`refresh()` best practices](https://developers.google.com/publisher-tag/guides/control-ad-loading#best_practices) before retrying. |
| Rendering delayed due to slot element not being attached to the DOM. It is recommended that the slot element or its ancestor be appended to the document prior to calling display. | **Issue** An ad slot is unable to render due to its container not being attached to the DOM. |
| Service <var translate="no">$SERVICE</var> is already associated with slot <var translate="no">$SLOT</var>. | **Issue** Attempted to associate the specified service and slot, but an association already existed. A slot cannot be associated with a service more than once. |
| Service is already enabled | **Issue** Attempted to enable a service that was already enabled. Services cannot be enabled more than once. |
| googletag.slot.setConfig.interstitial is not applicable to non-interstitial slot: <var translate="no">$AD_UNIT_PATH</var> | **Issue** Attempted to configure interstitial settings for an ad slot that is not eligible for interstitials. *** ** * ** *** **Details** Interstitial settings cannot be configured for the ad slot with the specified ad unit path (<var translate="no">$AD_UNIT_PATH</var>). [`InterstitialConfig`](https://developers.google.com/publisher-tag/reference#googletag.config.InterstitialConfig) settings are only applicable to `OutOfPageFormat.INTERSTITIAL` slots. Attempting to configure these settings for any other slot will have no effect. See the [display a web interstitial ad](https://developers.google.com/publisher-tag/samples/display-web-interstitial-ad) sample for more information. |

## Verbose messages

| Message | Description |
|---|---|
| <var translate="no">$SERVICE</var> implementation fetched. | Implementation details have been received for the specified service. |
| Added taxonomy values <var translate="no">$VALUES</var> for taxonomy with id <var translate="no">$TAXONOMY</var>. | Set taxonomy values for the specified taxonomy. Any pre-existing values were overwritten. |
| An IAB Global Privacy Platform Consent Management Provider was detected. Attempting to retrieve consent information. | An attempt to retrieve consent information from the IAB Tech Lab Global Privacy Platform user consent API is being made. |
| An IAB Transparency \& Consent v2 Consent Management Provider was detected. Attempting to retrieve consent information. | An attempt to retrieve consent information from the IAB Tech Lab Consent Management Platform API is being made. |
| An IAB Transparency \& Consent v2 Consent Management Provider was detected. Interaction with this CMP <var translate="no">$STATUS</var>, though this does not guarantee downstream validation passes. Currently, failures may result in non-personalized ads, but may be rejected in the future. | The result of an attempt to retrieve consent information from the IAB Tech Lab Consent Management Platform API. |
| An IAB US Privacy Consent Management Provider was detected. Attempting to retrieve consent information. | An attempt to retrieve consent information from the IAB Tech Lab U.S. Privacy User Signal API is being made. |
| Associated service "<var translate="no">$SERVICE</var>" with slot "<var translate="no">$AD_UNIT_PATH</var>". | The specified slot was associated with the specified service. |
| Cleared slot targeting. | All targeting key-values have been cleared for a specific slot. |
| Cleared targeting attribute "<var translate="no">$KEY</var>" for <var translate="no">$AD_UNIT_PATH</var>. | All targeting for key "<var translate="no">$KEY</var>" has been cleared for the specified slot. |
| Cleared targeting attribute "<var translate="no">$KEY</var>" for <var translate="no">$SERVICE</var>. | All targeting for key "<var translate="no">$KEY</var>" has been cleared for the specified service. |
| Clearing all page level ad category exclusions | All [ad category exclusions](https://support.google.com/admanager/answer/3238504) have been cleared at the page-level. |
| Clearing all slot level ad category exclusions | All [ad category exclusions](https://support.google.com/admanager/answer/3238504) have been cleared for a specific slot. |
| Clearing slot contents. | The contents of a slot or slots are being cleared in response to a `clear()` request. |
| Clearing targeting for service "<var translate="no">$SERVICE</var>". | All targeting key-values have been cleared for the specified service. |
| Completed rendering ad for slot: <var translate="no">$AD_UNIT_PATH</var>. | An ad response has been processed for the specified slot. This does not necessarily indicate that a creative has been rendered. See `https://developers.google.com/publisher-tag/reference#googletag.events.slotrenderendedevent` for details. |
| Created service: <var translate="no">$SERVICE</var>. | The specified service was created. |
| Created slot: <var translate="no">$SLOT_ID</var>. | A slot has been created with the specified ad unit path. |
| Destroyed slot: <var translate="no">$AD_UNIT_PATH</var>. | The specified slot has been destroyed. |
| Enabling collapsing of containers when there is no ad content. Collapse before ad fetch: <var translate="no">$COLLAPSE_BEFORE_AD_FETCH</var>. | Enabling automatic collapsing of slot `div`s in response to a `https://developers.google.com/publisher-tag/samples/collapse-empty-ad-slots` request. This indicates that slot divs will be collapsed if they cannot be filled. The current `https://developers.google.com/publisher-tag/reference#googletag.PubAdsService_collapseEmptyDivs` setting is also provided. |
| Fetching ad for slot: <var translate="no">$AD_UNIT_PATH</var>. | An ad is being fetched for the specified slot. |
| Invoked queued function. Total: <var translate="no">$NUM_INVOKED</var>. Errors: <var translate="no">$NUM_ERRORS</var>. | A user-defined function (or collection of functions) which was previously added to the `https://developers.google.com/publisher-tag/reference#googletag.cmd` has been invoked. The number of total invocations and errors encountered are provided. |
| Receiving ad for slot: <var translate="no">$AD_UNIT_PATH</var>. | An ad response was received for the specified slot. |
| Refreshing ads. | The contents of a slot or slots are being refreshed in response to a `refresh()` request. |
| Rendering ad for slot: <var translate="no">$AD_UNIT_PATH</var>. | An ad response is being processed for the specified slot. This does not necessarily indicate that a creative has been received. |
| Set <var translate="no">$ATTRIBUTE</var>=<var translate="no">$VALUE</var>. | The specified attribute has been set to the specified value. |
| Set attribute <var translate="no">$KEY</var>=<var translate="no">$VALUE</var> for <var translate="no">$SERVICE</var>. | An [AdSense attribute](https://developers.google.com/publisher-tag/adsense_attributes) has been set for the specified service. |
| Set targeting attribute <var translate="no">$KEY</var>=<var translate="no">$VALUE</var> for <var translate="no">$SERVICE_OR_SLOT</var>. | A targeting key-value has been set for the specified service or slot. |
| Setting page level ad category exclusion: <var translate="no">$CATEGORY_EXCLUSION</var>. | The specified [ad category exclusion](https://support.google.com/admanager/answer/3238504) has been set at the page-level. |
| Using <var translate="no">$REQUEST_MODE</var> mode to fetch ads. | The specified ad request mode has been enabled. |