Package com.castlabs.android.adverts

# Interface AdInterface

public interface AdInterface
Implementation of this interface provides access to Ad status. It also allows to inject side-interpreted ads events that are used for analytics and in app callbacks.

Since:
  3.2.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static interface`
  `AdInterface.Listener`
  Listener for ad events.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `adClicked(String clickthroughUrl)`
  Inject the ad clicked side event
  `void`
  `adCompleted()`
  Inject the ad completed side event
  `void`
  `addAdListener(AdInterface.Listener listener)`
  Register the given `AdInterface.Listener`
  `void`
  `adError(Ad ad, CastlabsPlayerException exception)`
  Inject the ad error side event
  `void`
  `adPaused()`
  Inject the ad paused side event
  `void`
  `adResumed(Ad ad)`
  Inject the ad resumed side event
  `void`
  `adSkipped()`
  Inject the ad skipped side event
  `void`
  `adStarted(Ad ad)`
  Inject the ad started side event.
  `void`
  `adWillStart(Ad ad)`
  Inject the ad will start side event.
  `AdApi`
  `getAdApi()`
  Get an `AdApi` to issue custom operations to the ad provider
  `long`
  `getPosition()`
  Get the Ad position in microseconds.
  `boolean`
  `isPlaying()`
  Check the Ad is currently playing.
  `void`
  `removeAdListener(AdInterface.Listener listener)`
  Remove the given `AdInterface.Listener`
  `void`
  `scheduleAd(AdRequest adRequest)`
  Manually schedules an `AdRequest`.

- ## Method Details

  - ### addAdListener

    void addAdListener(@NonNull AdInterface.Listener listener)
    Register the given `AdInterface.Listener`
    Parameters:
      `listener` - the listener

  - ### removeAdListener

    void removeAdListener(@NonNull AdInterface.Listener listener)
    Remove the given `AdInterface.Listener`
    Parameters:
      `listener` - the listener

  - ### isPlaying

    boolean isPlaying()
    Check the Ad is currently playing.
    Returns:
      true if the Ad is currently playing otherwise false

  - ### getPosition

    long getPosition()
    Get the Ad position in microseconds.
    Returns:
      positionUs the position in microseconds

  - ### adWillStart

    void adWillStart(@NonNull Ad ad)
    Inject the ad will start side event.
    Parameters:
      `ad` - The Ad object. Notice that in this level, some properties of the ad such as `Ad.title` might be null.

  - ### adStarted

    void adStarted(@NonNull Ad ad)
    Inject the ad started side event.
    Parameters:
      `ad` - The ad

  - ### adPaused

    void adPaused()
    Inject the ad paused side event

  - ### adResumed

    void adResumed(@NonNull Ad ad)
    Inject the ad resumed side event
    Parameters:
      `ad` - The ad

  - ### adCompleted

    void adCompleted()
    Inject the ad completed side event

  - ### adClicked

    void adClicked(@Nullable String clickthroughUrl)
    Inject the ad clicked side event
    Parameters:
      `clickthroughUrl` - The clickthrough URL of the ad

  - ### adError

    void adError(Ad ad, CastlabsPlayerException exception)
    Inject the ad error side event
    Parameters:
      `ad` - The ad
      `exception` - The error's exception

  - ### adSkipped

    void adSkipped()
    Inject the ad skipped side event

  - ### scheduleAd

    void scheduleAd(@NonNull AdRequest adRequest)
    Manually schedules an `AdRequest`. This can be called once playback is already started as long as the underlying AdLoader is compatible and manual ad scheduling `is enabled`. You can also use `SdkConsts.AD_SCHEDULE_MANUAL`. Note that if any other ads had been previously scheduled, such will be replaced by the new request.
    Parameters:
      `adRequest` - the AdRequest to schedule
    Since:
      4.2.24

  - ### getAdApi

    @Nullable AdApi getAdApi()
    Get an `AdApi` to issue custom operations to the ad provider
    Returns:
      the `AdApi`