google_ad_manager_pop_up_ads_web_interstitial_ads

Advertising is a crucial revenue stream for publishers, and Google Ad Manager (GAM) provides multiple ways to serve ads effectively. One such method is implementing a popup ad using Google Publisher Tags (GPT). Additionally, Google Adx offers codeless web interstitial ads that automatically serve without requiring developers to add scripts manually. In this article, we will explore both approaches.

Custom Popup Ad Implementation Using GPT

The following JavaScript code dynamically injects a popup ad into the webpage using Google Publisher Tags (GPT). This implementation ensures that ads are displayed only at specified intervals, reducing user disruption.

(function() {
  // Load Google Publisher Tag (GPT) asynchronously
  var gptScript = document.createElement('script');
  gptScript.src = 'https://securepubads.g.doubleclick.net/tag/js/gpt.js';
  gptScript.async = true;
  document.head.appendChild(gptScript);

  // Create the ad popup container
  var atdadPopup = document.createElement('div');
  atdadPopup.id = 'ad-popup';
  atdadPopup.style.cssText = `
    min-width: fit-content;
    position: relative;
    min-height: 200px;
    display: none; /* Initially hidden */
    top: 1rem;
    bottom: 1rem;
    background-color: transparent;
    border-radius: 1px;
  `;
  document.body.appendChild(atdadPopup);

  // Create fixed-width container within the popup (for centering, etc.)
  var fixedWidthDiv = document.createElement('div');
  fixedWidthDiv.className = 'fixed-width';
  fixedWidthDiv.style.cssText = `
    width: fit-content;
    padding: 0px;
    box-shadow: 0px 10px 20px rgba(128, 128, 128, 0.645);
    border-radius: 2px;
    overflow: hidden;
  `;
  atdadPopup.appendChild(fixedWidthDiv);


  // Create branding element
  var brandingDiv = document.createElement('div');
  brandingDiv.id = 'desktop-branding';
  var brandLink = document.createElement('a');
  brandLink.id = 'brand-name';
  brandLink.href = ""; // Add your brand link here
  brandLink.textContent = "adtagmacros";
  brandLink.style.cssText = "color: #206cd7; text-decoration: none;"; // Example styling
  brandingDiv.appendChild(brandLink);
  fixedWidthDiv.appendChild(brandingDiv);

  // Create close button
  var closeButtonDiv = document.createElement('div');
  closeButtonDiv.id = 'close-popup';
  closeButtonDiv.style.cssText = `
    width: fit-content;
    height: 16px;
    position: absolute;
    top: -1.2rem;
    right: -0.5rem;
    display: none; /* Initially hidden */
    flex-direction: row;
    justify-content: end;
    align-items: center;
    color: gray;
    font-family: helvetica, sans-serif;
  `;
  var closeButton = document.createElement('span');
  closeButton.className = 'close-btn';
  closeButton.textContent = 'x';
  closeButton.style.cssText = `
    display: flex;
    justify-content: center;
    align-items: center;
    width: 20px;
    height: 20px;
    background-color: black;
    color: white;
    border: 1px solid black;
    cursor: pointer;
    font-weight: bolder;
  `;
  closeButtonDiv.appendChild(closeButton);
  fixedWidthDiv.appendChild(closeButtonDiv);


  // Create the ad container
  var adContainer = document.createElement('div');
  adContainer.id = 'adtagmacrospopupad';
  fixedWidthDiv.appendChild(adContainer);

  // Add media query for close button positioning
  var style = document.createElement('style');
  style.textContent = `
    @media(max-width:559px) {
      #close-popup {
        right: 1rem;
        padding: 0px 10px;
      }
    }
  `;
  document.head.appendChild(style);


  // Initialize GPT
  window.googletag = window.googletag || { cmd: [] };
  let adDisplayed = false; // Flag to track if the ad has been displayed

  googletag.cmd.push(function() {
    var adSlot = googletag.defineSlot('GoogleAdManager_Code_HERE', [[320, 480], [336, 280], [480, 320], [400, 300], [300, 300], [640, 480]], 'adtagmacrospopupad')
      .addService(googletag.pubads());

    googletag.pubads().addEventListener('slotRenderEnded', function(event) {
      if (event.slot === adSlot && event.isEmpty) {
        adContainer.style.display = 'none'; // Hide if ad didn't load
      }
    });

    googletag.enableServices();
  });


  // Popup display logic
  var scrollThreshold = document.documentElement.scrollHeight * 0.3;
  var displayFrequencyMinutes = 15; // Time in minutes

  var lastDisplayedTime = localStorage.getItem('lastDisplayed');
  var currentTime = new Date().getTime();

  if (!lastDisplayedTime || currentTime - lastDisplayedTime >= displayFrequencyMinutes * 60 * 1000) {
    window.addEventListener('scroll', function() {
      if (window.pageYOffset >= scrollThreshold && !adDisplayed) {
        googletag.cmd.push(function() {
          googletag.display('adtagmacrospopupad');
        });

        atdadPopup.style.display = 'flex';
        atdadPopup.style.width = '100%';
        atdadPopup.style.height = '100vh';
        atdadPopup.style.position = 'fixed';
        atdadPopup.style.top = 0;
        atdadPopup.style.left = 0;
        atdadPopup.style.flexDirection = 'column';
        atdadPopup.style.justifyContent = 'center';
        atdadPopup.style.alignItems = 'center';
        atdadPopup.style.zIndex = '999999999999';

        closeButtonDiv.style.display = 'flex';
        fixedWidthDiv.style.display = 'block';

        localStorage.setItem('lastDisplayed', new Date().getTime());
        adDisplayed = true;
      }
    });
  }

  // Close button functionality
  closeButton.addEventListener('click', function() {
    atdadPopup.style.display = 'none';
  });

})();

Codeless Web Interstitial Ads

For publishers who prefer a simpler approach, Google Ad Manager provides codeless web interstitial ads that do not require any additional JavaScript implementation. These ads can be set up directly in GAM’s UI and will trigger automatically based on predefined rules.

Steps to Enable Codeless Web Interstitial Ads:

  • Go to Google Ad Manager: Navigate to Inventory > Ad Units.
  • Create a new ad unit: Choose an interstitial format for display ads.
  • Set targeting conditions: Define when the interstitial should trigger (e.g., after a user navigates to a new page or after a time delay).
  • Save and implement: Once configured, the ad will start appearing without any code changes on your website.

Codeless Web Interstitial Ads

  • No need to modify website code.
  • Ads trigger dynamically based on user behavior.
  • Managed directly from GAM UI, reducing development effort.

©2025 AdTagMacros - Everything About Advertising

We improve our products and advertising by using Microsoft Clarity to see how you use our website. By using our site, you agree that we and Microsoft can collect and use this data. Our privacy statement has more details.

Log in with your credentials

Forgot your details?