Untuk mendiskusikan dan memberikan masukan tentang produk kami, bergabunglah ke channel Discord Ad Manager resmi di server Komunitas Iklan dan Pengukuran Google.
Mengapa iklan saya tidak ditampilkan lagi untuk semua format?
Tag iklan pengujian disiapkan agar selalu menampilkan iklan untuk permintaan yang valid. Ini adalah yang dimaksudkan untuk memfasilitasi integrasi dan meminta dan merender iklan. Namun, iklan tidak selalu tersedia di setiap untuk situs, akun, atau unit iklan Anda. Jika integrasi Anda berfungsi untuk tag pengujian, tetapi tidak untuk tag Anda sendiri, penyebabnya mungkin salah satu hal berikut:
Anda menayangkan video dengan format yang tidak didukung ke lingkungan Anda. Misalnya, Anda hanya menayangkan iklan HTML5 ke iOS atau Android.
Jika Anda menggunakan Ad Manager, ID penayang Anda tidak boleh memiliki iklan yang ditargetkan ke pada saat ini. Selain itu, pastikan Anda telah menyetujui iklan yang relevan dan materi iklan di Ad Manager.
Jika Anda menggunakan AdSense, kriteria penargetan untuk situs atau halaman percobaan mungkin tidak memiliki iklan aktif. Penyebab yang paling umum adalah penggunaan situs pribadi yang tidak di-crawl.
Jika Anda menggunakan Pengelolaan Partner Jaringan Ad Exchange dan descriptionURL tidak ditetapkan atau tidak dimiliki atau dioperasikan daftar pengelolaan domain, iklan tidak ditayangkan ke sini.
Periksa nilai minimum minCPM yang ditentukan dalam Video Ad Exchange. J CPM yang cukup tinggi dapat menghasilkan rasio pengisian yang sangat rendah. Untuk memperbaikinya, coba menghapus CPM min. atau menghapus parameter unit iklan dari permintaan iklan (yaitu, slotname) untuk memverifikasi apakah ini memengaruhi rasio pengisian.
Seperti apa tampilan descriptionUrl yang baik?
Agar lebih efektif, konten halaman yang descriptionUrl sebaiknya tidak berupa kumpulan kata atau frasa, melainkan Buat 1-3 paragraf yang sebenarnya menggambarkan konten dan peran Anda dalam menyediakannya. Salah satu metode yang telah berhasil di masa lalu adalah dengan menggabungkan Konten halaman descriptionUrl secara dinamis dari pemblokiran yang telah ditentukan sebelumnya. Misalnya, beberapa kalimat tentang konten, beberapa kalimat tentang yang ditawarkan situs tersebut, lalu beberapa cuplikan singkat yang terkait Saluran AdSense (seperti "Hiburan" atau "Olahraga"). Hasilnya, setiap bagian dari konten memiliki descriptionUrl yang cukup berbeda, yang terkait dengan yang memberikan informasi umum (seperti deskriptor genre) sebagai informasi spesifik (konten tentang konten secara langsung).
HTML metadata ini harus sederhana, misalnya:
<html> <head> <title>Domain.com - Your tag line here!</title> </head> <body> <h1>Descriptions</h1> <h2>About this Content</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...</p> <h2>About Domain.com</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...</p> </body> </html>
Mengapa saya menerima pesan error "Respons iklan tidak berisi jenis iklan yang valid"?
Error ini biasanya muncul karena tidak ada iklan yang ditargetkan ke publisherId spesifik (untuk jangka waktu tertentu). Kondisi ini dapat bervariasi sepanjang hari, atau selama beberapa hari saat kampanye dimulai dan berakhir. Anda harus memeriksa bahwa iklan yang ingin Anda targetkan belum kedaluwarsa dan bahwa kriteria penargetan iklan Anda sudah benar. Selama iklan diminta, diterima, dan ditampilkan dengan benar menggunakan pengujian publisherId, Anda dapat memastikan bahwa iklan-iklan ini ditangani dengan benar menggunakan publisherId aktif saat iklan yang tersedia.
Apakah Anda memiliki tag iklan video Ad Manager yang dapat saya gunakan untuk pengujian?
Haruskah saya menyetel adSlotWidth dan adSlotHeight ke nilai yang sama seperti sz di tag iklan Ad Manager saya?
Belum tentu. adSlotWidth dan adSlotHeight harus disetel ke lebar/tinggi pemutar atau area yang diinginkan untuk iklan akan terisi. Istilah ini digunakan oleh AdSense untuk menentukan iklan mana yang sesuai ke bidang tersebut. Pasangan kunci/nilai sz di tag iklan Ad Manager Anda adalah parameter penargetan dan tidak memengaruhi materi iklan yang ditayangkan (informasi selengkapnya ada di bawah).
Tag iklan demo terlihat bagus, tetapi ketika saya menggantinya dengan tag iklan, tidak ada iklan yang muncul.
Periksa untuk memastikan bahwa sesuatu diproses ke tag iklan yang Anda diminta. Cara termudah untuk mengetahuinya adalah dengan melihat lalu lintas HTTP. Jika Gambar 1x1 piksel grey.gif ditampilkan dalam blok anchor HTML, maka Anda harus memeriksa penargetan di Ad Manager.
Saya ingin meminta iklan menggunakan tag yang sama lebih dari sekali, tetapi saya hanya mendapatkan iklan untuk permintaan. Bagaimana cara mengatasinya?
Jika Anda meminta iklan lebih dari sekali, Anda harus memberi tahu server iklan bahwa permintaan ini adalah permintaan yang sah, dan bukan duplikat yang tidak disengaja. SDK melakukannya dengan dua panggilan API cepat:
Panggil destroy() pada instance AdsManager Anda. Tindakan ini mencegah post-roll diputar saat Anda melakukan panggilan di bawah ini ke contentComplete(). Anda mendapatkan AdsManager baru ketika Anda membuat permintaan berikutnya.
Telepon contentComplete() di AdsLoader Anda di instance Compute Engine. Ini akan menyetel ulang SDK sehingga permintaan iklan baru tidak terlihat seperti duplikat dari yang sebelumnya.
Setelah melakukan dua panggilan di atas, Anda dapat memanggil requestAds() di instance AdsLoader Anda guna mendapatkan kumpulan iklan lain untuk diputar untuk video baru.
Bagaimana cara meminta iklan AdSense overlay dan slot penuh menggunakan IMA SDK?
Untuk meminta iklan AdSense menggunakan SDK, Anda harus memperoleh izin AdSense terlebih dahulu tag iklan. Anda dapat mempelajarinya lebih lanjut di AdSense untuk halaman Video. Setelah memiliki tag, Anda harus melakukan hal berikut langkah-langkah untuk membuat permintaan iklan overlay atau slot penuh:
Iklan overlay
Di AdsRequest, tetapkan ViewModes ke NORMAL.
Di tag iklan Anda, tambahkan parameter overlay=1.
Iklan slot penuh
Di AdsRequest, tetapkan ViewModes ke FULLSCREEN.
Di tag iklan Anda, tambahkan parameter overlay=0.
Saya mendapatkan pesan "URL klik-tayang tidak valid" saat saya mengklik iklan. Apa kemungkinan penyebabnya?
Penyebab paling umum untuk kesalahan ini adalah klik-tayang yang di-escape dengan tidak benar . Jika Anda melihat kesalahan ini, periksa untuk memastikan bahwa klik-tayang Anda URL di-escape dengan benar dalam respons VAST Anda.
Mengapa saya melihat "Dokumen VAST Kosong" {i>error<i}?
Error ini terjadi ketika tag iklan menampilkan dokumen VAST kosong, yang menunjukkan bahwa iklan tidak ditayangkan dengan benar. Hubungi Account Manager Anda atau perwakilan server iklan untuk mengetahui penyebab tag iklan tidak berfungsi.
Dapatkah saya mengubah ukuran/teks kotak Lewati Iklan atau elemen UI lainnya?
IMA SDK tidak mendukung perubahan tata letak, ukuran, atau konten elemen UI. Untuk detail selengkapnya tentang elemen UI, lihat AdsManager.uiElements.
Apakah kontrol video native didukung dengan HTML5 SDK?
Tidak, HTML5 SDK tidak mendukung kontrol native.
Saya melihat "Gagal menjalankan 'putar' di 'HTMLMediaElement': API hanya dapat dimulai dengan gestur pengguna" dalam implementasi HTML5. Bagaimana cara mengatasinya?
Di perangkat seluler, Anda harus memanggil adDisplayContainer.initialize() sebagai hasil dari tindakan pengguna (seperti ketukan). Jika Anda melihat {i>error<i} ini, kemungkinan besar Anda memanggilnya pada konteks yang tidak dimulai oleh pengguna. Perhatikan bahwa harus merupakan hasil langsung dari tindakan pengguna. Misalnya, jika Anda menanggapi "ketuk" peristiwa dengan memutar video, lalu menggunakan "putar" pemutar video acara untuk dipanggil initialize(), SDK akan menampilkan error ini. Anda harus memanggil initialize() sebagai sebagai hasil dari peristiwa ketuk itu sendiri.
Bagaimana cara menangani fokus keyboard pada klik iklan?
Jika Anda menggunakan kontrol keyboard untuk pemutar, Anda mungkin menyadari bahwa kontrol tersebut tidak akan berfungsi lagi mengikuti klik pada adDisplayContainer. Hal ini karena, setelah iklan diklik fokus keyboard dialihkan ke iframe IMA. Untuk mempertahankan fokus keyboard pada pemutar konten, harap memanfaatkan CLICK untuk mentransfer fokus keyboard kembali ke container yang diinginkan. Lihat cuplikan kode berikut untuk detail selengkapnya:
adsManager.addEventListener( google.ima.AdEvent.Type.CLICK, function(){ window.focus(); // Or another method to return focus to the desired container. });
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-17 UTC."],[[["\u003cp\u003eThe IMA HTML5 SDK facilitates ad integration and testing, but live ads depend on factors like ad targeting, formats, and publisher settings.\u003c/p\u003e\n"],["\u003cp\u003eIf your ad tag isn't working, review your Ad Manager targeting, ensure your descriptionUrl is properly set up, and check for any errors in your VAST response.\u003c/p\u003e\n"],["\u003cp\u003eFor repeated ad requests, use \u003ccode\u003edestroy()\u003c/code\u003e on the AdsManager and \u003ccode\u003econtentComplete()\u003c/code\u003e on the AdsLoader to avoid duplicate requests.\u003c/p\u003e\n"],["\u003cp\u003eNative video controls are not supported with the HTML5 SDK, and on mobile devices, \u003ccode\u003eadDisplayContainer.initialize()\u003c/code\u003e must be called directly as a result of a user action.\u003c/p\u003e\n"],["\u003cp\u003eKeyboard focus can be managed by utilizing the CLICK event and transferring it back to the content player.\u003c/p\u003e\n"]]],[],null,["- [Why am I not getting ads back for all formats?](#1)\n- [What does a good descriptionUrl look like?](#2)\n- [Why am I receiving the error \"Ad response does not contain a valid ad type\"?](#3)\n- [Do you have an Ad Manager video ad tag that I can use for testing?](#4)\n- [Should I set the adSlotWidth and adSlotHeight to the same values\n as the sz in my Ad Manager ad tag?](#5)\n- [The demo ad tag looks great, but when I switch it with my ad tag,\n no ad appears.](#7)\n- [I want to request ads using the same tag more than once, but I\n only get ads for my first request. How do I fix this?](#8)\n- [How do I request overlay and full slot AdSense ads using the IMA\n SDK?](#9)\n- [I'm getting an \"Invalid clickthrough URL\" error when I click on my\n ad. What could be the cause?](#10)\n- [Why do I see a \"VAST Document Empty\" error?](#12)\n- [Can I change the size/text of the \"Skip Ad\" box or other UI elements?](#13)\n- [Are native video controls supported with the HTML5 SDK?](#15)\n- [I'm seeing \"Failed to execute 'play' on 'HTMLMediaElement': API can only be\n initiated by a user gesture\" in my HTML5 implementation. How do I fix this?](#17)\n- [How do I handle keyboard focus on ad clicks?](#19)\n\n*** ** * ** ***\n\nWhy am I not getting ads back for all formats?\n:\n The test ad tags are set up to always return ads for valid requests. This is\n meant to facilitate integration and make it easier to test how your player\n requests and renders ads. However, ads are not always available in every\n format for your site, account, or ad unit. If your integration is working\n properly for the test tag but not for your own tag, the cause may be one of\n the following:\n\n - You're serving videos of an unsupported format to your environment. For example, you're serving only HTML5 ads to iOS or Android.\n - If you're using Ad Manager, your publisher ID may not have any ads targeted to it at this time. Also, ensure that you have approved the relevant ads and creatives in Ad Manager.\n - If you're using AdSense, the targeting criteria for your site or test page may not have any active advertisements. The most common cause is the use of private, uncrawled websites.\n - If you're using Ad Exchange Network Partner Management and `descriptionURL` is not set or is not on the owned or operated domains management list, ads do not serve to this.\n - Check the *minCPM* thresholds defined in Ad Exchange Video. A fairly high CPM may result in very low fill rates. To correct this, try either removing the minCPM or removing the ad unit parameter from the ad request (i.e., slotname) to verify whether this is affecting the fill rate.\n\nWhat does a good `descriptionUrl` look like?\n:\n To be most effective, the content of the page that `descriptionUrl`\n points to shouldn't be a collection of words or phrases but rather\n 1-3 paragraphs actually describing the content and your role in providing it.\n One method that has been successful in the past is to stitch together\n `descriptionUrl` page content dynamically from predefined blocks.\n For example, a few sentences about the content, a few sentences about your\n site's offering, and then a few predefined snippets associated with each\n AdSense channel (like \"Entertainment\" or \"Sports\"). As a result, each piece of\n content has a reasonably distinct `descriptionUrl` associated with\n it that provides both general information (such as genre descriptors) as well\n as specific information (content about the content directly).\n\n This metadata HTML should be simple, for example:\n\n ```text\n \u003chtml\u003e\n \u003chead\u003e\n \u003ctitle\u003eDomain.com - Your tag line here!\u003c/title\u003e\n \u003c/head\u003e\n \u003cbody\u003e\n \u003ch1\u003eDescriptions\u003c/h1\u003e\n \u003ch2\u003eAbout this Content\u003c/h2\u003e\n \u003cp\u003eLorem ipsum dolor sit amet, consectetur adipiscing elit. ...\u003c/p\u003e\n \u003ch2\u003eAbout Domain.com\u003c/h2\u003e\n \u003cp\u003eLorem ipsum dolor sit amet, consectetur adipiscing elit. ...\u003c/p\u003e\n \u003c/body\u003e\n \u003c/html\u003e\n \n ```\n\nWhy am I receiving the error \"Ad response does not contain a valid ad type\"?\n: This error generally appears because no ads have been targeted to the\n specific `publisherId` (for the given time period). This condition\n may vary throughout the day, or over several days as campaigns begin and end.\n You should check that the ad you wish to target has not expired and that the\n ad targeting criteria are correct.\n As long as ads are properly requested, received, and rendered using\n the test `publisherId`, you can be sure that these ads are\n properly handled using your live `publisherId` when the ads are\n available.\n\nDo you have an Ad Manager video ad tag that I can use for testing?\n: Sample tags are available on the [sample tags](/interactive-media-ads/docs/sdks/html5/tags) page.\n\nShould I set the `adSlotWidth` and `adSlotHeight` to the same\nvalues as the `sz` in my Ad Manager ad tag?\n: Not necessarily. The `adSlotWidth` and `adSlotHeight`\n must be set to the width/height of the player or area you want your ads to\n fill. They are used by AdSense to determine which ads are available to fit\n into that space. The `sz` key/value pair in your Ad Manager ad tag is\n a targeting parameter and does not necessarily affect the creative served\n (more information below).\n\nThe demo ad tag looks great, but when I switch it with my ad tag, no ad appears.\n:\n Check to ensure that something is trafficked to the ad tag you are\n requesting. The easiest way to find out is to watch the HTTP traffic. If a\n **1x1 pixel grey.gif** image is returned within an HTML anchor block,\n then you need to check your targeting in Ad Manager.\n\nI want to request ads using the same tag more than once, but I only get ads for my first\nrequest. How do I fix this?\n:\n When you request ads more than once, you need to let the ad server know\n that these are legitimate requests, and not accidental duplicates. The SDK\n does this for you with two quick API calls:\n\n 1. Call `destroy()` on your `AdsManager` instance. This prevents any post-rolls from playing when you make the below call to `contentComplete()`. You get a new `AdsManager` when you make your next request.\n 2. Call `contentComplete()` on your `AdsLoader` instance. This resets the SDK so the new ad request doesn't look like a duplicate of the previous one.\n\n\n After making the two calls above, you can call `requestAds()` on\n your `AdsLoader` instance to get another set of ads to play for your\n new video.\n\nHow do I request overlay and full slot AdSense ads using the IMA SDK?\n\n: To request AdSense ads using the SDK, you need to first obtain an AdSense\n ad tag. You can learn more about that on the [AdSense\n for Video page](//support.google.com/adsense/answer/1705822). Once you have your tag, you need to take the following\n steps to make either an overlay or a full slot ad request:\n\n **Overlay ads**\n\n 1. In your `AdsRequest`, set your ViewModes to `NORMAL`.\n 2. In your ad tag, add the parameter `overlay=1`.\n\n **Full slot ads**\n\n 1. In your `AdsRequest`, set your ViewModes to `FULLSCREEN`.\n 2. In your ad tag, add the parameter `overlay=0`.\n\nI'm getting an \"Invalid clickthrough URL\" error when I click on my ad. What could be the cause?\n:\n The most common cause for this error is an improperly escaped clickthrough\n URL. If you're seeing this error, check to make sure that your clickthrough\n URL is properly escaped in your VAST response.\n\nWhy do I see a \"VAST Document Empty\" error?\n: This error occurs when the ad tag returns an empty VAST document, indicating\n that the ad was not served properly. Talk to your account manager\n or ad server representative to see why your ad tag is not working.\n\nCan I change the size/text of the **Skip Ad** box or other UI elements?\n: The IMA SDKs do not support changing the layout, size, or content of UI elements.\n For more details on UI elements, see `AdsManager.uiElements`.\n\nAre native video controls supported with the HTML5 SDK?\n:\n No, the HTML5 SDK does not support native controls.\n\nI'm seeing \"Failed to execute 'play' on 'HTMLMediaElement': API can only be initiated\nby a user gesture\" in my HTML5 implementation. How do I fix this?\n:\n On mobile devices, you must call `adDisplayContainer.initialize()`\n as the result of a user action (such as a tap). If you're\n seeing this error, you're most likely calling it on a non-user-initiated context. Note that it\n must be the **direct** result of a user action. For example, if you respond to a\n \"tap\" event by playing a video, and then use the video player's \"play\" event to call\n `initialize()`, the SDK returns this error. You must call `initialize()` as\n the result of the tap event itself.\n\nHow do I handle keyboard focus on ad clicks?\n:\n If you use keyboard controls for your player you may notice that they will no longer work\n following clicks on the `adDisplayContainer`. This is because, once an ad is clicked\n keyboard focus is switched to the IMA iframe. To keep keyboard focus on the content player, please\n utilize the\n [CLICK](/interactive-media-ads/docs/sdks/html5/client-side/reference/js/google.ima.AdEvent)\n event to transfer keyboard focus back to the desired container. See the following code snippet for\n more details: \n\n ```text\n adsManager.addEventListener(\n google.ima.AdEvent.Type.CLICK,\n function(){\n window.focus();\n // Or another method to return focus to the desired container.\n });\n \n ```"]]