Seite 1 von 2

HowTo: Gelöscht

Verfasst: 31.01.2019, 18:58
von supervisior
Gelöscht

Verfasst:
von

Verfasst: 01.02.2019, 16:21
von Micha_Es
Hi und vielen Dank für die Mühe!!!

Aber es funktioniert leider nicht.
Wie gesagt bin ich absoluter Laie, aber wo wird denn die Function downloadJSAtOnload definiert?

Code: Alles auswählen

function downloadJSAtOnload() {

Verfasst: 01.02.2019, 16:56
von themoneytizer
Ergänzend zur Darstellung von supervisior:

Die The Moneytizer Ad Tags laufen gänzlich über JavaScript (native).

Die einzige Voraussetzung ist ein eindeutiges <div> -Element mit einer eindeutigen ID für jede Ihrer Anzeigen. Das jQuery Framework ist für den unten aufgeführten Code keine Voraussetzung. Der Code dient als Beispiel. Funktionen zur globaleren Anwendung des Skripts können natürlich zusätzlich eingebunden werden.

Code: Alles auswählen

window.onload = function&#40;&#41; &#123;
  var id = '1234567-8';
  var src1 = '//ads.themoneytizer.com/s/gen.js?type=3';
  var src2 = '//ads.themoneytizer.com/s/requestform.js?siteId=1234567&formatId=8';

  var divAdMoneytizer = document.getElementById&#40;'ad-moneytizer'&#41;;
  var divAd = document.createElement&#40;'div'&#41;;
  divAd.setAttribute&#40;'id', id&#41;;
  divAdMoneytizer.appendChild&#40;divAd&#41;;

  var myad = document.getElementById&#40;id&#41;;
  var script1 = document.createElement&#40;'script'&#41;;
  var script2 = document.createElement&#40;'script'&#41;;

  script1.src = src1;
  script2.src = src2;

  myad.appendChild&#40;script1&#41;;
  myad.appendChild&#40;script2&#41;;
&#125;

Verfasst: 01.02.2019, 17:11
von Hanzo2012
Anmerkung zum Code: Die Variable „myad“ ist überflüssig, da sie dasselbe Element enthält wie die davor genutzte Variable „divAd“.

Verfasst: 01.02.2019, 17:54
von supervisior
themoneytizer hat geschrieben:Ergänzend zur Darstellung von supervisior:

Die The Moneytizer Ad Tags laufen gänzlich über JavaScript (native).
Ich hab nix gegenteiliges geschrieben?!

Native wäre an sich ja gut, wenn diese window.onload Funktion die einzige one-and-only onload Funktion wäre, aber durch diese Lösung gibts unvorhersehbare Verwerfungen, wenn es noch andere onload Funktionen gibt. Ziel der Lösung ist es alles, was auch nur den Anschein machen könnte den Seitenaufbau zu stören erstmal hinten dran zu stellen. Dazu gehört auch die Menge an Code zu minimieren. Wenn man zu jeder einzelnen Anzeige erstmal einen zusätzlichen Code Block definieren muss, um dieses Ziel zu erreichen, dann hilft auch die beste Lösung nichts, wenn sich dadurch der Code unnötig aufbläht. Man kann über Adsense sagen was man will, aber zumindest in Sachen Programmierung ist Google Euch einen deutlichen Schritt voraus, wenngleich man auch bei Adsense etwas, aber nur etwas nachhelfen muss.

Verfasst: 01.02.2019, 17:56
von supervisior
Micha_Es hat geschrieben:Hi und vielen Dank für die Mühe!!!

Aber es funktioniert leider nicht.
Wie gesagt bin ich absoluter Laie, aber wo wird denn die Function downloadJSAtOnload definiert?

Code: Alles auswählen

function downloadJSAtOnload&#40;&#41; &#123;
Streich den Code Schnipsel raus. Man soll zu später Stunde nicht mehr solche Sachen schreiben.... ;) Hab die obige Anleitung korrigiert. Wenns bei Dir trotzdem nicht funktioniert, dann liegts mit großer Wahrscheinlichkeit an den genannten Ausschlusskriterien

Verfasst: 02.02.2019, 08:44
von Rem
Und nicht zuletzt gilt: Wer lesen kann, ist klar im Vorteil!
Aha? Und es ist Dir nicht aufgefallen, dass der Code hier bei Adsense nix verloren hat?

Verfasst: 02.02.2019, 08:54
von supervisior
Warum ist das Dein Problem? Schau mal onTop. Ich hab Hanzo2012 darauf hingewiesen, dass er dieses Thema bei Bedarf verschieben soll. Wer lesen kann, ist immer noch klar im Vorteil.... ;)

Verfasst: 04.02.2019, 13:52
von Micha_Es
@themoneytizer
window.onload = function() {
var id = '1234567-8';
var src1 = '//ads.themoneytizer.com/s/gen.js?type=3';
var src2 = '//ads.themoneytizer.com/s/requestform.js?siteId=1234567&formatId=8';

var divAdMoneytizer = document.getElementById('ad-moneytizer');
var divAd = document.createElement('div');
divAd.setAttribute('id', id);
divAdMoneytizer.appendChild(divAd);

var myad = document.getElementById(id);
var script1 = document.createElement('script');
var script2 = document.createElement('script');

script1.src = src1;
script2.src = src2;

myad.appendChild(script1);
myad.appendChild(script2);
}
Bedeutet das, dass ich diesen Codeschnipsel vor </body> platzieren kann und dann einen div Container brauche, oder baue ich den Code da ein, wo die Anzeige erscheinen soll? Der Hintergrund ist der: egal was ich mache - es funktioniert nicht.

Beispiel:

Code: Alles auswählen


<div id="1234567-8>
</div>

<script>
window.onload = function&#40;&#41; &#123;
  var id = '1234567-8';
  var src1 = '//ads.themoneytizer.com/s/gen.js?type=3';
  var src2 = '//ads.themoneytizer.com/s/requestform.js?siteId=1234567&formatId=8';

  var divAdMoneytizer = document.getElementById&#40;'ad-moneytizer'&#41;;
  var divAd = document.createElement&#40;'div'&#41;;
  divAd.setAttribute&#40;'id', id&#41;;
  divAdMoneytizer.appendChild&#40;divAd&#41;;

  var myad = document.getElementById&#40;id&#41;;
  var script1 = document.createElement&#40;'script'&#41;;
  var script2 = document.createElement&#40;'script'&#41;;

  script1.src = src1;
  script2.src = src2;

  myad.appendChild&#40;script1&#41;;
  myad.appendChild&#40;script2&#41;;
&#125;
</script>

Verfasst: 04.02.2019, 14:18
von supervisior
Was spuckt denn die Developer Console aus, wenn Du die Seite aufrufst?

Verfasst: 04.02.2019, 14:29
von Micha_Es
@supervisior
Ich habe auch mit deiner Variante herum experimentiert - kein Versuch war erfolgreich - leider.

Das einzige was funktioniert ist diese Methode

Dort wo die Anzeige erscheinen soll:

Code: Alles auswählen

<div id="12345-6"></div>

Vor </body>

Code: Alles auswählen

    <script>
        function downloadJSAtOnload&#40;&#41; &#123;
            var b = document.createElement&#40;"script"&#41;;
            b.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
            document.body.appendChild&#40;b&#41;

            var c = document.createElement&#40;"script"&#41;;
            c.src = "//ads.themoneytizer.com/s/gen.js?type=Y";
            document.body.appendChild&#40;c&#41;

            var d = document.createElement&#40;"script"&#41;;
            d.src = "//ads.themoneytizer.com/s/requestform.js?siteId=XXXXXX&formatId=X";
            document.body.appendChild&#40;d&#41;
        &#125;;
        if &#40;window.addEventListener&#41; &#123;
          window.addEventListener&#40;"load", downloadJSAtOnload, false&#41;
      &#125; else &#123;
          if &#40;window.attachEvent&#41; &#123;
              window.attachEvent&#40;"onload", downloadJSAtOnload&#41;
          &#125; else &#123;
              window.onload = downloadJSAtOnload
          &#125;
        &#125;;
    </script>
Die Seitenladezeit verringert sich erheblich und sowohl AdSense, wie auch Moneytizer werden erst dann geladen, wenn die Seite vollständig geladen ist.

Wie gesagt, ich bin ne Pflaume was JS angeht, aber warum soll das nicht funktionieren? Wäre über eine Aufklärung dankbar :-)

Verfasst: 04.02.2019, 14:35
von Micha_Es
supervisior hat geschrieben:Was spuckt denn die Developer Console aus, wenn Du die Seite aufrufst?
TypeError: divAdMoneytizer is null

Verfasst: 04.02.2019, 15:05
von supervisior
Erhebe bitte nicht den Anspruch, dass man jeden Code Schnipsel universell einstezen könnten. In Deinem Fall erst recht nicht, weil Du eine Mischkonstellation aus Adsense UND TheMoneytizer betreibst. Das kann ja nicht funktionieren. An Deiner Stelle würde ich sowohl meine Adsense Lösung als auch das vom The Moneytizer Support entfernen und suche Dir jemanden, der Dir etwas indiviuelles bastelt. Dir versuchen zu helfen ist das Gleiche als würde man mit einer Fernsteuerung eine andere Fernsteuerung, die ein Flugzeug fernsteuern soll. Dass das schief geht,ist abzusehen. Verstehst Du das?

Verfasst: 04.02.2019, 18:07
von Micha_Es
Ich verstehe was du meinst.
Habe jedoch sämtlichen Moneytizer und AdSense Code entfernt und dann die beiden oben gezeigten Beispiele umgesetzt - leider ohne Erfolg. Was ich aber gerne verstehen möchte, warum der Code nicht funktionieren sollte, wenn er es "augenscheinlich" tut?:

Code: Alles auswählen

<div id="1234567-8>
</div>

<script>
        function downloadJSAtOnload&#40;&#41; &#123;
            var b = document.createElement&#40;"script"&#41;;
            b.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
            document.body.appendChild&#40;b&#41;

            var c = document.createElement&#40;"script"&#41;;
            c.src = "//ads.themoneytizer.com/s/gen.js?type=Y";
            document.body.appendChild&#40;c&#41;

            var d = document.createElement&#40;"script"&#41;;
            d.src = "//ads.themoneytizer.com/s/requestform.js?siteId=XXXXXX&formatId=X";
            document.body.appendChild&#40;d&#41;
        &#125;;
        if &#40;window.addEventListener&#41; &#123;
          window.addEventListener&#40;"load", downloadJSAtOnload, false&#41;
      &#125; else &#123;
          if &#40;window.attachEvent&#41; &#123;
              window.attachEvent&#40;"onload", downloadJSAtOnload&#41;
          &#125; else &#123;
              window.onload = downloadJSAtOnload
          &#125;
        &#125;;
    </script> 

Verfasst: 04.02.2019, 19:38
von supervisior
Na so wirklich verstanden hast Du es aber nicht?! Nur weil Du Dir selbst was zusammengebastelt hast, kannst Du daraus nicht schlussfolgern, dass es augenscheinlich funktionieren sollte.....!