This page contains the most common reasons for ads not showing up. Please check it contacting us for support. Our aim is that all items can also be checked by less technical users.

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

  • clients of our add-ons can reach out directly,
  • users of our free Advanced Ads plugin find help in our forum (free account created in less than 1 minute)
  • ask me 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.

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.

When you are logged in as admin and go to the frontend of your site, you should see the Toolbar with a menu called Ad Health in it. It is highlighted slightly read if there is an issue. Click on the links 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 programing 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.

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

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.

ad debug mode option

If you see an output while the ad debug mode is enabled then it is likely that the problem is with the Display or Visitor Conditions used for the ad. Just disable them 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 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.

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.

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. The 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.

Be aware that 404 pages often don’t have a content filter at all.

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.

AdSense-related issues

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

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
  • 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, 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.

Still need help?

Is your case not covert 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.

 Troubleshooting