Why AdSense Shows Blank Ads And How to Fix It

adsense blank ads

A blank AdSense slot means one of two things: Google returned no ad for that space (called "unfilled"), or the ad request never finished because something blocked or broke it. You can tell which in about two minutes by checking one attribute on the ad's code, and the fix depends entirely on the answer.

Key Takeaway: Do not guess. Inspect the blank slot first. If it shows data-ad-status="unfilled", your code works and the problem is ad demand or page content. If the attribute never appears, the ad request is being blocked or your code is broken.

Step 1: Check Whether the Slot Is Unfilled or Broken

Open the post with the blank space in a desktop browser, right-click the empty area, and choose Inspect. Look for an <ins class="adsbygoogle"> tag. Once an ad unit finishes requesting an ad, AdSense adds a data-ad-status attribute to that tag. There are two main values: "filled" means an ad came back and is showing, and "unfilled" means no ad came back and the unit is empty. A third value, "unfill-optimized", shows up when the "Fill empty in-page ads" setting is turned on and AdSense has optimized the empty unit.

One limit worth knowing: this attribute is only added to ad units on the top window, not to units served through a cross-domain window. On a standard Blogger post that is not usually a problem, but if you see nothing, check the code before assuming the worst.

If It Says Unfilled: Why No Ad Came Back

Unfilled is the good news. Your code and account are talking to Google fine. Nobody bid for that space on that page at that moment. These are the usual reasons:

CauseWhat it looks likeWhat to do
New ad unit or new siteBlank right after you place the codeLeave the code alone and re-check later. Do not delete and recreate the unit.
Thin or media-only pageBlank on posts that are mostly images or videoAdd real text with clear headings so Google has something to match ads to.
Content policy issueBlank on one specific post, fine elsewhereReview that page against AdSense content policies and remove the problem content.
Ad size does not fit the spaceBlank in a narrow sidebar or tight containerUse a responsive unit and check the width and padding of the area around it.
ads.txt or invalid traffic problemsAds were filling, then stoppedCheck ads.txt (see below) and the AdSense Policy center for warnings.

Some of this is well documented. A newly created ad unit can show blank space for a while until AdSense analyzes your site and finds relevant ads, and pages made up mostly of images or video are a common trouble spot. Another known cause is that Google may have no ad that fits the space you provided, so checking the padding around the block and choosing a matching ad size helps.

Is this normal on a new site? Yes, it is a common pattern, especially in the first days after you place a new unit. How long until it improves? Google does not give a set number of days, so treat any post that promises an exact timeline with suspicion. Keep publishing real content, and check your unfilled percentage instead of refreshing the page. AdSense reporting shows the percentage of unfilled units through your average coverage.

If your ads were filling fine and then went blank, that is closer to the fill-rate drop I covered in the AdSense RPM dropped guide, where the first checks are ads.txt errors and invalid traffic warnings.

If There Is No Status at All: Blocked or Broken

If the <ins> tag exists but never gets a data-ad-status after the page finishes loading, the ad request most likely did not complete. Work through these in order:

  • Your own ad blocker. Ad blockers can stop AdSense from showing, so try an incognito window with extensions off. Your blank slot may look normal to everyone else.
  • Broken or edited ad code. Copy the code again from your AdSense account and compare it line by line with what is on your blog. Every line of the code should match what Google provided, nothing more and nothing less.
  • A script conflict. A custom theme or another gadget with conflicting JavaScript can prevent ads from loading.
Quick Win: If you use Blogger's built-in AdSense gadget and it is not turning on, Google's own fix is to re-save it. Go to Layout, click Edit under each AdSense gadget and then Save. Do the same for the Blog Posts gadget, then click Save arrangement in the bottom right.

Set Up ads.txt in Blogger

If you pasted AdSense code by hand instead of using the built-in gadget, you need to set up the ads.txt file yourself. A missing ads.txt is one of the common reasons ads fail to show. Here is the path:

  1. In Blogger, choose your blog and click Settings.
  2. Under Monetization, turn on Enable custom ads.txt.
  3. Click Custom ads.txt and paste the line from your AdSense account. It follows the pattern google.com, pub-XXXXXXXXXXXXXXXX, DIRECT, f08c47fec0942fa0, but copy it from AdSense instead of typing your publisher ID.
  4. Click Save, then open yourblog.com/ads.txt to confirm the text appears.
Proof Block: Add a screenshot of the Monetization section in Blogger Settings with the custom ads.txt toggle on, and one of your live /ads.txt page in the browser. Blur your publisher ID in both.

Why Some Blank Slots Collapse and Others Do Not

This confuses a lot of bloggers. When a unit is unfilled, AdSense tries to collapse it or show a blank space. It only collapses units that will not cause the page to reflow, which means only units outside the viewport. Every other unfilled unit keeps its size and shows blank space. So the empty box in the middle of your post is intentional: Google is holding the space so the text does not jump.

You can hide unfilled units with CSS, and Google's help page even shows how. But hiding them reflows your layout, which is exactly what Google avoids by default, so test it on a phone before you keep it.

Does mobile traffic change anything? It changes what you see. Auto ads often appear as a sticky banner at the top on mobile while showing nothing on desktop, and that is typical behavior. If you only test on a desktop, you may think ads are blank when they are working on phones.

Warning: Never click your own ads to test whether they work, and never ask friends to. AdSense treats that as invalid activity and it can get your account limited. Our AdSense optimization without violations guide covers the mistakes bloggers make by accident.

When to Go to AdSense

Only after the steps above: open the AdSense ads-not-showing troubleshooter, which checks your account for ad serving issues that can lead to zero coverage or ads not showing. Then look at the Policy center for warnings. If both are clean and the status says unfilled, the slot is working and you are waiting on demand, so the best use of your time is better content on that page.

Pro Tip: Test on a real phone in a fresh incognito tab, on a post with plenty of text. It removes your ad blocker and cached data, and shows what a first-time visitor actually sees.

Sourcing note: The status values, unfilled-slot behavior, ads.txt steps and gadget re-save steps come from Google's AdSense and Blogger help pages. Google does not publish a set timeline for blank ads to start filling, so none is given here. Other causes come from publisher troubleshooting guides and should be treated as common patterns, not guarantees.

Author Image

Hardeep Singh

Hardeep Singh is a tech and money-blogging enthusiast, sharing guides on earning apps, affiliate programs, online business tips, AI tools, SEO, and blogging tutorials. About Author.

Next Post Previous Post