Troubleshooting
The ad doesn't show
Follow the flowchart from top to bottom — it leads from the first event to the cause.
Symptoms and causes
| Symptom | Cause | Solution |
|---|---|---|
| No events at all | The Android interface or AdEventsHandler handler isn't registered | Check the name — it's case-sensitive. |
| Android: one event doesn't arrive | The method's argument count doesn't match the signature | Check the signature table. |
AdError 1 | The address has no url, or controls isn't valid JSON | Encode the parameters with encodeURIComponent. |
AdError 303 | The ad server didn't return an ad | This is normal — return to the content. |
AdError 901 | The VPAID creative got a zero screen size | Make the WebView visible before the ad loads. |
AdError viewport_unavailable | The page has no dimensions for 3 seconds | The WebView must be visible and sized. |
| Buttons are visible, no ad | The WebView background isn't transparent, or the WebView is below the player | See How the SDK works. |
No quartiles or AdComplete | timeupdateAd() isn't being called | Call it on every player position update. |
No AdComplete at the end | timeupdateAd(duration, duration) wasn't called | Call it when the player finishes the ad. |
| The skip button doesn't become active | Time isn't arriving via timeupdateAd() | Same as above. |
Browser: permission_denied | The browser blocked autoplay with sound | Start playback after a user action, or without sound. |
How to debug
Enable debug output
Add &debug=true to the page address — the SDK will start writing debug messages to the console.
Connect an inspector
- Android:
WebView.setWebContentsDebuggingEnabled(true), thenchrome://inspectin Chrome on your computer. - iOS:
webView.isInspectable = true(iOS 16.4+), then the Develop menu in Safari.
Compare with the Playground
Open the Playground, select the same platform, and paste in your VAST link. If events arrive there but not in your app, the problem is in the integration, not the ad tag.