Por que não estou recebendo de volta anúncios de todos os formatos?
As tags de anúncio de teste são configuradas para sempre retornar anúncios para solicitações válidas. Isso é tem como objetivo facilitar a integração e facilitar o teste de como seu player solicita e renderiza anúncios. No entanto, eles nem sempre estão disponíveis para seu site, conta ou bloco de anúncios. Se a integração está funcionando corretamente para a tag de teste, mas não para sua própria tag, a causa pode ser o seguinte:
Você está veiculando vídeos em um formato não compatível com seu ambiente. Por exemplo: se você veicula apenas anúncios HTML5 para iOS ou Android.
Se você usa o Ad Manager, seu ID de editor pode não ter anúncios segmentados para por enquanto. Além disso, verifique se você aprovou os anúncios relevantes e criativos no Ad Manager.
Se você usar o Google AdSense, os critérios de segmentação de seu site ou página de teste podem não pode ter anúncios ativos. A causa mais comum é o uso de sites privados e não rastreados.
Se você usa o Gerenciamento de parceiros de rede do Ad Exchange, descriptionURL não está definido ou não está na lista de gerenciamento de domínio, os anúncios não serão exibidos nela.
Verifique os limites de minCPM definidos no Ad Exchange Video. Um CPM bastante alto pode resultar em taxas de preenchimento muito baixas. Para corrigir isso, tente remover o minCPM ou remover o parâmetro do bloco de anúncios da solicitação de anúncio. (ou seja, slotname) para verificar se isso está afetando a taxa de preenchimento.
Como é um bom descriptionUrl?
Para ser mais eficaz, o conteúdo da página que descriptionUrl aponta não deve ser uma coleção de palavras ou frases, mas de um a três parágrafos descrevendo o conteúdo e seu papel ao fornecê-lo. Um método que deu certo no passado é unir descriptionUrl dinamicamente o conteúdo da página a partir de blocos predefinidos. Por exemplo, algumas frases sobre o conteúdo, algumas frases sobre sua a oferta do site e, em seguida, alguns snippets predefinidos associados a cada Canal do Google AdSense (como "Entretenimento" ou "Esportes"). Como resultado, cada parte conteúdo tem um descriptionUrl razoavelmente distinto associado a ela fornece informações gerais (como descritores de gênero) e como informações específicas (conteúdo diretamente sobre o conteúdo).
Esse HTML de metadados deve ser simples, por exemplo:
<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>
Por que estou recebendo o erro "A resposta do anúncio não contém um tipo de anúncio válido"?
Este erro geralmente aparece porque nenhum anúncio foi segmentado para a a publisherId específica do período. Esta condição pode variar ao longo do dia ou por vários dias, à medida que as campanhas começam e terminam. Verifique se o anúncio que você deseja segmentar não expirou e se o critérios de segmentação do anúncio estão corretos. Desde que os anúncios sejam solicitados, recebidos e renderizados corretamente usando publisherId de teste, pode ter certeza de que esses anúncios devidamente tratados usando seu publisherId ativo quando os anúncios estiverem disponíveis.
Vocês têm uma tag de anúncio em vídeo do Ad Manager que eu possa usar para testes?
Tags de exemplo estão disponíveis na página de tags de exemplo.
Devo definir adSlotWidth e adSlotHeight como iguais? como sz na minha tag de anúncio do Ad Manager?
Não necessariamente. adSlotWidth e adSlotHeight deve ser definida de acordo com a largura/altura do player ou da área em que você deseja exibir seus anúncios se enchem. Eles são usados pelo Google AdSense para determinar quais anúncios estão disponíveis para caber nesse espaço. O par de chave-valor sz na sua tag de anúncio do Ad Manager está um parâmetro de segmentação e não afeta necessariamente o criativo veiculado (mais informações abaixo).
A tag de anúncio de demonstração parece excelente, mas quando eu a troco por minha tag de anúncio, não aparece nenhum anúncio.
Verifique se algo é trafegado conforme a tag de anúncio que você a solicitação. A maneira mais fácil de descobrir é observar o tráfego HTTP. Se um imagem grey.gif de 1 x 1 pixel for retornada em um bloco âncora HTML, verifique a segmentação no Ad Manager.
Quero solicitar anúncios usando a mesma tag mais de uma vez, mas só recebo anúncios da primeira solicitação. Como resolvo esse problema?
Quando você solicita anúncios mais de uma vez, precisa informar o servidor de anúncios. que essas solicitações são legítimas, e não duplicatas acidentais. O SDK faz isso por você com duas chamadas de API rápidas:
Chame destroy() na instância do AdsManager. Isso evita que anúncios finais sejam reproduzidos quando você faz a chamada abaixo para contentComplete(): Você recebe um novo AdsManager quando fizer sua próxima solicitação.
Ligue para contentComplete() no seu AdsLoader instância. Isso redefine o SDK para que a nova solicitação de anúncio não se pareça com um duplicada do anterior.
. Depois de fazer as duas chamadas acima, você pode chamar requestAds() em sua instância do AdsLoader para receber outro conjunto de anúncios novo vídeo.
Como solicito anúncios de sobreposição e de espaço completo do Google AdSense usando o SDK do IMA?
Para solicitar anúncios do Google AdSense usando o SDK, primeiro você precisa de uma conta do AdSense tag de anúncio padrão. Saiba mais sobre isso na página do Google AdSense para a página "Vídeo". Depois de conseguir a tag, faça o seguinte: etapas para fazer uma solicitação de anúncio de sobreposição ou de espaço inteiro:
Anúncios overlay
No AdsRequest, defina os ViewModes como NORMAL.
Na sua tag de anúncio, adicione o parâmetro overlay=1.
. Anúncios de espaço inteiro
No AdsRequest, defina os ViewModes como FULLSCREEN.
Na sua tag de anúncio, adicione o parâmetro overlay=0.
Estou recebendo uma mensagem de "URL de clique inválido" quando clico no anúncio. Qual poderia ser a causa?
A causa mais comum desse erro é um clique com escape incorreto URL. Se você estiver vendo esse erro, verifique se a taxa de cliques O URL tem o escape adequado na resposta VAST.
Por que vejo a mensagem "Documento VAST vazio" erro?
Este erro ocorre quando a tag de anúncio retorna um documento VAST vazio, indicando que o anúncio não foi veiculado corretamente. Fale com seu gerente de contas ou representante do servidor de anúncios para saber por que sua tag de anúncio não está funcionando.
Posso mudar o tamanho/texto da caixa Skip Ad ou outros elementos da interface?
Os SDKs do IMA não são compatíveis com a alteração do layout, tamanho ou conteúdo de elementos da interface. Para mais detalhes sobre elementos da interface, consulte AdsManager.uiElements.
Os controles de vídeo nativos são compatíveis com o SDK de HTML5?
Não, o SDK de HTML5 não é compatível com controles nativos.
Estou vendo a mensagem "Falha ao executar 'play' em "HTMLMediaElement": a API só pode ser iniciada por um gesto do usuário" na minha implementação de HTML5. Como resolvo esse problema?
Em dispositivos móveis, você precisa chamar adDisplayContainer.initialize(). como resultado de uma ação do usuário (como um toque). Se você estiver estiver vendo esse erro, é provável que a chamada seja feita em um contexto não iniciado pelo usuário. Observe que precisa ser o resultado direto de uma ação do usuário. Por exemplo, se você responder a um "tocar" evento reproduzindo um vídeo e, em seguida, use o botão "Reproduzir" evento para chamar initialize(), o SDK retornará esse erro. Você deve chamar initialize() como o resultado do próprio evento de toque.
Como lidar com o foco do teclado em cliques em anúncios?
Se você usar os controles do teclado no player, poderá perceber que eles não funcionarão mais. após cliques na adDisplayContainer. Isso acontece porque, quando um anúncio é clicado o foco do teclado será alterado para o iframe do IMA. Para manter o foco do teclado no player de conteúdo, utilize o CLICK para transferir o foco do teclado de volta para o contêiner desejado. Confira o snippet de código a seguir Mais detalhes:
adsManager.addEventListener( google.ima.AdEvent.Type.CLICK, function(){ window.focus(); // Or another method to return focus to the desired container. });
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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 ```"]]