Skip to content

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

SymptomCauseSolution
No events at allThe Android interface or AdEventsHandler handler isn't registeredCheck the name — it's case-sensitive.
Android: one event doesn't arriveThe method's argument count doesn't match the signatureCheck the signature table.
AdError 1The address has no url, or controls isn't valid JSONEncode the parameters with encodeURIComponent.
AdError 303The ad server didn't return an adThis is normal — return to the content.
AdError 901The VPAID creative got a zero screen sizeMake the WebView visible before the ad loads.
AdError viewport_unavailableThe page has no dimensions for 3 secondsThe WebView must be visible and sized.
Buttons are visible, no adThe WebView background isn't transparent, or the WebView is below the playerSee How the SDK works.
No quartiles or AdCompletetimeupdateAd() isn't being calledCall it on every player position update.
No AdComplete at the endtimeupdateAd(duration, duration) wasn't calledCall it when the player finishes the ad.
The skip button doesn't become activeTime isn't arriving via timeupdateAd()Same as above.
Browser: permission_deniedThe browser blocked autoplay with soundStart 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), then chrome://inspect in 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.