Previous     Next

How I increased my Adsense earnings by 50%

This technique applys to everyone who has 2 or more Adsense blocks on a page (and who can stop at just one?).

First up, not everyone knows that Google always serves up the highest paying ads to the first ad block it encounters in your site’s HTML. This can mean that an Ad block that is getting all the clicks is worth .01 a click, while on the same page a block that is totally ignored has the big $$$s.

But how to find out? Channels.

Go to your Adsense account, and create a custom channel for each of the ads on your page. Call the channels ‘1st Ad’, ‘2nd Ad’ etc. Put the Adsense code on your site, making sure that the ‘1st Ad’ channel ad block goes to the first ad in your page HTML, ‘2nd Ad’ the 2nd spot in the HTML and so on. Now sit back for a few days.

OK, you’ve got some stats to check so lets see which ad gets the most clicks. If the first Ad gets the most clicks, then you can stop right here. If not (as was my case), then we have some work to do.

What we need to do is move the Adsense code around so that the Ad block with the greatest number of clicks is the first Adsense code in your site HTML. There are a few ways to do this, but I’m going to concentrate on 2.

CSS Positioning
If you use absolute positioning on your site, then moving the Adsense code around is trivial and I won’t go into it here. ‘Static’ positioning (the default) is tougher and worth a short mention.

Basically, I am going to use the negative margin trick (courtesy a list apart). This very simple example shows how to reverse the position of 2 elements.

Here is the code:

<div style='float: left;width: 200px;margin-top:70px;border:3px green solid'>
Block containing High CTR Adsense Ad, position this at the bottom
<div style='float: left;margin-left: -200px;width: 200px;border:3px red solid'>
Block containing Low CTR Adsense Ad, position this at the top

And here is the result:
CSS Positioning

Sometimes you are stuck with a complicated layout, or a site that uses tables, so CSS positioning is not an option. For this, you can always use frames.

Go to the first Ad in the HTML and copy the Adsense Code to a new text file. Make the code:

<style>body {padding:0px;margin:0px} </style>
-- Your Adsense Code --

The style command is so that the Adsense ad is displayed nicely within the frame. Save the file as ‘google_ad.htm’

Go back to your site, delete the Adsense code for this ad and replace it with:

<iframe DESIGNTIMESP="23032" frameBorder="0" style="width: 120px; height: 240px" id="google_adsense_iframe"></iframe>

(of course, adjust the height & width to the proper size of your ad).

Then at the bottom of the HTML for your site, add this:

<script type="text/javascript">

This last bit of javascript sets the source of the frame to your google ad, ensuring it is loaded after the first ad has been displayed. In fact, you might not even need this, and you could just set the src property in the frame & the 2nd ad would still be loaded first. Thats for another day of testing though, ’cause I’m using the method shown & it works for me.

Straight away after making this change, a site that was making $40 a day went to $60 - not bad for a few hours work :)

If you liked this, then subscribe to my RSS feed


  1. Jermaine Mar 23

    Not bad, not bad all. But why do you need the css positioning?

  2. Janio Sarmento Mar 23

    Is not your IFRAME technique against TOS?

  3. admin Mar 30

    Jermaine - The CSS positioning is used to move the Ad Blocks around on the visitors screen so that the first Ad Block in the HTML is shown below the second.

  4. admin Mar 30

    Janio - I got this question quite a bit when I posted this tip at Digital Point Forums, so I contacted Adsense to get a clarification.

    They replied that it was perfectly fine to move the order of the ads around to maximise your earnings. HOWEVER, they stated that if you use IFRAMEs as a container for the ads then it is possible to get PSAs. If you are getting PSAs, then you need to make the IFRAME bigger so that you can add content and the content is visible to the site visitor. It is NOT ok to add content to the IFRAME that is not visible to the site visitor.

    Thanks to the Adsense team for their quick & helpful reply (now if only the indexing team were so responsive….).

    I have posted this comment at DP as well (the Adsense Rep was quite keen for me to post the clarification and I am happy to).

  5. Mar 31

    can you place your ads on a high traffic website as my space??

  6. admin Mar 31

    Hi Smart-webmaster,

    I don’t use myspace much, so I had to dig around for your answer.

    Seems that you can’t:

    1. You can’t add javascript to your myspace page
    2. The Myspace TOS states that you may not use the page for commercial endeavors

  7. Apr 6

    thanks admin,you are very kind.wish you all the best

  8. Joe Apr 10

    Thanks for the tip. I figured, since our site uses tables, that we’d have to go the frames route, so I did that on this page ( However I’m being told by those who run the numbers that it doesn’t seem to be working.

    #1, to be sure: The CSS method won’t work on our site, correct? Because of the tables?

    #2: Is there any reason this frames method shouldn’t be working? I went through your tutorial multiple times to make sure I didn’t miss anything.

    #3: What does this code mean in the iframe: DESIGNTIMESP=”23032″?

    Thanks for any help you can provide.

  9. Gath Apr 10

    Hi Joe,

    #1 - I checked out your site, and because the top Adsense block is always in the same spot you can use absolute positioning (CSS).

    Just leave a space for the Adsense block, and then place the Adsense code at the bottom of the HTML. Use the style:
    ‘position:absolute;top:0′ to make the Adsense block go to the top of the page.

    #2 - Your page looked fine to me & implementation seemed correct. I can’t really say what the problem is without knowing what your original CTR and current CTR are.

    #3 - DESIGNTIMESP is used by some code designers to help with editing elements. It is not used in this case, and can be removed.

  10. Joe Apr 24

    Thanks for the help, cool to see I can use CSS! Couple questions remain though:

    1: How would you go about centering the ad block horizontally? I can get it at the top with the ‘position:absolute;top:0′ styling you gave me, and I can center it on my browser by adding a ‘left:276px;’, but I know it’s only centered on my browser res and when my window is full sized. When I resize the window the ad obviously doesn’t move with it, and if i’m using any other screen resolution it wouldn’t be centered either.


    It’s only centered if you’re running 1280×1024 and your window is maximized.

    2: I’m being told the CTR numbers still aren’t changing. Would you be interested in being hired to give our site your expertise? Contact me if so, or just let me know if you see any glaring errors I made ;)


  11. Gath Apr 25

    Hi Joe,

    Here are 2 methods for centering the top adblock:

    <div style='background-color:blue;height:300;width:100%'>blah blah</div>
    <div style=’position:absolute;top:0px;width:100%;background-color:pink’>
    <div style=’;background-color:red;height:100;width:100px’>centered ad block</div>

    This uses the deprecated <center> tag.


    <div style='background-color:blue;height:300;width:100%'>blah blah</div>
    <div style=’text-align:center;position:absolute;top:0px;width:100%;background-color:pink’>
    <div style=’margin:0px auto;background-color:red;height:100px;width:100px’>centered adblock</div>

    This uses the standard text-align:center and margin:0px auto styles.

    The second part of your comment tells me that perhaps you misunderstood what this technique can achieve.
    “I’m being told the CTR numbers still aren’t changing”.
    It *will not* change your CTR. The CTR will stay the same. The only thing that will change is that the block with the higher CTR will now get the higher paying ads.

  12. Gath Apr 25


    Thanks for your offer of hiring me. My own sites keep me busy enough at the moment so I will have to decline.

  13. Joe Apr 27

    Okay, thanks, it took some manuevering around some already existent tags, but I think I got it.

    And yeah, I understand the technique, I just made the mistake of trying to sound cool with those hip abbreviations. The only thing I’ve been told by the higher-ups is “The numbers aren’t changing” which I take to mean “The revenue isn’t increasing” but in my haste here I started throwing “CTR” in there to sound legitimate. I know how the technique works, I’m just not a very good writer.

    Thanks for the help so far, I’ll try to limit my bugging you but you’re obviously a bit more seasoned than I am.

  14. Gath Apr 27

    Hi Joe,

    Don’t worry at all about bugging me = thats what the blog is for :) In fact, if you have any areas of web development or monetization that you would like me to cover then just suggest it & I’ll write a post on it.

    Sorry that the technique didn’t work out for you. Better luck with other methods.

  15. Rule Jun 27

    Thanks a lot, really helpfull.

  16. Lets Drag Aug 10

  1. Beating Google’s Duplicate Content Filter | Gath Adams