Experiencing a double-click penalty? Here’s how to fix it.

What is Google’s Double-click-penalty or Two-click-Penalty?

It is a way for Google to confirm if the user has intentionally clicked on an AD before registering and honoring this click. By placing an interstitial “Visit Site” message and button to appear on the ad following the first click made by the visitor.

This will help improve user experience on your site while minimizing invalid click activity and accidental clicks.

How can you tell when a site has the penalty?

Note: Check on both desktop and mobile. The penalty happens mostly on mobile but may not be on the desktop.

Step 1: There is a visible “visit site” after clicking the Google Ads

Step 2: Drop in eCPM without a drop in traffic.

Step 3: Normal Impression but a drop in CTR.

Step 4: Inspect elements and look for “confirmedClickVisible”

Examples:

What are the possible causes of this penalty?

  • Spacing – have enough spacing from clickable content and your ads
  • Content jumping/ layout shifting – Content might get pushed down and in turn, users might click your ads by accident.
  • Ambiguous Headers – especially for native ads not clearly labeled as sponsored or advertisement.

What are the recommended courses of action to lift the penalty?

Step 1: Identify Ad Units that could cause the problem, High CTR rate, and suddenly dropped in line with earnings.

Step 2: Avoid Accidental Clicks

Close to links, play buttons, download button, navigation button, game windows, video player, dropdown menu, or applications.

  • Adjust placements and be very conservative, give more space than normal. Make sufficient margins above and below the ads.
  • For layout shifting or content jumping where an ad is flexi with multiple sizes configured, for example a 300×600/300×250 ad unit can expand to 600px then collapse to 250px when the smaller size serves. Consider adding margins and setting the minimum height using the following options:
    • Reach out to your Account Manager from MonetizeMore. They can help you implement this.
    • Manually apply (Margin) CSS to set custom settings on individual ad slots:

      Example CSS that adds top & bottom margins of 30pixels in a GAM body tag:

      <span class="code" data-renderer-mark="true">&lt;!-- /12345/atf_unit --&gt;</span>
      <span class="code" data-renderer-mark="true">&lt;div id='div-gpt-ad-12345678-0' style='margin: 30px 0;'&gt;</span>
      <span class="code" data-renderer-mark="true">&lt;script&gt;</span>
      <span class="code" data-renderer-mark="true">googletag.cmd.push(function() { googletag.display('div-gpt-ad-12345678-0'); });</span>
      <span class="code" data-renderer-mark="true">&lt;/script&gt;</span>
      <span class="code" data-renderer-mark="true">&lt;/div&gt;</span>

      Example CSS that adds top & bottom margins of 30pixels in an AdX or AdSense tag:
      <span class="code" data-renderer-mark="true">&lt;div style="margin: 30px 0;"&gt;</span>
      <span class="code" data-renderer-mark="true">&lt;script type="text/javascript"&gt;</span>
      <span class="code" data-renderer-mark="true">google_ad_client = "ca-pub-1234567890";</span>
      <span class="code" data-renderer-mark="true">/* ad_728x90_atf */</span>
      <span class="code" data-renderer-mark="true">google_ad_slot = "test_anchor_bottom";</span>
      <span class="code" data-renderer-mark="true">google_ad_width = 728;</span>
      <span class="code" data-renderer-mark="true">google_ad_height = 90;</span>
      <span class="code" data-renderer-mark="true">&lt;/script&gt;</span>
      <span class="code" data-renderer-mark="true">&lt;script type="text/javascript" src="//pagead2.googlesyndication.com/pagead/show_ads.js"&gt;</span>
      <span class="code" data-renderer-mark="true">&lt;/script&gt;</span>
      <span class="code" data-renderer-mark="true">&lt;/div&gt;</span>
    • Manually apply (Minimum Height) CSS:

      Example CSS that adds top & bottom margins of 30pixels + min height of 90pixels in a GAM body tag:

      <span class="code" data-renderer-mark="true">&lt;!-- /12345/atf_unit --&gt;</span>
      <span class="code" data-renderer-mark="true">&lt;div id='div-gpt-ad-12345678-0' style='margin: 30px 0; min-height: 90px;'&gt;</span>
      <span class="code" data-renderer-mark="true">&lt;script&gt;</span>
      <span class="code" data-renderer-mark="true">googletag.cmd.push(function() { googletag.display('div-gpt-ad-12345678-0'); });</span>
      <span class="code" data-renderer-mark="true">&lt;/script&gt; </span>&lt;/div&gt;

      Example CSS that adds top & bottom margins of 30pixels + min height of 90pixels in a GAM body tag:

      &lt;div style="margin: 30px 0; min-height: 90px;"&gt;
      &lt;script type="text/javascript"&gt;
      google_ad_client = "ca-pub-1234567890";
      /* ad_728x90_atf */
      google_ad_slot = "test_anchor_bottom";
      google_ad_width = 728;
      google_ad_height = 90;
      &lt;/script&gt;
      &lt;script type="text/javascript" src="//pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
      &lt;/script&gt;
      &lt;/div&gt;

      
      

Step 3: Play safe: fix everything and do not do minor changes only.

“You want to bring down the average number of accidental clicks you have received over a rolling period. The fastest way to do that is to go as conservative as possible until the two-click behavior is cleared. Don’t try to “chimp it” and make small changes, as this can mean being penalized for longer.”

Step 4: Don’t dial back traffic: do not lower traffic as it could mean that those invalid clicks were intentional and Google will penalize you longer.

“It can be tempting to reduce traffic until the penalty is cleared, particularly if you are buying traffic. This can be problematic though. If you reduce your traffic then the number of “good clicks” on your ads will drop and mean that it takes longer to correct that average.”

Step 5: Do not click your own ads – Avoid invalid traffic detection and that do not inflate CTR by adding fake clicks to the units.

Are these recommendations already followed?

Step 1: Is there enough spacing for the content and the ads.

Step 2: Put extra wrapping div to avoid accidental clicks or increase the padding of the ad.

Step 3: Label your ads properly.

Step 4: Check on native ads and provide a more clear Ad label.

Step 5: Place the advertisement below the navigation button instead of above it.

Step 6: Add the line before and after the ad.

Step 7: Set the ad height fixed with CSS to avoid reflow (e.g. min-height: 240px;). The pixel size depends on the ad unit sizes eligible to serve.

Back to Notification Center