Skip to content

3.0.0

The first release with a single version for all platforms and public documentation. Earlier builds had separate numbers for Android, iOS and the browser. Starting with 3.0.0 there is one version.

Breaking changes

  • The version number is now shared by Android, Android TV, iOS and the browser. Use version 3.0.0 in the SDK address instead of the platform-specific numbers.
  • in the VAST URL now resolves to 3.0.0 (was 2.5.0).
  • iOS An error before the ad loads arrives in the same shape as every other event: { name: "AdError", code, message, type, … } instead of a data field.
  • Web The playback-blocked error code is now permission_denied (was premission denied).
  • autoplay=false and autoplay=0 no longer turn autoplay on.

Added

  • SDK address on the CDN: platform and version in the path — https://cdn.adsdk.ru/android/v3/. The v3 channel gets every 3.x fix, v3.0.0 never changes, latest is for debugging. The os parameter still works for addresses without a platform in the path.
  • Redesigned ad UI on Android, Android TV and iOS: new button layout and a scrim behind the buttons for readability.
  • Android TV The ad-notice control: a caption about ads in the corner of the screen.
  • The all value in controls enables every control available on the platform.
  • The SDK waits until the page has a size before loading an ad. If the page still has no size after 3 seconds, AdError arrives with code viewport_unavailable.
  • os=web in a WebView now fails right away with AdError code web_ui_in_native_build.

Fixed

  • Android An error before the ad loads reaches AdError once instead of twice. The SDK picks the signature the app declared: 6, 4 or 3 arguments.
  • Android AdPodCompleted receives ad_is_last instead of undefined.
  • AdPodCompleted reports the real pod length instead of 0, and the number of shown creatives ad_pod_showed_count on every platform.
  • AdSkippableStateChanged passes status: true instead of an event object. On Android the AdSkippableStateChanged(Boolean) method is now actually called.
  • Web Styles load from the stable style.css address.
  • Web AdsEnded fires once instead of twice.
  • getAdCurrentTimeSec() returns seconds instead of milliseconds. When the app's player plays the video, it returns the time from timeupdateAd(), so the skip button countdown runs correctly.
  • getAdSkippableState() returns true after AdSkippableStateChanged, including when the app's player plays the video.
  • Every creative of an ad pod becomes skippable: AdSkippableStateChanged used to fire for the first one only.
  • With autoplay in a WebView the ad becomes skippable at skipoffset, not right after it starts.
  • When the platform cannot be detected, android is used instead of an empty UI.
  • Invalid ad_media_file_width and ad_media_max_duration_sec values are ignored instead of breaking media file selection.
  • AdLoaded, quartiles and AdComplete fire exactly once per creative, VPAID included.
  • Web AdComplete tracking.
  • Web Unhandled promise rejection when starting playback.