Previously we talked about Hide AdSense Unit on Mobile Devices (Responsive Design). Please look at that image (like infographics) for better understanding of this guide. That was by using CSS. Both CSS and Javascript has problems. PHP is basically good to precisely control. Nowadays, many new WordPress Plugin developers are selling costly WordPress Plugins. But basically you need not to pay for such functions. Here is How To Serve Different AdSense Units on Mobile Devices on WordPress With PHP. WordPress Has Function Which Can Be Used In Free Way.
WordPress, PHP, Different AdSense Units on Mobile Devices and AdSense PolicyGoogle AdSense is dangerous even after getting caught by Edward Snowden in PRISM data theft. They have spyware ( Read AdSense Javascript and Google Server ) to guess what you are doing. But sadly their spyware often fails and innocent get victimised. Google AdSense can suddenly ban account for policy violations. ACME is well known website which faced ban :
Vim
http://acme.com/updates/archive/173.html http://marketingland.com/recent-bans-surface-adsense-publishers-complaints-about-google-5569
http://acme.com/updates/archive/173.html
http://marketingland.com/recent-bans-surface-adsense-publishers-complaints-about-google-5569
Background was more innocent (and different) for ACME. If you have responsive web design, it is really dangerous for running AdSense. You must understand :
Google AdSense responsive ad units no way solve the problems. In easy words, using Google AdSense responsive ad units is not a defence to policy violation (yeah, it sounds odd). Furthermore, there are technical problems on WordPress – when posts, pages are cached, PHP logical work may not work i.e. static webpage can be served. Google AdSense usually catch policy violation if some click happens. Actually we were unknowingly violating "No AdSense units on 404 Page" for the past 5 years for one unit (top leaderboard). As our layout is common in WordPress, probably you need not to work huge.
Different AdSense Units on Mobile and Desktop DevicesHere are the Fatwa's by Google AdSense :
Vim
https://support.google.com/adsense/answer/1346295?hl=en
1
https://support.google.com/adsense/answer/1346295?hl=en
It is not mandatory to serve a responsive unit on desktop. We are giving example with responsive Ad units as examples only. You can use fully fixed size units. This is normal responsive Ad code :
Vim
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- your_unit_name --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-xxxxxxxxxxx" data-ad-slot="xxxxxxxx" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- your_unit_name -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-xxxxxxxxxxx"
data-ad-slot="xxxxxxxx"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
We can alter that data-ad-format="auto" to data-ad-format="rectangle" or data-ad-format="horizontal" as written here (under Specify a general shape sub-header) :
Vim
https://support.google.com/adsense/answer/6307124#adv
1
https://support.google.com/adsense/answer/6307124#adv
As example, we can change the above code to force rectangular shapes with data-ad-format="rectangle" :
Vim
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- your_unit_name --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-xxxxxxxxxxx" data-ad-slot="xxxxxxxx" data-ad-format="rectangle"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- your_unit_name -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-xxxxxxxxxxx"
data-ad-slot="xxxxxxxx"
data-ad-format="rectangle"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
Now if you serve it only for DESKTOP, anywhere (unless you are doing just deliberate bad work) it is fully "legal" to Google. So, for the same place, same Ad unit, for mobile device, you can use this kind of code to avoid policy violation :
Vim
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- your_unit_name --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-xxxxxxxxxxx" data-ad-slot="xxxxxxxx" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- your_unit_name -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-xxxxxxxxxxx"
data-ad-slot="xxxxxxxx"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
Obviously you can force horizontal on mobile too :
Vim
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- your_unit_name --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-xxxxxxxxxxx" data-ad-slot="xxxxxxxx" data-ad-format="horizontal"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- your_unit_name -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-xxxxxxxxxxx"
data-ad-slot="xxxxxxxx"
data-ad-format="horizontal"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
That data-ad-format="auto" is safer for mobile devices over data-ad-format="horizontal". Now you need to deliver the units rightly for right devices. So essentially you have 2 different ad codes.
WordPress, PHP, Different AdSense Units on Mobile Devices and AdSense PolicyWe talked about Ad Injection plugin. Ad Injection plugin is a free plugin and can inject raw PHP code – caching with W3TC or WP Super Cache will not hamper the unit delivery if you use correctly (you should always check yourself from various devices).
Here is WordPress wp_is_mobile() function :
Vim
https://codex.wordpress.org/Function_Reference/wp_is_mobile https://developer.wordpress.org/reference/functions/wp_is_mobile/
https://codex.wordpress.org/Function_Reference/wp_is_mobile
https://developer.wordpress.org/reference/functions/wp_is_mobile/
With the below example code (obviously ) you can serve (we kept a Github gist of the below code here) an automatic sized responsive ad unit on mobile and a rectangular size on desktop :
Vim
<?php if ( wp_is_mobile() ) { echo '<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- your_unit_name --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-xxxxxxxxx" data-ad-slot="xxxxxxxxx" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>'; }else if ( !wp_is_mobile() ) { echo '<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- your_unit_name --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-xxxxxxxxx" data-ad-slot="xxxxxxxxx" data-ad-format="rectangle"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>'; } ?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
if ( wp_is_mobile() ) {
echo '<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- your_unit_name -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-xxxxxxxxx"
data-ad-slot="xxxxxxxxx"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>';
}else if ( !wp_is_mobile() ) {
echo '<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- your_unit_name -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-xxxxxxxxx"
data-ad-slot="xxxxxxxxx"
data-ad-format="rectangle"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>';
}
?>
Source: WordPress & PHP : Different AdSense Units on Mobile Devices
No comments:
Post a Comment