Ürünlerimiz hakkında görüşlerinizi paylaşmak ve geri bildirimde bulunmak için Google Advertising and Measurement Community sunucusundaki resmi Ad Manager Discord kanalına katılın.
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Aşağıdaki senaryolarda, projenizle ilgili sürerken gözlemlenen en yaygın hatalardan
hakkında daha fazla bilgi edinin. Bu tür uygulamalar GPT'nin geçerli sürümüyle düzgün çalışıyor gibi görünse de, gelecekte de böyle çalışmaları garanti edilmez.
Bu uygulamalar, en uç durumlarda reklam sunumunun öngörülemez şekillerde kesintiye uğramasına neden olabilir.
Bunlar desteklenmeyen uygulamalar olarak kabul edilir.
Her senaryoda, gösterilen sorunun düzeltilmesi için önerilen bir yaklaşım yer alır.
Bu listenin potansiyel sorunların tam bir listesini temsil etmediğini unutmayın.
Ancak ekibinizin en sık ihtiyaç duyabileceği sorun türlerini
ele alınmalıdır.
Ayrıca, uygulamanıza bağlı olarak, sitenizde bu tür değişikliklerin gerekli olabileceği tüm yerleri aramanız gerekebilir.
Sık Yapılan Yanlışlar
1. Senaryo: GPT JavaScript kitaplıklarının resmi olmayan kopyalarını kullanma
Genel kullanım alanı açıklaması
gpt.js, pubads_impl.js veya kendi sunucularınızdan yükledikleri kitaplıkları barındırma ya da
bu dosyaları resmi olmayan bir kaynaktan yüklüyor.
Hata içeren örnek kod snippet'i
// Incorrect: Accessing these files from an unofficial source
<scriptasyncsrc="https://www.example.com/tag/js/gpt.js"></script>
Hatayı düzeltmek için önerilen yöntemler
// 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>
JavaScript dosyası çalıştırıldığında GPT API'nin çağrılmaya hazır olduğunu varsaymak,
gpt.js yüklenmesi yanlış, çünkü API'nin bazı bölümleri
pubads_impl.js dosya API'ye herhangi bir şekilde (çerçeveler dahil) güvenme
etkinlik işleyicilerin içinden eklenmiş olması gerekir.
// 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);
Düzeltmenin açıklaması / açıklaması
googletag.cmd, GPT'yle hemen çalıştırılacak komutların listesini tutar
hazır. GPT yüklendiğinde geri çağırma işlevinizin çalıştırılmasını sağlamanın doğru yolu budur.
Senaryo 3: GPT'nin hazır olup olmadığını öğrenmek için googletag nesnesini kontrol etme
Karmaşık kullanım alanı açıklaması
gpt.js JavaScript dosyası yüklenirken GPT API hazır olmayabilir.
googletag nesnesi tanımlı olduğunda, bu nesneyi kontrol ederek
GPT API'si güvenilir değildir.
Hatalı kod snippet'i örneği
// Incorrect: Relying on the presence of the googletag object// as a check for the GPT API.if(typeofgoogletag!='undefined'){functionProcessingGPT();}
Hatayı düzeltmek için önerilen yollar
// Correct: Relying on googletag.apiReady as a check for the GPT API.if(window.googletag&&googletag.apiReady){functionProcessingGPT();}
Düzeltmenin açıklaması
GPT, API çağrılmaya hazır olduğunda doğru beyanlarda bulunabilmeniz için googletag.apiReady boole işaretini doldurur.
Senaryo 4: Kodu karartılmış söz dizimine güvenme
Genel kullanım alanı açıklaması
Sıkıştırılmış GPT kitaplığı kodunun hassas söz dizimine güveniyorsanız neredeyse kesinlikle kesintilerle karşılaşırsınız. Sürekli iyileştirmeler için GPT'nin işleyişini sürekli olarak değiştirdiğimizden, lütfen API kullanımınızı API Referans Kılavuzu'nda belgelenen API ile sınırlandırın. .
Örneğin, PubAdsService'in tam olarak yüklendiği zamanı tespit etmek,
refresh() numaralı telefonu aramak için sipariş verin.
Hatalı kod snippet'i örneği
// Incorrect: Relying on an obfuscated property.if(googletag.pubads().a!=null){functionProcessingGPT();}
Hatayı düzeltmek için önerilen yollar
// Correct: Relying on public GPT API methods// (i.e. googletag.pubadsReady in this case).if(window.googletag&&googletag.pubadsReady){functionProcessingGPT();}
Düzeltmenin açıklaması / açıklaması
Yalnızca herkese açık API'ye güvenilebilir. PubAdsService'in tam olarak yüklenip yüklenmediğini algılama amacıyla googletag.pubadsReady adlı bir boole değeri kullanırız.
5. senaryo: GPT'nin herhangi bir işlevinin veya değişkeninin üzerine yazma
Genel kullanım alanı açıklaması
GPT tarafından kullanılan herhangi bir işlevin veya değişkenin üzerine yazmaya dayalı kullanım alanları her an bozulabilir
desteklenmediğinden emin olun. GPT'nin dahili yapısında yapılan zamanlama değişiklikleri, bu tür yanlış davranışları kesintilerle ortaya çıkarabilir.
Hata içeren örnek kod snippet'i
// Incorrect: Haphazardly overwriting a googletag.* property.googletag.cmd=[];
Hatayı düzeltmek için önerilen yollar
// Correct: Never overwrite googletag.* properties if they already exist.// Always check before assigning to them.googletag.cmd=googletag.cmd||[];
6. Senaryo: GPT'ye yapılan çağrıları yanlış sıralama
Karmaşık kullanım alanı açıklaması
GPT'nin dahili bileşenleri geliştikçe yarış koşulları kesintilere neden olabilir. Yürütmedeki belirli zamanlamalar nedeniyle işlevsel olan ancak yanlış sıralanmış bir ifade grubu gelecekte çalışmayabilir.
Hatalı kod snippet'i örneği
// Incorrect: Setting page-level key-value targeting after calling// googletag.enableServices().googletag.enableServices();googletag.defineSlot(...);googletag.pubads().setTargeting(e,a);
Hatayı düzeltmek için önerilen yollar
// Correct: Setting page-level key-value targeting before calling// googletag.enableServices().googletag.pubads().setTargeting(e,a);googletag.defineSlot(...);googletag.enableServices();
Düzeltmenin açıklaması
GPT'nin normal zamanlamasına uyum sağlayarak yarış şartlarından kaçının. Geçerli kısmi sipariş örnekleri:
Ekranı-Tanımlama-Etkinleştir
Sayfa düzeyinde ayarları tanımlama
Slot tanımlama
enableServices()
Görüntülü reklam alanları
Ekranı-Tanımlama-Etkinleştir
Sayfa düzeyinde ayarları tanımlama
enableServices()
Slotları tanımlama
Ekran yuvaları
7. Senaryo: Kapanışlar ve JavaScript değişken kapsamı belirlemeyi hatalı kullanma
Karmaşık kullanım alanı açıklaması
JavaScript değişken kapsamı ve değişkenlerin değeri hakkında yanlış varsayımlar
googletag.cmd.push parametresine geçirilen işlevde yakalandı.
JavaScript'te, kapanışlar değişkenleri değere göre değil referansa göre yakalar. Bunun anlamı şudur:
bir değişken yeniden atanırsa, bu durumda fonksiyon
yakalanan kapatma işlemi daha sonra yürütülür. Bu nedenle, geri çağırma işlevinin hemen mi yoksa gecikmeli mi yürütüldüğüne bağlı olarak, kapatmadaki kodun davranışı değişebilir.
Eşzamansız olarak yüklenen GPT'de, GPT'nin ne kadar hızlı yükleneceğine bağlı olarak komut kuyruğundaki geri çağırma işlevleri hemen yürütülebilir veya yürütülmeyebilir. Önceki
bu da sıraya alınan komutların davranışını değiştirir.
Herhangi bir sorun yaşamamak için kod, komut kuyruğuna yerleştirilen işlevlerin hemen yürütüleceği varsayımı olmadan yazılmalı ve JavaScript'in kapsam kurallarına dikkat edilmelidir.
Senaryo 8: Gösterim çağrısından sonra slot kapsayıcılarını DOM içinde taşıma
Karmaşık kullanım alanı açıklaması
Ekranı çağırdıktan sonra alan kapsayıcılarını DOM'ye taşımak veya eklemek
istenmeyen yeniden düzenleme ve öngörülemeyen davranışlara neden olur.
Hatalı kod snippet'i örneği
// 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"));
Hatayı düzeltmek için önerilen yollar
// 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");
9. senaryo: Tarayıcı API'lerinin üzerine yazma
Karmaşık kullanım alanı açıklaması
GPT'de tarayıcı API'lerinin üzerine yazma (diğer adıyla maymun yamalama, çoklu doldurma) desteklenmez.
Bu uygulama, GPT gibi üçüncü taraf komut dosyalarını beklenmedik şekillerde bozma potansiyeline sahiptir.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-25 UTC."],[[["Avoid unofficial copies of GPT JavaScript libraries, always access them from an official Google domain."],["Utilize `googletag.cmd.push` to queue functions and ensure they execute when GPT is ready, rather than relying on script tag listeners or checking the `googletag` object directly."],["Strictly adhere to the documented GPT API and refrain from relying on obfuscated code or overwriting any GPT functions or variables to prevent breakages."],["Maintain the correct order of GPT calls, like defining page-level settings and slots before enabling services and displaying ads, to avoid race conditions."],["Be mindful of JavaScript variable scoping and closures, especially when using `googletag.cmd.push`, to prevent unexpected behavior due to delayed execution."],["Ensure slot containers are positioned correctly in the DOM before calling `display` to avoid reflows and unpredictable rendering."],["Refrain from overwriting browser APIs, as it can negatively impact the functionality of third-party scripts like GPT."]]],["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"]]