FAQ Google Interactive Media Ads SDK
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
- 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?
- Contoh tag tersedia di halaman contoh tag.
- 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.
});
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-31 UTC.
[null,null,["Terakhir diperbarui pada 2025-08-31 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,["# Google Interactive Media Ads SDK FAQs\n\n- [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 ```"]]