Ads not showing up?

This page is also available in German.

This page contains the most common reasons for ads not showing up. Please check it before contacting us for support.

If you struggle with items on this page or need more help then

Please keep in mind that if there is a bug that is not caused by something mentioned here, then I am eager to learn about it. Bugs within Advanced Ads will be solved as soon as possible.

Always check this first

Run some automatic checks on your website for initial problem diagnosis.

Please disable ad blockers when working on your ads. This includes any script alternating add-ons like Ghostery. Even with the ad block disguise feature enabled in Advanced Ads, it might still block some resources.

Check if your anti-virus software has such an option. We know that Kaspersky Antivirus has an option called “Anti-banner”.

Update to the latest version of Advanced Ads, its add-ons, all other plugins, and WordPress. The issue you are experiencing might already be fixed.

Users of our add-ons should make sure to have a valid license key to receive updates. We are not supporting outdated versions.

Test in another browser or device. If ads show up there, it might still be an ad blocker or similar script causing this. Please see above.

Disable caching (either as a plugin or when using services like CloudFlare). All caching plugins allow disabling caching for logged-in users, which is the best option to see changes quickly.

If some dynamic features (e.g., rotations, visitor conditions) don’t work with your caching, then please enable the Cache Busting feature in Advanced Ads Pro.

Please disable the Hide ads from bots option in Advanced Ads > Settings > General if you are using caching. See this page for more information.

Please look into Ad Health notifications. You can find them in your WordPress backend by clicking on the Advanced Ads menu or as a logged-in admin in the toolbar in the frontend of your site.

Click on the links provided with the error message to find more information or jump to the solution right away.

ad health with error

See this page for more information.

Some general problems are also mentioned at the top of the Advanced Ads settings page. Just go to Advanced Ads > Settings > Support to see them.

Some plugins, server settings or custom code “optimize” or minify scripts or other output of the frontend code. The most common source of conflict here is if they (re)move JavaScript code or scripts. Since most ad codes break if manipulated like this, the features conflict with them by design.

Advanced Ads tries to solve such issues automatically, but we might still miss something.

Plugins or services that we already found moving (any) ad code from pages are:

We are recommending Autoptimize and WP Rocket caching and site speed optimization.

JavaScript is the programming language that many ad codes are using. If another plugin, theme, or custom code causes a JavaScript error, it might also break other code and, therefore, prevent ads from showing up.

This page is a perfect resource for all you need to know about how to spot JavaScript errors. You might also look at the Advanced Ads troubleshooting guide for JavaScript and jquery errors.

Not every JavaScript conflict must interfere with your ads, but it normally breaks something else, so fixing them is good for your site anyway.

Did you enable the Privacy module under Advanced Ads > Settings > Privacy?

If so, please check the corresponding manuals for potential issues:

With tens of thousands of plugins in the WordPress universe, there is always a chance that some won’t work well together.

Please try to rule out a plugin conflict by disabling some of them. You might want to look especially for plugins that

  • alter the content of posts and pages
  • optimize or minify code in the frontend

You can disable plugins and fall back to a default theme for your account only and not everyone else on your site using the Health Check plugin.

I am always trying to make Advanced Ads compatible with the most popular WordPress plugins, so if you find a conflict with a plugin, please let me know.

Debugging individual ad units

The following steps can be taken to see if and why a specific ad is not showing up.

As simple as it sounds, sometimes a conflict can be resolved by just resaving the ad, group, placement, or settings page.

If that helped you, then please let us know, so we can address it.

Just creating an ad doesn’t display it in the frontend. To make it visible, you would need to either

  • use a placement,
  • place the shortcode of the ad, ad group, or placement manually, or
  • place the PHP function of the ad, ad group, or placement manually.

You can find an Enable debug mode option in the Layout / Output meta box on the ad edit page.

ad debug mode option

If you see output while the ad debug mode is enabled, then the problem is either with the Display or Visitor Conditions used for the ad or the ad code.

To narrow it down, you should disable all conditions and see if the ad shows up. If they do, please revisit if the conditions are set up according to the Display Conditions or Visitor Conditions manual.

The debug mode also shows some other, very site-specific issues. You can find more information about it here.

Choose a Dummy ad type. This is a very basic, locally hosted ad. If it shows up, but your original ad does not, then the issue is likely with the ad code you are using.

The most common problem is an ad network not working properly. See also Check generated code below and the AdSense-related issues section.

Especially with ad networks and other codes that come from external sources, it is possible that the code was properly injected by Advanced Ads, but the ad network returns an empty result.

There are two options here. If either of these helps you find the ad code on your site, then please contact the ad network about a solution or ask them to contact us to troubleshoot together.

Inspect code sent to your browser

This method might not work when you enabled Cache Busting in Advanced Ads Pro. Jump to the next step below for a solution.

Just open the source code window of your browser as described here and use the search function to look for some of the strings you entered in the ad code. E.g., for AdSense look for adsbygoogle.

If you find the ad code, then the issue is likely with the ad network and not Advanced Ads.

Inspect code generated within your browser

Checking that is not that hard. Just click on Ad Health > highlight ads in the Toolbar in the frontend of your website. It should highlight the injected ad placements. Go to the empty placements and right click in them. Depending on your browser, there should be an option called “Inspect” or similar. It should lead you to the generated code on your site. If it looks similar to the code you added then the issue is likely related to the ad network.

There are some ad networks that consist of two ad codes. One goes where you want to display the ad and the other either in the header or footer code.
A problem could appear when one of these codes is delayed, which could happen if you used our cache-busting feature in Advanced Ads Pro.

Header and corresponding body code

If you have a header and body code then the former often has to be loaded without delay first. This means that you should switch off the cache-busting option for the header placement in Advanced Ads > Placements.

An example of this type of setup are Google Ad Manager tags.

Footer and corresponding body code

A footer code often loads something into the placed body tags. This means that the body tag must exist first. Disable cache-busting for those placements, if you used it.

We haven’t seen many setups like this one and are happy to look for a better solution if you share your case with us.

See How to debug Google Ad Manager if you are using ad unit tags from Google Ad Manager with or without our dedicated Ad Manager integration.

Ad Injection in content not working

Ad injection is disabled by default into the content of posts on archive pages (including homepage and category pages).

Set Advanced Ads > Settings > General > Unlimited ad injection to allow ad injection also in archive pages.

Please be aware that this might enable ad injection in post lists other than the archive loop, e.g., Similar Post widgets.

By default, the Content placement injects ads based on paragraphs. You can inject ads based on many other elements like images, headlines, tables with Advanced Ads Pro.

Advanced Ads does not inject ads into nested HTML by default. Especially page builders and some themes can create such complex HTML structures.

To allow Advanced Ads to add ads into sub-containers and nested HTML (e.g., a paragraph in a table or quote), enable Advanced Ads > Settings > General > Disable Level Limitation.

There is a solution for that: set Advanced Ads > Settings > General > Unlimited ad injection to 1.

Please read Infinite Scroll – ads in AJAX-loaded content if your ads are not appearing in AJAX-loaded content like infinite scroll.

The the_content  filter is used by WordPress and many plugins to alter the post content before output. As it happens, some themes seem to forget about this or skip it intentionally. 404 pages don’t use the_content at all.

A most common mistake here is that themes use get_the_content() and not the_content() in order to output the content. If you are not sure about this, please ask your theme developer.

You can find examples of using get_the_content() or a different filter for content injection here.

You can either ask your theme developer to change this or use the Custom Position placement to place the ad anywhere on the page.

Malformatted website HTML or even broken ad code can cause the content injection not to work. Such issues will be captured in the error log or displayed below the ad when you have WP_DEBUG enabled in your wp-config.php.

Please check in Advanced Ads > Settings > AdSense, if the publisher ID added correctly.

There are multiple reasons for Auto ads not showing up.

Please find the extended list of issues and solutions under AdSense Auto ads not showing up.

Please check our AdSense Errors page if you are seeing warnings about your AdSense account in Advanced Ads or in AdSense directly.

These are the most common reasons for AdSense ads not showing up right away.

  • The account or site is new => wait 48 hours, but it can also take weeks
  • The post is new => sometimes, AdSense needs some time to crawl it first before delivering ads
  • Your site was not added => go to Account > Sites in your AdSense account and add it
  • The ad is new => wait 30 minutes
  • Your site does not comply with the AdSense policies => review them here

When there is problematic or too little content on the site, they might not show ads at all until there is more valid content. Unfortunately, they don’t let you know the details about a rejection.

Please create a new ticket here if you want me to check if the AdSense integration is technically correct. Please include information about your setup and where you expect ads to show up.

With responsive ad units, including automatically resized Matched Content, Multiplex ads, In-article, and In-feed ads, AdSense isn’t always able to determine the available space. This is an AdSense problem you can address with different solutions. One is to set ad sizes manually, as described here.

You should prevent responsive ads completely in floated elements, e.g., don’t set the Position option in Advanced Ads to left or right.

Subscribe to our newsletter and get 2 add-ons for free!

* indicates required

Do you still need help?

Is your case not covered, or would you like a human to take another look at your site and setup?

Just reach out in our forum on wp.org (it is free) or get any of our add-ons to receive help via email.

Make it better

Increase your ad management skills without spending more time.
Join over 150,000 publishers and AdOpts increasing their ad revenue.