Aditude recommends the that you conduct the following QA steps before going live.
💡
Notify your Aditude Technical Account Manager when you plan to go live.
Pre-launch Staging Check
Setup BID on a staging site before launching. This will give you the opportunity to compare staging and production side-by-side to ensure that all ads appear in precisely the correct location, before going live.
Verify the correct htlbid.jsstage script is placed on test/staging site
Perform the following checks 24 hours after launching. This helps to ensure that nothing was dropped during the migration process.
Run a GAM report to verify all ad units are running across all Prebid orders. For that create a GAM report with the following:
Dimensions
Ad Units
Orders
Date (using the last 7 days)
Metrics
Impressions
Revenue
Requests
The report should show all ad units sending requests across all Prebid orders and other programmatic ad networks (I.e. AdX). If there are any blank, there could be a missing Prebid Group association in the BID UI or another configuration error (I.e. Ads.Txt). It will also let you know if any SSPs could have issues (such as incorrect IDs in the system if no impressions are registering)
Run a GAM report to verify that impressions and revenue have remained constant if updating an ad implementation. To verify this you can check the daily breakdown in a reporting platform like Exec or pull a report in GAM with the breakdown listed above. It's also advised to review activity within individual SSPs and other monetization partner platforms.
Process Best Practice
Perform a new deployment, Aditude recommends that you perform a quick spot-check.
If the issue reported is critical, such as:
Overlapping/floating ads blocking content
Ads freezing the page
Security redirects/page takeovers
Do the following:
1. In Version Control deploy the previous revision that was working to Production
2. Deploy the revision that caused issues to staging only
3. Use the staging site to debug the issue
4. If there is no staging site available, use a proxy such as Charles or the Chrome Dev Tools Sources Override to troubleshoot the problematic revision. If none of these are available, reach out to the Aditude Team for assistance at cs@zendesk.hashtaglabs.com
💡
The priority is to remove the critical issue from production by deploying the previous working revision. This change goes into effect in a couple of minutes, then the revision with issues can be reviewed.
Common Issues
‣
Missing ads on the page (no ads or blank spaces)
Not having enough creatives in GAM to cover all slots on the page → Go into GAM and duplicate creatives by making copies
No house ads → If GAM is not configured with 100% run-of-site house ads, and no programmatic ads placed bids, no ads would be expected to serve on the page. Having house ads will help determine if it's a demand/fill or configuration issue
CSS being used to collapse or hide divs → If the div is on the page but it's invisible/hidden, check what CSS is being applied to the div and parent elements
Ad Slots in BID are missing in GAM → Check the Inventory tab in GAM to contrast the existing Ad Units with the Slots set up in BID. All Slots in BID need to be represented in GAM
Forgot to call htlbid.layout() → If the site is using layouts, it is necessary to call the layout() function to initiate the layout system. Failure to call this function will result in blanks. In most cases, you can check whether this is the problem by calling the function manually in the console - if it causes the ads to suddenly appear, then this is what caused the problem
‣
No programmatic ads (Prebid or Amazon)
Staging site doesn't show programmatic ads → Frequently, domains such as staging.example.com are not recognized by SSPs and DSPs, and don't receive bids. If the bid requests look correct, but bid density is low or zero, it may be due to the staging domain, rather than an implementation issue.
Prebid GAM Orders inactive → If bids are being placed, but never winning, check to ensure that the Prebid line items have been approved and activated in GAM.
Ads.Txt issues → Missing or incorrect entries, review your ads.txt GAM warnings for more information.
Append ?pbjs_debug=true → Enable the Prebid debug mode and review the console to see if there are any errors. Filter by specific bidder in the console to see specific Prebid auction stages for it.
Append ?htlbid_debug=true → Review if key-values are being passed in the ad request to GAM.
Creative SafeFrame configuration → Confirm with the Network partners if the Creatives in GAM need to have SafeFrame on or off. If they are configured in GAM incorrectly, please let the HTL Team know so this can be adjusted.
Incorrect IDs in BID → If IDs are incorrect it is likely you will still see the SSP bidding but revenue/impressions don't register for the site in the SSP's UI. This is relatively common with accounts that have multiple sites, where the IDs for one site are mixed up and used for another site, so bids are coming through and winning but being attributed to the wrong site in the SSP platform.
‣
Programmatic ads running, bidder has low impressions or discrepancies with the SSP UI
Creative SafeFrame configuration → It is likely GAM is reporting impressions and the SSP UI isn't if the Creative in GAM is configured with SafeFrame ON but the SSP requires it be OFF. GAM will register impressions as served, but the ad on the page can't expand so the SSP does not count it. Confirm with the Network partners if the creatives need to have SafeFrame on or off, and adjust the line items if needed.
‣
Doubled ads/Stacked ads
This can occur for several reasons
Old or conflicting code on the page
If you have old, non-BID ad code on the page, this might be causing 2x ads to appear. Make sure that you’ve removed all other ad code (ex: AdSense or other ad wrapper code)
Repeated DIVs
If the same DIV is repeated twice, 2 ads will be rendered.
Incorrect SizeMapping
A common pattern is to stack two ads - one for desktop, and one for mobile - like this
Make sure that desktop-leaderboard and mobile-leaderboard have different and mutually exclusive SizeMapping settings in the UI. If the SizeMapping settings overlap, ads will be rendered twice.
‣
Universal Classes added incorrectly
Including the "." when adding Classes is incorrect
Check if the "." was included by mistake in the div class. For example:
CSS previously in place → If your site was using CSS on the previous ad setup, such as adhesive ads, some CSS or HTML adjustment could be needed. BID can enable sticky leaderboard units on desktop and mobile, but other behaviors needs to be done manually (such as top sticky or rail sticky units)
‣
Ads load initially and appears on the screen, then disappear
This is a common problem that occurs with javascript-heavy sites using React, Vue, Angular or similar dynamic javascript frameworks. See how to manage dynamic page lifecycles.
‣
Single Page Application (SPA) websites with specific structures
Page navigation → Depending on how the user navigates, it could happen that part of the page reloads but the ads section doesn't. They might need to force refresh for the ads or manually destroy/reload them. This can also generate issues with targeting. If specific ads need to update IDs but they are in sections of the SPA that don't get reloaded, the ID update might not work as expected and needs to be adjusted.