Adsense Help, double-serving issue

RobParker

Well-known member
I've just received this message to our Adsense account:

DOUBLE-SERVING ADS: As stated in our JavaScript program policies, the same ads must not be displayed multiple times. The google_skip variable must be used if more than one ad request is made.

I've tried contacting them to get more clarification but I was hoping that someone here might be able to help.

We have 3 ad units on a page, 2 wide banners at the top/bottom (different ad units) and one smaller banner positioned by the digital point Addon.

Does anyone have any idea what I need to do?

Cheers
 
Google "adsense google_skip variable" & see what you can learn about it?

I have a similar ad layout -- two rectangular ads at the top and one skyscraper in the side bar. I always hated seeing the same ad side-by-side and would force the one on the left to be an image ad, the one on the right to be a text ad, so as to avoid that. Google's response was to keep emailing me reminding me that I'd make more money if I didn't restrict the ad types, so I used the links provided in the messages to change the ads.

Now there are often identical ads side-by-side again, but I've never received a message like you describe.
 
This appears to be feature for "premium" AdSense users (>20M pageviews annually) serving ads via scripts instead of iframes. Does that describe you?
 
It sounds like the ad-call is being made twice on the page.

You haven't accidentally left one enabled after moving it's code to an add-on or different template?

Copied and pasted but duplicated the sam code by accident?
 
This appears to be feature for "premium" AdSense users (>20M pageviews annually) serving ads via scripts instead of iframes. Does that describe you?

We just have a normal Adsense account and have our ads included via templates and are also using the digitalpoint addon.

It's been like that since we moved to XF with no problems though...

I forgot to add, we do have over 20 million page views but as far as I'm aware we don't have a "premium" account.
 
Last edited:
It sounds like the ad-call is being made twice on the page.

You haven't accidentally left one enabled after moving it's code to an add-on or different template?

Copied and pasted but duplicated the sam code by accident?

I'll double check everything but fairly sure not.

It's really difficult to talk to anyone at Adsense to ask for help. Anyone got any advice on getting through to someone?
 
I just used the help link to get the support contact form and submitted my request that way; but it took a few days for replies.

What's the site URL?
 
I forgot to add, we do have over 20 million page views but as far as I'm aware we don't have a "premium" account.

Are you sure? Did the email you received have a reply address?

You're using the custom JavaScript ad format for one of your placements, or you've made changes to the AdSense code (or copied over old code). The iframe version automatically skips, but the JS format does not. If you have more than one placement and do not include the google_skip, google_ad_format and google_ad_slot variables, it's going to double serve.
 
Last edited:
Are you sure? Did the email you received have a reply address?

You're using the custom JavaScript ad format for one of your placements, or you've made changes to the AdSense code (or copied over old code). The iframe version automatically skips, but the JS format does not. If you have more than one placement and do not include the google_skip, google_ad_format and google_ad_slot variables, it's going to double serve.

The warning came from the "noreply" Adsense email address.

I'm on my mobile at the minute so can't check until later but I don't know if the digital point ad positioning addon uses non- standard code? That doesn't make sense though ad that's the only ad we display that's that size.
 
Here is the code we use, taken straight from the adsense "get code" button

Ad 1:

<script type="text/javascript"><!--
google_ad_client = "ca-pub-xxxxxx";
/* Large Horizontal 728x90, created 8/6/08 */
google_ad_slot = "xxxxxxxx";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

Ad 2:
<script type="text/javascript"><!--
google_ad_client = "ca-pub-xxxxx";
/* Large Horizonal Bottom */
google_ad_slot = "xxxxxxxxx;
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
 
TBH I've looked at the source of your forums pages and you don't appear (from the rendered page) to be serving content from the same ad-slot more than once.

Do you have any XF conditionals wrapped around your ad-code template calls? Do you have different ads for difference styles? Anything that would render the ads differently - or is the Adsense code just a straight copy and paste into your ad_ XF templates?

I think at this stage your best bet is to try and get clarification from Google about the specifics of what is causing the problem; that's probably going to be your best clue as to what, if anything, needs fixing.

Good luck. (y)
 
TBH I've looked at the source of your forums pages and you don't appear (from the rendered page) to be serving content from the same ad-slot more than once.

Do you have any XF conditionals wrapped around your ad-code template calls? Do you have different ads for difference styles? Anything that would render the ads differently - or is the Adsense code just a straight copy and paste into your ad_ XF templates?

I think at this stage your best bet is to try and get clarification from Google about the specifics of what is causing the problem; that's probably going to be your best clue as to what, if anything, needs fixing.

Good luck. (y)

I'm certain we aren't serving the same ad slot more than once.

I'm using Robbo's ad code to serve the two large banners above but these are definitely different ad slots. The thing is though, that the advert shown can (very rarely) be the same for the two different ads. For example, earlier I had a HSBC banking ad in both positions. Normally the two ads are different but I wonder if this might be it? If it is I have no idea how to fix it and the google_skip variable mentioned in the warning doesn't seem to be documented anywhere.

The only other thing is that for our mobile style we use Russ's xfmobile skin with the auto-detection of mobile browsers. In this style we use two different ads directly in the template but again, these are different ad slots. I've removed one of them anyway as it was performing horribly.

Thanks for taking the time to have a look. Hopefully I'll hear back from their support soon.
 
None of us can casually view your site and determine if you're double serving. Auctions change frequently. When an advertiser is outbidding others in the auction for those placements there's a possibility the same ad will show in all your units.

That said, looking at your site, it seems likely you could be. You're using two different methods for displaying units -- JavaScript and the standard iframe. The latter will automatically skip by detecting either the google_ad_slot or google_ad_format values and sending them as prev_slotnames and prev_fmts params in the call (however, this depends on the order in which you mixed them (ie., displaying them)). I'd suggest manually adding a google_ad_format on the JS units along with a google_skip that way your ads will always be recognized and prevent double serving.
 
None of us can casually view your site and determine if you're double serving. Auctions change frequently. When an advertiser is outbidding others in the auction for those placements there's a possibility the same ad will show in all your units.

That said, looking at your site, it seems likely you could be. You're using two different methods for displaying units -- JavaScript and the standard iframe. The latter will automatically skip by detecting either the google_ad_slot or google_ad_format values and sending them as prev_slotnames and prev_fmts params in the call (however, this depends on the order in which you mixed them (ie., displaying them)). I'd suggest manually adding a google_ad_format on the JS units along with a google_skip that way your ads will always be recognized and prevent double serving.

Hi Jason,

Thanks for the advice.

Can I ask where you're seeing an iframe? I thought all of the ads were using javascript along the lines of:

<div class="UnderPost" style="clear:both;padding-top:10px;text-align:center">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-xxxx";
/* Last Read Post */
google_ad_slot = "xxxxx";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script></div>

Could you post an example of what exactly you're suggesting I add? (Also are there any issues with this, is it "approved" or do I really need someone at Adsense to ok me doing it?)
 
Hi Jason,

Thanks for the advice.

Can I ask where you're seeing an iframe? I thought all of the ads were using javascript along the lines of:

<div class="UnderPost" style="clear:both;padding-top:10px;text-align:center">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-xxxx";
/* Last Read Post */
google_ad_slot = "xxxxx";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script><script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script></div>

Could you post an example of what exactly you're suggesting I add? (Also are there any issues with this, is it "approved" or do I really need someone at Adsense to ok me doing it?)

I thought I saw a standard iframe unit, but checking again it appears I was mistaken. You're correct, they're all JS units. So, I'd suggest just adding a google_skip variable to each of them.

For example, setting google_skip = 4; would cause the unit to return ads 5-8 instead of 1-4. That should be enough (you're not mixing), so I wouldn't fiddle with google_ad_format.

Edit: using what you posted:

Code:
<div class="UnderPost" style="clear:both;padding-top:10px;text-align:center">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-xxxx";
/* Last Read Post */
google_ad_slot = "xxxxx";
google_ad_width = 728;
google_ad_height = 90;
[B]google_skip = 4;[/B]
//-->
</script><script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script></div>

Yes, this is "approved" and actually required (do not modify any other values). You can select any value between 1 and 5.
 
Last edited:
Thanks. Do I add that to all 3 ads in the same way or do I give each different values?

If different values, I'm not sure how I get all 3 to be unique?

I can set it up like this:

Ad1 (no skip)

Ad2 (skips 1-3, shows 4-8)

Ad 3 (skips 1-6, shows 7-8)

But that'd make it worse as Ad2 and Ad3 are more likely to match then. Have I misunderstood?
 
Last edited:
Ah I think I've misunderstood. I assumed there was a pool of say 8 ads in total it could select from and skipping just removed some of those from the possible pool.

Re-reading what you said, it seems that I need to set google_skip=4 for the 2nd Ad position and say google_skip=8 as the 3rd Ad position, right?
 
I've added in google_skip=4 and google_skip=8 to the 2nd and 3rd ads but still occasionally get the same ad in 2 positions..

Any ideas how it should be configured?
 
None of us can casually view your site and determine if you're double serving. Auctions change frequently. When an advertiser is outbidding others in the auction for those placements there's a possibility the same ad will show in all your units.

That said, looking at your site, it seems likely you could be. [SIZE=+0]You're using two different methods for displaying units -- JavaScript and the standard iframe. [/SIZE]The latter will automatically skip by detecting either the google_ad_slot or google_ad_format values and sending them as prev_slotnames and prev_fmts params in the call (however, this depends on the order in which you mixed them (ie., displaying them)). I'd suggest manually adding a google_ad_format on the JS units along with a google_skip that way your ads will always be recognized and prevent double serving.

I believe Javascript to serve AdSense is to be used only by the premium publishers, not by us riff-raff. If he's using Javascript to serve the ads and has not been invited to be a premium publisher, that in itself might be part of the problem. If you Google discussions of the specific message he is asking about, it ONLY applies to premium publishers using Javascript. <iframe> ads are supposed to handle the skipping automatically.
 
Top Bottom