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
- clients of Advanced Ads Pro or All Access can reach out directly,
- users of our free Advanced Ads plugin find us in our forum (free account created in less than 1 minute),
- ask us for a custom quote to help you out.
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.
Table of Contents
Always check this first
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 in order to receive updates. We are not supporting outdated versions.
Test in another browser or device. If ads show up there then 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.
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.
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:
- Autoptimize – fixed with Advanced Ads Pro, see Fixing Autoptimize problem.
- CloudFlare – problems could still arise with their Rocket loader enabled
We are recommending Autoptimize and WP Rocket caching and site speed optimization.
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 then 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. In order 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.
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 then please revisit if the conditions are set up according to the Display Conditions or Visitor Conditions manual.
The debug mode shows also 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 this 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
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.
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_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.
If you are seeing warnings about your AdSense account in Advanced Ads or in AdSense directly then please check our AdSense Errors page.
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.
If you would like me to check if the AdSense integration is technically correct then please create a new ticket here. 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.
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?