Pakiet Google IMA SDK – najczęstsze pytania
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
- Dlaczego nie otrzymuję reklam we wszystkich formatach?
-
Testowe tagi reklam są skonfigurowane tak, aby zawsze zwracać reklamy dla prawidłowych żądań. To jest
które ułatwiają integrację i pozwalają sprawdzić,
wysyła żądania i renderuje reklamy. Jednak reklamy nie zawsze są dostępne w każdym
dla witryny, konta lub jednostki reklamowej. Jeśli integracja działa
prawidłowo w przypadku tagu testowego, ale nie Twojego własnego, przyczyną może być jedna z
następujące:
- W swoim środowisku udostępniasz filmy w nieobsługiwanym formacie. Przykład:
wyświetlasz tylko reklamy HTML5 w systemie iOS lub na Androidzie.
- Jeśli korzystasz z Ad Managera, identyfikator wydawcy może nie zawierać żadnych reklam kierowanych na
w tym momencie. Sprawdź też, czy zostały zatwierdzone odpowiednie reklamy.
kreacje w usłudze Ad Manager.
- Jeśli korzystasz z AdSense, kryteria kierowania
Twojej witryny lub strony testowej mogą
nie może mieć żadnych aktywnych reklam. Najczęstszą przyczyną jest użycie funkcji
prywatnych, niezindeksowanych witryn.
- Jeśli korzystasz z Zarządzania partnerami sieci Ad Exchange
Sieć
descriptionURL
nie została ustawiona lub nie należy do niej ani nie jest przez nią zarządzana
do zarządzania domenami, w którym nie są wyświetlane reklamy.
- Sprawdź progi minCPM określone w Ad Exchange dla wideo. O
dość wysoki CPM może przełożyć się na bardzo niskie współczynniki wypełnienia. Aby to naprawić, spróbuj wykonać jedną z tych czynności:
usunięcie min.CPM lub parametru jednostki reklamowej z żądania reklamy;
(tj. nazwaboksu), by sprawdzić, czy ma to wpływ na współczynnik wypełnienia.
- Jak wygląda dobry
descriptionUrl
?
-
W celu zapewnienia maksymalnej skuteczności zawartość strony, która
descriptionUrl
nie powinien być zbiorem słów czy wyrażeń, lecz
1–3 akapity szczegółowo opisujące treść i Twoją rolę w ich udostępnianiu.
Jedną z metod sprawdzających się w przeszłości jest łączenie elementów
descriptionUrl
treści strony dynamicznie ze wstępnie zdefiniowanych blokad.
Na przykład kilka zdań o treści, kilka zdań o Twoim
oraz kilka wstępnie zdefiniowanych fragmentów kodu powiązanych z każdym
kanał AdSense (np. „Rozrywka” lub „Sport”). W efekcie każdy element
treści mają dość odrębne właściwości descriptionUrl
powiązane z
Zawiera zarówno ogólne informacje (np. deskryptory gatunków), jak i
jako konkretne informacje (bezpośrednio o treści).
Ten kod HTML metadanych powinien być prosty, na przykład:
<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>
- Dlaczego pojawia się błąd „Odpowiedź na reklamę nie zawiera prawidłowego typu reklamy”?
- Ten błąd pojawia się zwykle wtedy, gdy żadne reklamy nie są kierowane na
określony element
publisherId
(w danym okresie). Ten warunek
mogą zmieniać się w ciągu dnia lub nawet przez kilka dni, w miarę rozpoczęcia i zakończenia kampanii.
Należy sprawdzić, czy reklama, na którą chcesz kierować reklamy, nie wygasła i czy
są prawidłowe kryteria kierowania reklam.
Dopóki reklamy są odpowiednio żądane, otrzymywane i renderowane za pomocą
testowym publisherId
, możesz mieć pewność, że
poprawnie obsługiwane za pomocą aktywnego publisherId
, gdy reklamy są
i dostępności informacji.
- Czy masz tag reklamy wideo Ad Managera, którego możesz użyć do testowania?
- Przykładowe tagi są dostępne na stronie przykładowych tagów.
- Czy parametry
adSlotWidth
i adSlotHeight
mają być takie same
jako wartości sz
w tagu reklamy Ad Managera?
- Niekoniecznie.
adSlotWidth
i adSlotHeight
musi być ustawiona na szerokość/wysokość odtwarzacza lub obszar, w którym mają się wyświetlać reklamy;
wypełnienie. Są one wykorzystywane przez AdSense do określenia, które reklamy mogą być dopasowane
w tej przestrzeni. Para klucz-wartość sz
w tagu reklamy Ad Managera to
parametru kierowania i niekoniecznie wpływa na wyświetlane kreacje.
(więcej informacji poniżej).
- Prezentacja tagu reklamy wygląda znakomicie, ale gdy zamienię go z tagiem reklamy, reklama się nie pojawi.
-
Upewnij się, że coś jest trafikowane do tagu reklamy, którego używasz
z prośbą o zgodę na wykorzystanie danych. Najłatwiej to sprawdzić. Jeśli
obraz 1 x 1 piksel szary.gif jest zwracany w bloku kotwicy HTML,
musisz sprawdzić ustawienia kierowania w usłudze Ad Manager.
- Chcę wysłać żądania reklam o tym samym tagu więcej niż raz, ale widzę tylko reklamy z pierwszej listy
użytkownika. Jak rozwiązać ten problem?
-
Gdy wysyłasz żądanie reklamy więcej niż raz, musisz powiadomić o tym serwer reklam
że są to prawidłowe żądania, a nie przypadkowe duplikaty. Pakiet SDK
robi to za pomocą dwóch szybkich wywołań interfejsu API:
- Wywołaj metodę
destroy()
w instancji AdsManager
.
Uniemożliwi to odtwarzanie reklam po filmie, gdy wykonasz poniższe wywołanie do
contentComplete()
Otrzymujesz nowy produkt AdsManager
przy zgłaszaniu kolejnej prośby.
- Zadzwoń do firmy
contentComplete()
na urządzeniu AdsLoader
instancji. Resetuje to pakiet SDK i nowe żądanie reklamy nie będzie wyglądać jak
duplikat poprzedniego.
.
Po wykonaniu dwóch powyższych połączeń możesz zadzwonić pod numer requestAds()
pod numerem
wystąpienia AdsLoader
, aby uruchomić kolejny zestaw reklam
nowy film.
- Jak wysłać żądanie reklam AdSense nakładkowych i zajmujących pełny boks reklamowy za pomocą pakietu IMA SDK?
-
Aby wysyłać żądania reklam AdSense za pomocą pakietu SDK, musisz najpierw uzyskać
tagu reklamy. Więcej informacji znajdziesz na stronie AdSense
strony filmu. Po otrzymaniu tagu wykonaj te czynności
jak utworzyć nakładkę reklamową lub żądanie reklamy zajmującej cały boks reklamowy:
Nakładki reklamowe
- W
AdsRequest
ustaw tryby widoku na
NORMAL
- Do tagu reklamy dodaj parametr
overlay=1
.
.
Reklamy zajmujące cały boks reklamowy
.
- W
AdsRequest
ustaw tryby widoku na
FULLSCREEN
- Do tagu reklamy dodaj parametr
overlay=0
.
- Otrzymuję komunikat „Nieprawidłowy docelowy URL” gdy kliknę swoją reklamę. Co może być tego przyczyną?
-
Najczęstszą przyczyną tego błędu jest nieprawidłowa zmiana znaczenia kliknięcia
Adres URL. W przypadku tego błędu należy sprawdzić, czy klikalność
Adres URL w odpowiedzi VAST zawiera odpowiednie kody zmiany znaczenia.
- Dlaczego widzę „Dokument VAST jest pusty” ?
- Ten błąd występuje, gdy tag reklamy zwraca pusty dokument VAST, co oznacza
że reklama nie wyświetliła się prawidłowo. Skontaktuj się z menedżerem konta
lub przedstawicielem serwera reklam, by sprawdzić, dlaczego tag reklamy nie działa.
- Czy mogę zmienić rozmiar/tekst pola Pomiń reklamę lub innych elementów interfejsu?
- Pakiety IMA SDK nie obsługują zmiany układu, rozmiaru ani zawartości elementów interfejsu.
Więcej informacji o elementach interfejsu:
AdsManager.uiElements
.
- Czy pakiet SDK HTML5 obsługuje natywne elementy sterujące wideo?
-
Nie. Pakiet SDK HTML5 nie obsługuje natywnych elementów sterujących.
- Wyświetla się komunikat „Nie udało się wykonać polecenia „play” w „HTMLMediaElement”: interfejs API można zainicjować tylko
gestem użytkownika”. w implementacji HTML5. Jak rozwiązać ten problem?
-
Na urządzeniach mobilnych musisz zadzwonić pod numer
adDisplayContainer.initialize()
.
w wyniku działania użytkownika (np. kliknięcia). Jeśli
ten błąd, prawdopodobnie oznacza, że wywołujesz go w kontekście niezainicjowanym przez użytkownika. Pamiętaj, że
musi być bezpośrednim wynikiem działania użytkownika. Jeśli na przykład odpowiesz na
„dotknij” odtwarzając film, a potem używając przycisku „Odtwórz” zdarzenie, aby zadzwonić
initialize()
, SDK zwraca ten błąd. Musisz wywołać funkcję initialize()
jako
w wyniku zdarzenia kliknięcia.
- Jak obsługiwać kliknięcia reklam za pomocą klawiatury?
-
Jeśli korzystasz z klawiatury w odtwarzaczu, możesz zauważyć, że przestaną one działać
następujące kliknięcia:
adDisplayContainer
. To dlatego, że po kliknięciu reklamy
sterowanie za pomocą klawiatury zostanie przełączone na element iframe IMA. Aby utrzymać zaznaczenie w odtwarzaczu treści za pomocą klawiatury,
użyj
CLICK
aby przenieść zaznaczenie z klawiatury z powrotem do wybranego kontenera. Zobacz ten fragment kodu dla:
więcej szczegółów:
adsManager.addEventListener(
google.ima.AdEvent.Type.CLICK,
function(){
window.focus();
// Or another method to return focus to the desired container.
});
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-08-31 UTC.
[null,null,["Ostatnia aktualizacja: 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 ```"]]