Is Google adsense available for localhost?

Yes it is possible (as of 2015). There is a special parameter, to use Adsense on Localhost without risks.

Today the AdSense code is different. If you want to add the adtest-parameter use data-adtest="on" within an ins block. Here is an example code:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- XYZ 336 x 280 -->
<ins class="adsbygoogle"
 style="display:inline-block;width:336px;height:280px"
 data-ad-client="ca-pub-XXXXXXXXXXXXX"
 data-adtest="on"
 data-ad-slot="XXXXXXXXXXX"></ins>
<script>
  (adsbygoogle = window.adsbygoogle || []).push({});
</script>

Found this on Google AdManager Help:

It shows a basic tutorial on how to achieve this.

Test Ad Exchange tags without charging advertisers or recording clicks and impressions

Add the google_adtest = on; parameter to your ad tag to specify that this is a test implementation. Make sure you set this parameter to "on" to ensure that clicks and impressions aren't recorded and advertisers aren't charged. The default value is "off".


You can put this as the first line of the code:

google_adtest = "on";

test-adsense-ads-on-your-site

Note that you must put the semicolon (;) at the end of this line.

Once you add this line to the code, for the adsense unit, it will be displayed as a test unit and its impressions won’t be counted.

Very Important Note - Once you are satisfied with the adsense unit, don't forget to remove this line from the code.

Check out this link: http://www.hacktrix.com/2-ways-to-safely-test-google-adsense-ads-on-your-site


I was able to make Adsense ads work on localhost by following the next steps:

1) Add ads.txt file in root of myDomain

https://support.google.com/adsense/answer/7532444?hl=en-GB

The file should be available for GET at myDomain.com/ads.txt

(I am not sure if the ads would work without this step)

2) Edit the hosts system file:

in Linux and macOS you can find it at /etc/hosts

There add a line like this 127.0.0.1 mylocalstuff.myDomain.com

run sudo killall -HUP mDNSResponder

A browser restart might also be needed.

Without this step you will probably get a 403

3) Use the data-adtest="on" in the ins tag so the impressions are not affected.

Access mylocalstuff.myDomain.com in the browser (or mylocalstuff.myDomain.com<:PORT_NUMBER> if your local server is available at a port number different than 80).

The steps where inspired from sources:

https://medium.com/@jeffersonlicet/testing-ads-on-localhost-300215b415d6

https://stackoverflow.com/a/34389120/1979861

Note: pay also attention to the space for ads (styles). If that is too restricted by some width or height you can get an error and you will see a blanc space.