Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Die folgenden Szenarien stellen einige der häufigsten Fehler dar, die bei der Implementierung von GPT auftreten. Obwohl solche Implementierungen mit dem aktuellen
Version von GPTs verwenden, können wir nicht garantieren, dass dies auch in Zukunft der Fall ist. Im
Im schlimmsten Fall können solche Implementierungen zu unvorhersehbaren Problemen bei der Anzeigenbereitstellung führen.
Sie gelten als nicht unterstützte Implementierungen.
Jedes Szenario enthält einen vorgeschlagenen Ansatz zur Behebung des dargestellten Problems.
Diese Liste ist nicht vollständig, soll Ihnen aber dabei helfen, die Art der Probleme zu identifizieren, die möglicherweise behoben werden müssen.
Abhängig von Ihrer Implementierung müssen Sie unter Umständen
für Ihre Website erforderlich sein können.
Häufige Fehler
Szenario 1: Verwendung inoffizieller Kopien von GPT-JavaScript-Bibliotheken
Allgemeine Beschreibung des Anwendungsfalls
Sie hosten gpt.js, pubads_impl.js oder Bibliotheken, die sie von Ihren eigenen Servern laden, oder
und laden diese Dateien
aus einer inoffiziellen Quelle.
Beispiel für ein Code-Snippet mit einem Fehler
// Incorrect: Accessing these files from an unofficial source
<scriptasyncsrc="https://www.example.com/tag/js/gpt.js"></script>
Vorschläge zur Fehlerbehebung
// Correct: Access these files from a Google domain
<scriptsrc="https://securepubads.g.doubleclick.net/tag/js/gpt.js"crossorigin="anonymous"async></script>
// Also correct, if using Limited Ads
<scriptsrc="https://pagead2.googlesyndication.com/tag/js/gpt.js"async></script>
Szenario 2: Auf gpt.js-Script-Tag-Listener vertrauen
Allgemeine Beschreibung des Anwendungsfalls
Unter der Annahme, dass die GPT API zum Aufrufen bereit ist, wenn die JavaScript-Datei
gpt.js ist falsch geladen, da einige Teile der API vom
pubads_impl.js-Datei. In irgendeiner Weise auf die API setzen (einschließlich Frameworks)
aus Ereignis-Listenern, die an das Skript-Tag angehängt sind, ist daher falsch.
// Make sure that googletag.cmd exists.window.googletag=window.googletag||{};googletag.cmd=googletag.cmd||[];// Correct: Queueing the callback on the command queue.googletag.cmd.push(callback);
Erläuterung/Beschreibung der Korrektur
googletag.cmd verwaltet eine Liste von Befehlen, die ausgeführt werden, sobald GPT ausgeführt wird.
ist bereit. Dies ist die korrekte Methode, um sicherzustellen, dass Ihr Callback ausgeführt wird, nachdem GPT geladen wurde.
Szenario 3: Über das googletag-Objekt prüfen, ob GPT bereit ist
Allgemeine Beschreibung des Anwendungsfalls
Da die GPT API möglicherweise nicht bereit ist, wenn die JavaScript-Datei gpt.js geladen oder das googletag-Objekt definiert wird, ist es nicht zuverlässig, dieses Objekt zu prüfen, um festzustellen, ob die GPT API verfügbar ist.
Beispiel für ein Code-Snippet mit Fehler
// Incorrect: Relying on the presence of the googletag object// as a check for the GPT API.if(typeofgoogletag!='undefined'){functionProcessingGPT();}
Vorschläge zur Fehlerbehebung
// Correct: Relying on googletag.apiReady as a check for the GPT API.if(window.googletag&&googletag.apiReady){functionProcessingGPT();}
Erläuterung/Beschreibung der Korrektur
GPT füllt das boole Flag googletag.apiReady aus, sobald die API aufgerufen werden kann, damit Sie zuverlässige Behauptungen machen können.
Szenario 4: Verschlüsselte Codesyntax verwenden
Allgemeine Beschreibung des Anwendungsfalls
Wenn Sie auf die genaue Syntax des minimierten GPT-Bibliothekscodes angewiesen sind, kommt es fast mit Sicherheit zu Fehlern. Bitte beschränken Sie die Nutzung auf die API, die im API-Referenzhandbuch dokumentiert ist. Wir ändern das Innere von GPT ständig, um es weiter zu verbessern.
Eine gängige Anforderung besteht z. B. darin zu erkennen,
wann PubAdsService vollständig geladen ist,
um refresh() aufzurufen.
Beispiel für ein Code-Snippet mit Fehler
// Incorrect: Relying on an obfuscated property.if(googletag.pubads().a!=null){functionProcessingGPT();}
Vorschläge zur Fehlerbehebung
// Correct: Relying on public GPT API methods// (i.e. googletag.pubadsReady in this case).if(window.googletag&&googletag.pubadsReady){functionProcessingGPT();}
Erläuterung/Beschreibung der Korrektur
Es kann nur die öffentliche API verwendet werden. Um zu erkennen, ob der PubAdsService vollständig geladen ist, gibt es den booleschen Wert googletag.pubadsReady.
Szenario 5: Überschreiben einer Funktion oder Variable von GPT
Allgemeine Beschreibung des Anwendungsfalls
Anwendungsfälle, die auf dem Überschreiben einer von GPT verwendeten Funktion oder Variablen basieren, können jederzeit fehlschlagen, da dies nicht unterstützt wird. Timingänderungen in den internen GPT-Strukturen können zu dieser Art von Fehlverhalten führen.
Beispiel für ein Code-Snippet mit einem Fehler
// Incorrect: Haphazardly overwriting a googletag.* property.googletag.cmd=[];
Vorschläge zur Fehlerbehebung
// Correct: Never overwrite googletag.* properties if they already exist.// Always check before assigning to them.googletag.cmd=googletag.cmd||[];
Szenario 6: Falsche Reihenfolge bei GPT-Aufrufen
Allgemeine Beschreibung des Anwendungsfalls
Die Race-Bedingungen können zu Fehlern führen, wenn sich die internen Strukturen von GPTs weiterentwickeln. Eine falsch geordnete Reihe von Anweisungen, die aufgrund bestimmter Zeitangaben bei der Ausführung funktionierte, funktioniert möglicherweise in Zukunft nicht mehr.
Beispiel für ein Code-Snippet mit Fehler
// Incorrect: Setting page-level key-value targeting after calling// googletag.enableServices().googletag.enableServices();googletag.defineSlot(...);googletag.pubads().setTargeting(e,a);
Vorschläge zur Fehlerbehebung
// Correct: Setting page-level key-value targeting before calling// googletag.enableServices().googletag.pubads().setTargeting(e,a);googletag.defineSlot(...);googletag.enableServices();
Erläuterung / Beschreibung der Fehlerbehebung
Vermeiden Sie Race-Bedingungen, indem Sie darauf achten, das übliche Timing von GPT einzuhalten. Beispiel gültig
Teilanordnungen umfassen:
Definieren-Aktivieren-Display
Einstellungen auf Seitenebene festlegen
Zeitfenster definieren
enableServices()
Anzeigeflächen
Enable-Define-Display
Einstellungen auf Seitenebene festlegen
enableServices()
Zeitfenster definieren
Display-Slots
Szenario 7: Falsche Verwendung von Schließungen und der Gültigkeit von JavaScript-Variablen
Allgemeine Beschreibung des Anwendungsfalls
Falsche Annahmen zum Geltungsbereich von JavaScript-Variablen und zum Wert von Variablen
in der Funktion erfasst, die an googletag.cmd.push übergeben wird.
In JavaScript erfassen Closures Variablen anhand von Referenzen und nicht nach Wert. Das bedeutet, dass bei der erneuten Zuweisung einer Variablen ihr neuer Wert verwendet wird, wenn der Funktionsabschluss, der sie erfasst hat, später ausgeführt wird. Das Verhalten des Codes in der Endung
kann sich ändern, je nachdem, ob der Callback sofort oder verzögert ausgeführt wird.
Bei einem asynchron geladenen GPT hängt davon ab, wie schnell GPT
Callbacks in der Befehlswarteschlange können sofort ausgeführt werden oder nicht. Im vorherigen Beispiel ändert sich dadurch das Verhalten der Befehle in der Warteschlange.
Um Probleme zu vermeiden, sollte Code ohne die Annahme geschrieben werden, dass Funktionen, die in die Befehlswarteschlange gestellt werden, sofort ausgeführt werden. Außerdem sollten die Regeln für den Gültigkeitsbereich von JavaScript beachtet werden.
Szenario 8: Slot-Container innerhalb des DOMs verschieben, nachdem „display“ aufgerufen wurde
Allgemeine Beschreibung des Anwendungsfalls
Das Verschieben oder Einfügen von Slot-Containern im DOM nach dem Aufruf von display kann zu
und unvorhersehbares Verhalten
in den GPTs enthalten.
Beispiel für ein Code-Snippet mit Fehler
// Incorrect: Moving slot containers after calling displaygoogletag.defineSlot("/1234/travel/asia",[728,90],"div-gpt-ad-123456789-0");googletag.enableServices();googletag.display("div-gpt-ad-123456789-0");...// Inserting another element before the slot container, pushing the slot container down the page.document.body.insertBefore(someOtherElement,document.getElementById("div-gpt-ad-123456789-0"));
Vorschläge zur Fehlerbehebung
// Correct: Make any DOM order changes before calling displaydocument.body.insertBefore(someOtherElement,document.getElementById("div-gpt-ad-123456789-0"));...googletag.defineSlot("/1234/travel/asia",[728,90],"div-gpt-ad-123456789-0");googletag.enableServices();googletag.display("div-gpt-ad-123456789-0");
Szenario 9: Browser-APIs überschreiben
Allgemeine Beschreibung des Anwendungsfalls
Das Überschreiben von Browser-APIs (auch als Monkey-Patching oder Polyfilling bezeichnet) wird in GPT nicht unterstützt.
Diese Vorgehensweise kann dazu führen, dass Skripts von Drittanbietern wie GPT auf unerwartete Weise beschädigt werden.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-25 (UTC)."],[],["The content outlines unsupported methods of implementing GPT (Google Publisher Tag) that may cause unpredictable ad serving issues. Key actions to avoid include: using unofficial GPT JavaScript libraries, relying on script tag listeners or the `googletag` object to determine API readiness, using obfuscated code syntax, overwriting GPT functions/variables, mis-ordering GPT calls, and misusing JavaScript variable scoping. Correct implementations involve using Google-hosted libraries, leveraging `googletag.cmd.push`, respecting API timing, and modifying the DOM before calling display. Also, avoid overwriting browser APIs.\n"]]