תגי המודעות לבדיקה מוגדרים כך שיחזירו תמיד מודעות עבור בקשות חוקיות. הדבר שנועדו להקל על השילוב וכדי שיהיה קל יותר לבדוק את האופן שבו הנגן מבקש ומציג מודעות. עם זאת, מודעות לא תמיד זמינות בכל לפורמט של האתר, החשבון או יחידת המודעות שלך. אם השילוב פועל מתאימה לתג הבדיקה אבל לא לתג שלך, ייתכן שהסיבה היא הבאים:
שאתם מציגים לסביבה שלכם סרטונים בפורמט שאינו נתמך. לדוגמה, אתם מציגים רק מודעות HTML5 ב-iOS או ב-Android.
אם אתם משתמשים ב-Ad Manager, ייתכן שמזהה בעל האתר שלכם לא כולל מודעות שמטורגטות אל בשלב הזה. כמו כן, צריך לוודא שאישרת את המודעות הרלוונטיות נכסי קריאייטיב ב-Ad Manager.
אם אתם משתמשים ב-AdSense, הקריטריונים לטירגוט לאתר או לדף הבדיקה שלכם לא מכילים מודעות פעילות. הסיבה הנפוצה ביותר היא השימוש באתרים פרטיים ולא נסרקו.
אם משתמשים ב'ניהול שותפי רשת של Ad Exchange' וגם descriptionURL לא מוגדר או לא נמצא בבעלות או במופעל של רשימת ניהול הדומיינים, לא מוצגות מודעות.
בודקים את ערכי הסף ל-minCPM שמוגדרים ב-Ad Exchange Video. א' עלות גבוהה יחסית לאלף חשיפות עשויה להוביל לשיעורי מילוי נמוכים מאוד. כדי לפתור את הבעיה, אפשר לנסות הסרת העלות המינימלית לאלף חשיפות או הסרת הפרמטר של יחידת המודעות מהבקשה להצגת מודעה (כלומר, שם מיקום) כדי לבדוק אם הפעולה הזו משפיעה על קצב המילוי.
איך נראה descriptionUrl טוב?
כדי להיות אפקטיבי ביותר, התוכן בדף שdescriptionUrl צריכות להיות אוסף של מילים או ביטויים, (1-3 פסקאות) מתארות בפועל את התוכן ואת התפקיד שלכם כשאתם מספקים אותו. אחת השיטות שהצליחו בעבר היא לחבר descriptionUrl תוכן הדף באופן דינמי מבלוקים מוגדרים מראש. למשל, כמה משפטים על התוכן, כמה משפטים על הטובה ביותר, ולאחר מכן כמה קטעי טקסט מוגדרים מראש שמשויכים לכל ערוץ AdSense (כמו 'בידור' או 'ספורט'). כתוצאה מכך, כל חלק לתוכן יש descriptionUrl ייחודי מובהק שמספק גם מידע כללי (כמו תיאורי ז'אנרים) וגם כמידע ספציפי (תוכן לגבי התוכן באופן ישיר).
ה-HTML של המטא-נתונים צריך להיות פשוט, לדוגמה:
<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>
למה מוצגת לי הודעת השגיאה "התגובה לבקשת מודעה לא מכילה סוג מודעה חוקי"?
השגיאה הזו מופיעה בדרך כלל מפני שאף מודעות לא מטרגטות publisherId ספציפי (לתקופה הנתונה). התנאי הזה יכולים להשתנות במהלך היום, או במשך כמה ימים, אחרי שהקמפיינים מתחילים או מסתיימים. עליך לוודא שהמודעה שאליה ברצונך לטרגט לא פגה וש הקריטריונים לטירגוט מודעות נכונים. כל עוד המודעות נשלחות, מתקבלות ומוצגות כראוי באמצעות את publisherId הבדיקה, תוכלו להיות בטוחים שהמודעות האלה מטופל כראוי באמצעות publisherId בשידור חי כשהמודעות זמינים.
האם יש לך תג מודעת וידאו של Ad Manager שאוכל להשתמש בו לבדיקה?
האם להגדיר את adSlotWidth ואת adSlotHeight כערכים זהים בתור sz בתג המודעה של Ad Manager?
לא בהכרח. adSlotWidth וגם adSlotHeight חייבים להיות מוגדרים לרוחב/גובה של הנגן או האזור שבו רוצים להציג את המודעות מילוי. מערכת AdSense משתמשת בהם כדי לקבוע אילו מודעות זמינות להתאמה למרחב הזה. צמד המפתח/ערך sz בתג המודעה של Ad Manager הוא פרמטר טירגוט, ולא בהכרח משפיע על הקריאייטיב שמוצג (מידע נוסף מפורט בהמשך).
תג ההדגמה של מודעת ההדגמה נראה מצוין, אבל כשמחליפים אותו בתג המודעה שלי, לא מופיעה כל מודעה.
עליך לבדוק כדי לוודא שמישהו מועבר לתג המודעה שלך בתהליך בקשה. הדרך הקלה ביותר לברר זאת היא לעקוב אחר תנועת ה-HTTP. אם תמונה בגודל 1x1 pixelpixel.gif מוחזרת בתוך בלוק HTML עוגן, צריך לבדוק את הטירגוט ב-Ad Manager.
אני רוצה לבקש מודעות עם אותו תג יותר מפעם אחת, אבל מוצגות לי מודעות רק בפעם הראשונה בקשה. איך אפשר לפתור את הבעיה הזאת?
כשמבקשים מודעות יותר מפעם אחת, צריך ליידע את שרת המודעות שמדובר בבקשות לגיטימיות, ולא בכפילויות מקריים. ה-SDK עושה זאת באמצעות שתי קריאות מהירות ל-API:
קוראים לפונקציה destroy() במכונה של AdsManager. פעולה זו מונעת הפעלה של מודעות בסוף הסרטון כאשר מבצעים את הקריאה הבאה: contentComplete() קיבלת AdsManager חדש כשתשלחו את הבקשה הבאה.
התקשרות אל contentComplete() במכשיר AdsLoader שלך מכונה. הפעולה הזו מאפסת את ה-SDK כך שהבקשה החדשה להצגת מודעה לא תיראה כמו כפילות של הפריט הקודם.
אחרי ביצוע שתי השיחות שצוינו למעלה, אפשר להתקשר למספר requestAds() במספר את המופע של AdsLoader כדי להפעיל עוד קבוצה של מודעות סרטון חדש.
איך אפשר לבקש מודעות AdSense בשכבת-על ובמיקום מלא באמצעות IMA SDK?
כדי לבקש מודעות AdSense באמצעות ה-SDK, קודם צריך לקבל חשבון AdSense תג המודעה. תוכל לקבל מידע נוסף בנושא ב-AdSense לדף הסרטון. אחרי שמקבלים את התג, צריך לבצע את הפעולות הבאות השלבים לביצוע בקשה להצגת מודעה בשכבת-על או להצגת מודעה במיקום מלא:
מודעות שכבת-על
בAdsRequest, מגדירים את ה-ViewModes בתור NORMAL.
בתג המודעה, מוסיפים את הפרמטר overlay=1.
מודעות במיקום מלא
בAdsRequest, מגדירים את ה-ViewModes בתור FULLSCREEN.
בתג המודעה, מוסיפים את הפרמטר overlay=0.
מוצגת לי 'כתובת URL לא חוקית לקליקים' כאשר אני לוחץ על המודעה שלי. מה יכולה להיות הסיבה לכך?
הסיבה השכיחה ביותר לשגיאה הזו היא קליקים על מודעות שמסומנים בתווי בריחה (escape) בצורה לא תקינה כתובת URL. אם השגיאה הזו מופיעה, צריך לוודא ששיעור הקליקים כתובת ה-URL מסומנת בתווי בריחה (escape) כראוי בתגובת VAST.
למה אני רואה "מסמך VAST ריק" שגיאה?
השגיאה הזו מתרחשת כשתג המודעה מחזיר מסמך VAST ריק, שמציין שהמודעה לא הוצגה כראוי. לפנות למנהל החשבון או נציג של שרת המודעות כדי לבדוק מדוע תג המודעות אינו פועל.
האם אפשר לשנות את הגודל או הטקסט של התיבה דילוג על המודעה או של רכיבים אחרים בממשק המשתמש?
בערכות ה-IMA SDK אין תמיכה בשינוי הפריסה, הגודל או התוכן של רכיבים בממשק המשתמש. פרטים נוספים על רכיבי ממשק המשתמש מופיעים כאן: AdsManager.uiElements.
האם פקדי וידאו מקוריים נתמכים ב-HTML5 SDK?
לא, ערכת ה-SDK של HTML5 לא תומכת בבקרות מותאמות.
אני רואה את ההודעה 'הפעלת 'הפעלה' נכשלה ב-'HTMLMediaElement': ניתן להפעיל API רק באמצעות תנועת משתמש" בהטמעת HTML5 שלי. איך אפשר לפתור את הבעיה הזאת?
בניידים, צריך להתקשר ל-adDisplayContainer.initialize() כתוצאה מפעולה של משתמש (כמו הקשה). אם אתם אם אתם רואים את השגיאה הזו, סביר להניח שאתם קוראים לה בהקשר שלא ביוזמת המשתמש. שימו לב שבשביל חייבת להיות תוצאה ישירה של פעולה של משתמש. לדוגמה, אם אתה משיב "מקישים" את האירוע באמצעות הפעלת סרטון, ואז שימוש ב"הפעלה" של נגן הווידאו אירוע להתקשרות initialize(), ה-SDK מחזיר את השגיאה הזו. עליך להתקשר אל initialize() בתור התוצאה של האירוע עצמו מסוג הקשה.
איך אוכל לטפל בהתמקדות במקלדת בקליקים על מודעות?
אם משתמשים בפקדי המקלדת בנגן, יכול להיות שהם לא יפעלו יותר הקליקים הבאים על adDisplayContainer. זאת מכיוון שכאשר לוחצים על מודעה מיקוד המקלדת עובר ל-iframe של IMA. כדי להתמקד בנגן התוכן, צריך לבצע את הפעולות הבאות: להשתמש CLICK אירוע כדי להעביר את מיקוד המקלדת בחזרה למאגר הרצוי. צריך לעיין בקטע הקוד הבא עבור פרטים נוספים:
adsManager.addEventListener( google.ima.AdEvent.Type.CLICK, function(){ window.focus(); // Or another method to return focus to the desired container. });
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 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 ```"]]