Câu hỏi thường gặp về SDK quảng cáo trên phương tiện truyền thông tương tác của Google
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
- Tại sao tôi không nhận được quảng cáo cho tất cả định dạng?
-
Các thẻ quảng cáo thử nghiệm được thiết lập để luôn trả về quảng cáo cho các yêu cầu hợp lệ. Đây là
nhằm tạo điều kiện tích hợp cũng như giúp thử nghiệm
cách trình phát của bạn
yêu cầu và hiển thị quảng cáo. Tuy nhiên, không phải lúc nào quảng cáo cũng có sẵn ở mọi
cho trang web, tài khoản hoặc đơn vị quảng cáo của mình. Nếu tính năng tích hợp của bạn hoạt động đúng cách cho thẻ thử nghiệm nhưng không hoạt động cho thẻ của riêng bạn, thì nguyên nhân có thể là một trong những nguyên nhân sau:
- Bạn đang phân phối video có định dạng không được hỗ trợ đến môi trường của mình. Ví dụ:
bạn chỉ phân phát quảng cáo HTML5 đến iOS hoặc Android.
- Nếu bạn đang sử dụng Ad Manager, thì mã nhận dạng nhà xuất bản của bạn có thể không có quảng cáo nào được nhắm mục tiêu đến mã nhận dạng đó tại thời điểm này. Ngoài ra, hãy đảm bảo rằng bạn đã phê duyệt các quảng cáo có liên quan và
mẫu quảng cáo trong Ad Manager.
- Nếu bạn đang sử dụng AdSense, tiêu chí nhắm mục tiêu cho trang web hoặc trang thử nghiệm của bạn có thể
không có quảng cáo nào đang hoạt động. Nguyên nhân phổ biến nhất là việc sử dụng các trang web riêng tư, không được thu thập dữ liệu.
- Nếu bạn đang sử dụng Quản lý đối tác mạng Ad Exchange và
descriptionURL
chưa được đặt hoặc không thuộc sở hữu hoặc điều hành
danh sách quản lý miền, quảng cáo sẽ không phân phát tới danh sách này.
- Kiểm tra các ngưỡng minCPM được xác định trong Video Ad Exchange. CPM khá cao có thể dẫn đến tỷ lệ đáp ứng rất thấp. Để khắc phục vấn đề này, hãy thử
xóa minCPM hoặc xóa thông số đơn vị quảng cáo khỏi yêu cầu quảng cáo
(tức là tên vị trí) để xác minh xem điều này có ảnh hưởng đến tỷ lệ lấp đầy hay không.
descriptionUrl
tốt trông như thế nào?
-
Để có hiệu quả nhất, nội dung của trang mà
descriptionUrl
điểm đến không được là một tập hợp các từ hoặc cụm từ mà thay vào đó
1-3 đoạn mô tả chính xác về nội dung và vai trò của bạn trong việc cung cấp nội dung đó.
Một phương pháp đã thành công trước đây là ghép lại với nhau
descriptionUrl
nội dung trang một cách linh động từ các khối được xác định trước.
Ví dụ: một vài câu về nội dung, một vài câu về nội dung mà trang web của bạn cung cấp, sau đó là một vài đoạn mã được xác định trước liên kết với từng kênh AdSense (chẳng hạn như "Giải trí" hoặc "Thể thao"). Do đó, mỗi nội dung đều có một descriptionUrl
riêng biệt liên kết với nội dung đó, cung cấp cả thông tin chung (chẳng hạn như nội dung mô tả thể loại) cũng như thông tin cụ thể (nội dung về nội dung đó).
HTML siêu dữ liệu này phải đơn giản, ví dụ:
<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>
- Tại sao tôi gặp lỗi "Phản hồi quảng cáo không chứa loại quảng cáo hợp lệ"?
- Lỗi này thường xuất hiện vì không có quảng cáo nào được nhắm mục tiêu đến
publisherId
cụ thể (trong khoảng thời gian nhất định). Điều kiện này
có thể thay đổi trong ngày hoặc qua vài ngày khi chiến dịch bắt đầu và kết thúc.
Bạn nên kiểm tra để đảm bảo rằng quảng cáo mà bạn muốn nhắm đến chưa hết hạn và tiêu chí nhắm mục tiêu quảng cáo là chính xác.
Miễn là quảng cáo được yêu cầu, nhận và hiển thị đúng cách bằng cách sử dụng
publisherId
thử nghiệm, bạn có thể chắc chắn rằng những quảng cáo này
được xử lý đúng cách bằng cách sử dụng publisherId
trực tiếp khi quảng cáo
sẵn có.
- Bạn có thẻ quảng cáo dạng video trên Ad Manager mà tôi có thể dùng để thử nghiệm không?
- Bạn có thể xem các thẻ mẫu trên trang thẻ mẫu.
- Tôi có nên đặt
adSlotWidth
và adSlotHeight
thành cùng một giá trị với sz
trong thẻ quảng cáo Ad Manager không?
- Không hẳn. Bạn phải đặt
adSlotWidth
và adSlotHeight
thành chiều rộng/chiều cao của trình phát hoặc khu vực mà bạn muốn quảng cáo của mình lấp đầy. AdSense sử dụng các thông số này để xác định những quảng cáo có thể vừa với không gian đó. Cặp khoá/giá trị sz
trong thẻ quảng cáo Ad Manager là một thông số nhắm mục tiêu và không nhất thiết phải ảnh hưởng đến mẫu quảng cáo được phân phát (xem thêm thông tin bên dưới).
- Thẻ quảng cáo thử nghiệm trông tuyệt vời, nhưng khi tôi chuyển thẻ này bằng thẻ quảng cáo của mình, không có quảng cáo nào xuất hiện.
-
Kiểm tra để đảm bảo rằng có nội dung nào đó được chuyển đến thẻ quảng cáo mà bạn đang yêu cầu. Cách dễ nhất để tìm hiểu là theo dõi lưu lượng truy cập HTTP. Nếu một
Hình ảnh 1x1 pixelgray.gif được trả về trong khối neo HTML,
thì bạn cần kiểm tra việc nhắm mục tiêu trong Ad Manager.
- Tôi muốn yêu cầu quảng cáo sử dụng cùng một thẻ nhiều lần, nhưng tôi chỉ nhận được quảng cáo cho lần đầu tiên
yêu cầu. Làm cách nào để khắc phục lỗi này?
-
Khi yêu cầu quảng cáo nhiều lần, bạn cần cho máy chủ quảng cáo biết
đây là những yêu cầu hợp lệ chứ không phải những yêu cầu trùng lặp do vô tình. SDK sẽ thực hiện việc này cho bạn bằng hai lệnh gọi API nhanh:
- Gọi
destroy()
trên thực thể AdsManager
.
Thao tác này sẽ ngăn mọi quảng cáo sau video phát khi bạn thực hiện lệnh gọi bên dưới đến
contentComplete()
. Bạn sẽ nhận được một AdsManager
mới
khi bạn đưa ra yêu cầu tiếp theo.
- Gọi cho
contentComplete()
trên AdsLoader
của bạn
thực thể. Thao tác này sẽ đặt lại SDK để yêu cầu quảng cáo mới không giống với yêu cầu quảng cáo trước đó.
Sau khi thực hiện hai cuộc gọi trên, bạn có thể gọi requestAds()
trên
bản sao AdsLoader
của bạn để có một tập hợp quảng cáo khác phát cho
video mới.
- Làm cách nào để yêu cầu quảng cáo AdSense dạng lớp phủ và quảng cáo dạng khung đầy đủ bằng SDK IMA?
-
Để yêu cầu quảng cáo AdSense bằng SDK, trước tiên bạn cần có được một tài khoản AdSense
thẻ quảng cáo. Bạn có thể tìm hiểu thêm về vấn đề này trên trang AdSense cho Video. Sau khi có thẻ, bạn cần làm theo các bước sau
các bước để tạo yêu cầu quảng cáo lớp phủ hoặc yêu cầu quảng cáo toàn thời gian:
Quảng cáo lớp phủ
- Trong
AdsRequest
, hãy đặt ViewModes thành NORMAL
.
- Trong thẻ quảng cáo, hãy thêm tham số
overlay=1
.
Quảng cáo toàn thời gian
- Trong
AdsRequest
, hãy đặt ViewModes thành FULLSCREEN
.
- Trong thẻ quảng cáo, hãy thêm thông số
overlay=0
.
- Tôi gặp lỗi "URL của trang đích khi nhấp không hợp lệ" khi nhấp vào quảng cáo của mình. Nguyên nhân có thể là gì?
-
Nguyên nhân phổ biến nhất gây ra lỗi này là do URL lượt nhấp được thoát không đúng cách. Nếu bạn thấy lỗi này, hãy kiểm tra để đảm bảo rằng URL của lượt nhấp được thoát đúng cách trong phản hồi VAST.
- Trong SDK Android và iOS, có cách nào để toàn bộ quảng cáo dạng video đều có thể nhấp được không?
- Đối với tính năng theo dõi lượt nhấp trên toàn bộ video, trải nghiệm tiêu chuẩn của người xem đối với video trên thiết bị di động là khi nhấn vào video, video sẽ tạm dừng hoặc hiển thị các nút điều khiển trình phát. Để tránh người dùng
vô tình nhấp vào quảng cáo khi họ thực sự chỉ muốn truy cập vào
các nút điều khiển trình phát, IMA sử dụng nút Tìm hiểu thêm để cho phép
người dùng nhấp vào quảng cáo và tìm hiểu thêm về sản phẩm đang được quảng cáo.
- Tại sao tôi thấy lỗi "Tài liệu VAST trống"?
- Lỗi này xảy ra khi thẻ quảng cáo trả về một tài liệu VAST trống, cho biết rằng
rằng quảng cáo không được phân phát đúng cách. Trao đổi với người quản lý tài khoản của bạn
hoặc đại diện máy chủ quảng cáo để biết lý do tại sao thẻ quảng cáo của bạn không hoạt động.
- Tôi có thể thay đổi kích thước/văn bản của hộp Bỏ qua quảng cáo hoặc các thành phần khác trên giao diện người dùng không?
- SDK IMA không hỗ trợ việc thay đổi bố cục, kích thước hoặc nội dung của các phần tử trên giao diện người dùng.
Để biết thêm thông tin chi tiết về các thành phần trên giao diện người dùng, hãy xem
AdsManager.uiElements
.
- Tại sao tôi không thể thay đổi âm lượng của một quảng cáo trên iOS?
-
iOS không cho phép bạn đặt âm lượng theo phương thức lập trình. Nếu bạn đang sử dụng
SDK HTML5,
adsManager.setVolume()
không có hiệu lực. Vì lý do này, SDK iOS không cung cấp trình đặt âm lượng trên IMAAdsManager.
- Tôi có thể sử dụng nhiều luồng để khởi chạy và thao tác trên giao diện người dùng không?
-
Tất cả hoạt động khởi tạo giao diện người dùng phải được thực hiện trên luồng chính. Sau
khởi chạy, bạn có thể chọn triển khai
Phát lại quảng cáo trong nền.
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-08-31 UTC.
[null,null,["Cập nhật lần gần đây nhất: 2025-08-31 UTC."],[[["\u003cp\u003eThe test ad tags always return ads for valid requests to make integration and testing easier, however, live ads may not always be available for all ad formats, placements or targeting criteria.\u003c/p\u003e\n"],["\u003cp\u003eEnsure your \u003ccode\u003edescriptionUrl\u003c/code\u003e is set to a page on your site with 1-3 paragraphs accurately describing the content for better ad targeting.\u003c/p\u003e\n"],["\u003cp\u003eWhen requesting ads more than once using the same tag, ensure you reset the SDK by calling \u003ccode\u003edestroy()\u003c/code\u003e on \u003ccode\u003eAdsManager\u003c/code\u003e and \u003ccode\u003econtentComplete()\u003c/code\u003e on \u003ccode\u003eAdsLoader\u003c/code\u003e to avoid duplicate requests.\u003c/p\u003e\n"],["\u003cp\u003eThe "Ad response does not contain a valid ad type" error generally indicates that no ads are currently targeted to your publisher ID, time period or ad unit, ensure your ads and creatives are approved, targeted correctly and have not expired.\u003c/p\u003e\n"],["\u003cp\u003eThe IMA SDK does not allow for customization of UI elements like the "Skip Ad" button, and on iOS, programmatic volume control for ads is restricted by the operating system.\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- [In the Android and iOS SDKs, is there a way to make the entire video\n ad clickable?](#11)\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- [Why can't I change an ad's volume on iOS?](#16)\n- [Can I use multiple threads to initialize and manipulate the UI?](#18)\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/ios/client-side/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\nIn the Android and iOS SDKs, is there a way to make the entire video ad clickable?\n: As far as whole-video click tracking goes, the standard viewer experience\n for mobile video that has emerged is that tapping on a video either\n pauses it or brings up the player controls. To avoid users\n unintentionally clicking on ads when they really just want access to the\n player controls IMA uses the **Learn more** button to let\n users click on an ad and learn more about the product being advertised.\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\nWhy can't I change an ad's volume on iOS?\n:\n iOS does not allow you to set volume programmatically. If you're using the\n HTML5 SDK, `adsManager.setVolume()` has no effect. The iOS SDK does not\n provide a volume setter on the IMAAdsManager for this reason.\n\nCan I use multiple threads to initialize and manipulate the UI?\n:\n\n All initialization of the UI must be done on the main thread. After\n initialization, you can choose to implement\n [Background Ad Playback](/interactive-media-ads/docs/sdks/ios/background_ad_playback)."]]