Warum registrieren? Nur als registriertes Mitglied vom ABAKUS Forum hast Du vollen Zugriff auf alle Funktionen unserer Website.

Adsense für Mobile komplett ausblenden

Alles zum Thema Google Adsense.
Micha_Es
PostRank 5
PostRank 5
Beiträge: 221
Registriert: 23.03.2008, 20:29

Beitrag von Micha_Es » 22.01.2019, 13:40

Hallo,

eine Frage, welche mich schon länger beschäftigt.

Wie schaffte ich es die Google AdSense Werbung für mobile Geräte komplett zu deaktivieren und nicht über den @media Tag?

Der Hintergrund: mit dem @media tag wird trotzdem die Verbindung aufgebaut, was ja nicht sein muss, wenn es nicht angezeigt wird.

Anzeige von:

Content Marketing Strategie von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Hanzo2012
Community-Manager
Community-Manager
Beiträge: 1790
Registriert: 26.09.2011, 23:31

Beitrag von Hanzo2012 » 22.01.2019, 15:17

Checke mit JavaScript, ob es sich um ein Nicht-Mobilgerät handelt (z. B. screen.width > xxx), und nur dann fügst du das AdSense-Script mittels document.createElement("script") usw. ein.

Micha_Es
PostRank 5
PostRank 5
Beiträge: 221
Registriert: 23.03.2008, 20:29

Beitrag von Micha_Es » 22.01.2019, 15:32

Hey Hanzo,

danke für die Antwort.

Hast du mir ein Beispiel?

Hanzo2012
Community-Manager
Community-Manager
Beiträge: 1790
Registriert: 26.09.2011, 23:31

Beitrag von Hanzo2012 » 22.01.2019, 16:25

Kannst du kein JavaScript?

Micha_Es
PostRank 5
PostRank 5
Beiträge: 221
Registriert: 23.03.2008, 20:29

Beitrag von Micha_Es » 22.01.2019, 16:56

Ich kann viel, aber nicht alles :-)
Nein, ich kann kein JS

Anzeige von:

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Hanzo2012
Community-Manager
Community-Manager
Beiträge: 1790
Registriert: 26.09.2011, 23:31

Beitrag von Hanzo2012 » 22.01.2019, 17:38

Ich bin zwar der Meinung, dass jeder, der mit Web sein Geld verdient, auch JavaScript können sollte, aber bitteschön ...

Original-Code:

Code: Alles auswählen

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
	 style="display&#58;inline-block;width&#58;300px;height&#58;250px"
	 data-ad-client="ca-pub-xxx"
	 data-ad-slot="yyy"></ins>
<script>
&#40;adsbygoogle = window.adsbygoogle || &#91;&#93;&#41;.push&#40;&#123;&#125;&#41;;
</script>
Ersetzen durch (nicht getestet):

Code: Alles auswählen

<script type="text/javascript">
&#40;function&#40;&#41; &#123;
	if &#40;screen.width > 480&#41; &#123;
		var id = "adsense-script";
		if &#40;document.getElementById&#40;id&#41; === null&#41; &#123;
			var e = document.createElement&#40;"script"&#41;;
			e.id = id;
			e.async = false;
			e.defer = true;
			document.getElementsByTagName&#40;"head"&#41;&#91;0&#93;.appendChild&#40;e&#41;;
		&#125;
		var e = document.createElement&#40;"ins"&#41;;
		e.className = "adsbygoogle";
		e.setAttribute&#40;"style", "display&#58;inline-block;width&#58;300px;height&#58;250px"&#41;;
		e.setAttribute&#40;"data-ad-client", "ca-pub-xxx"&#41;;
		e.setAttribute&#40;"data-ad-slot", "yyy"&#41;;
		document.getElementsByTagName&#40;"body"&#41;&#91;0&#93;.appendChild&#40;e&#41;;
		&#40;adsbygoogle = window.adsbygoogle || &#91;&#93;&#41;.push&#40;&#123;&#125;&#41;;
	&#125;
&#125;&#41;&#40;&#41;;
</script>
Die passenden IDs ("xxx", "yyy") musst du natürlich noch einsetzen. Falls du Analytics einbindest, musst du das entsprechende Attribut noch setzen, aber das solltest du hinkriegen, da es exakt gleich funktioniert.
Nun werden Anzeigen nur bei einer Bildschirmbreite von mehr als 480 Pixel eingebunden, und zwar sowohl das AdSense-Skript als auch der Block an sich. Nebeneffekt meines Codes: Das AdSense-Skript wird höchstens einmal eingebunden, auch wenn du mehrere Anzeigen auf derselben Seite hast.
Die 480 Pixel scheinen die magische Grenze des Großteils der Smartphones zu sein.

staticweb
PostRank 9
PostRank 9
Beiträge: 1681
Registriert: 04.05.2016, 14:34

Beitrag von staticweb » 22.01.2019, 19:18

Es wäre doch sinnvoll das bereits serverseitig abzuklären.

Über die viewport Breite wirst du nicht zwischen mobile <--> desktop unterscheiden können.

Hanzo2012
Community-Manager
Community-Manager
Beiträge: 1790
Registriert: 26.09.2011, 23:31

Beitrag von Hanzo2012 » 22.01.2019, 20:22

staticweb hat geschrieben:Es wäre doch sinnvoll das bereits serverseitig abzuklären.

Über die viewport Breite wirst du nicht zwischen mobile <--> desktop unterscheiden können.
Hat beides seine Vor- und Nachteile.
Kommt halt drauf an, wie er bisher seine Seite an die verschiedenen Geräte anpasst. Wenn er bislang über CSS Media Queries arbeitet, dann ist clientseitig „the way to go“.

Micha_Es
PostRank 5
PostRank 5
Beiträge: 221
Registriert: 23.03.2008, 20:29

Beitrag von Micha_Es » 23.01.2019, 10:14

Ich danke euch.

Das Verstehen kommt bei mir durch Beispiele nur so kann ich nachvollziehen, was damit gemeint war und nur so kann man auch was lernen.

Google selbst hat einmal folgendes geschrieben:
https://adsense-de.googleblog.com/2012/ ... sites.html
Bitte beachtet, dass es, gemäß der AdSense Programmrichtlinien, nicht erlaubt ist, Veränderungen am AdSense-Code vorzunehmen. Dies ist die einzige empfohlene Veränderung des Codes für Responsive Design Websites. Jegliche Änderung, die nicht dem obigen JavaScript-Code entspricht, wird als Verstoß gegen unsere Programmrichtlinien gewertet.

Von daher stellt sich mir jedes mal die Frage, was ist erlaubt und was nicht!?

@Staticweb:
wie würdest du so etwas Serverseitig abfangen?

Hanzo2012
Community-Manager
Community-Manager
Beiträge: 1790
Registriert: 26.09.2011, 23:31

Beitrag von Hanzo2012 » 23.01.2019, 10:57

Woanders wurde mal geschrieben (von Google), dass man sehr wohl Änderungen machen darf, solange sie nicht das Verhalten oder das Aussehen der Werbeanzeigen verändern. Das hier geht völlig in Ordnung. Ich nutze seit vielen Jahren einen stark modifizierten Code. Es gab nie Probleme damit, die Service-Mitarbeiter von AdSense haben das auch gesehen.
Serverseitig musst du den User Agent String analysieren. Da nimmst du am besten eine Library, die das für dich macht und regelmäßig aktualisiert wird (es kommen ja ständig neue Smartphones raus und neue Browser-Apps). Kann aber sein, dass ein Gerät dann serverseitig als Mobilgerät erkannt wird und clientseitig (CSS Media Query) nicht, oder umgekehrt.

Micha_Es
PostRank 5
PostRank 5
Beiträge: 221
Registriert: 23.03.2008, 20:29

Beitrag von Micha_Es » 23.01.2019, 11:32

Mir geht es ja auch nicht um 100 Prozent Abdeckung, sondern vielmehr die gängigsten Varianten abzufangen, damit die Werbung nicht geladen wird und unnötigen Traffic verursacht. Von daher ist die Clientseitige Lösung keine schlechte Variante.

Wenn einer sein Fenster auf dem Desktop unter die 400er verkleinert und die Werbung nicht angezeigt bekommt, ist mir das "wurscht" :-)

top
PostRank 7
PostRank 7
Beiträge: 647
Registriert: 14.07.2005, 17:09

Beitrag von top » 23.01.2019, 13:06

Micha_Es hat geschrieben:...

Wenn einer sein Fenster auf dem Desktop unter die 400er verkleinert und die Werbung nicht angezeigt bekommt, ist mir das "wurscht" :-)
Bei einer Grenze von 400 hast du aber dann wieder Werbung auf dem Streichelbrettchen, wenn jemand im Querformat surft.

supervisior
PostRank 9
PostRank 9
Beiträge: 1370
Registriert: 26.06.2006, 09:11

Beitrag von supervisior » 25.01.2019, 12:31

Hanzo2012 hat geschrieben:Ich bin zwar der Meinung, dass jeder, der mit Web sein Geld verdient, auch JavaScript können sollte, aber bitteschön ...

Original-Code:

Code: Alles auswählen

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
	 style="display&#58;inline-block;width&#58;300px;height&#58;250px"
	 data-ad-client="ca-pub-xxx"
	 data-ad-slot="yyy"></ins>
<script>
&#40;adsbygoogle = window.adsbygoogle || &#91;&#93;&#41;.push&#40;&#123;&#125;&#41;;
</script>
Ersetzen durch (nicht getestet):

Code: Alles auswählen

<script type="text/javascript">
&#40;function&#40;&#41; &#123;
	if &#40;screen.width > 480&#41; &#123;
		var id = "adsense-script";
		if &#40;document.getElementById&#40;id&#41; === null&#41; &#123;
			var e = document.createElement&#40;"script"&#41;;
			e.id = id;
			e.async = false;
			e.defer = true;
			document.getElementsByTagName&#40;"head"&#41;&#91;0&#93;.appendChild&#40;e&#41;;
		&#125;
		var e = document.createElement&#40;"ins"&#41;;
		e.className = "adsbygoogle";
		e.setAttribute&#40;"style", "display&#58;inline-block;width&#58;300px;height&#58;250px"&#41;;
		e.setAttribute&#40;"data-ad-client", "ca-pub-xxx"&#41;;
		e.setAttribute&#40;"data-ad-slot", "yyy"&#41;;
		document.getElementsByTagName&#40;"body"&#41;&#91;0&#93;.appendChild&#40;e&#41;;
		&#40;adsbygoogle = window.adsbygoogle || &#91;&#93;&#41;.push&#40;&#123;&#125;&#41;;
	&#125;
&#125;&#41;&#40;&#41;;
</script>
Die passenden IDs ("xxx", "yyy") musst du natürlich noch einsetzen. Falls du Analytics einbindest, musst du das entsprechende Attribut noch setzen, aber das solltest du hinkriegen, da es exakt gleich funktioniert.
Nun werden Anzeigen nur bei einer Bildschirmbreite von mehr als 480 Pixel eingebunden, und zwar sowohl das AdSense-Skript als auch der Block an sich. Nebeneffekt meines Codes: Das AdSense-Skript wird höchstens einmal eingebunden, auch wenn du mehrere Anzeigen auf derselben Seite hast.
Die 480 Pixel scheinen die magische Grenze des Großteils der Smartphones zu sein.
Ist zwar auch eine Lösung, aber das geht viel einfacher und effektiver mit PHP. Dafür muss man noch nicht mal was großartig programmieren, sondern nur eine Klasse einbinden. Ich verwende seit Jahren https://mobiledetect.net/. Ist kostenlos, lässt sich in so gut wie jede Anwendung spielend einfach einbauen und wird fortlaufend aktualisiert. Darüberhinaus kann man dann nicht nur zwischen Desktop PCs, Smartphones und Tablets unterscheiden, sondern wenn nötig sogar runter bis auf ein bestimmtes Modell.

Das lässt sich dann für alles verwenden und nicht nur für Adsense und das reduziert den ansonsten anfallenden Overhead an PHP, HTML, Javascript, CSS und auch alles andere um ein Vielfaches.

Hanzo2012
Community-Manager
Community-Manager
Beiträge: 1790
Registriert: 26.09.2011, 23:31

Beitrag von Hanzo2012 » 25.01.2019, 12:52

Kenne die Library. Einfacher als JavaScript ist das aber nicht. „Meine“ Lösung erfordert einfach nur Copy&Paste. Vielleicht benutzt seine Seite ja gar kein PHP oder sie benutzt irgendein Framework/CMS, wo es nicht so einfach ist eigenen Code einzubauen.

supervisior
PostRank 9
PostRank 9
Beiträge: 1370
Registriert: 26.06.2006, 09:11

Beitrag von supervisior » 25.01.2019, 13:25

Wo ist das Problem? Wenn es sich darauf beschränkt für mobile Geräte Adsense zu deaktivieren, genügt eine einfache if isMobile Abfrage. That's it. Null Overhead und einfacher gehts nun wirklich nicht.

Es gibt für diese Library Unmengen an Erweiterungen für gänge CMS, sodass man noch nicht mal den Code anfassen muss.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag