Class AnalyticsSession
- All Implemented Interfaces:
IAnalyticsSession
,PlayerControllerPlugin.Component
- Direct Known Subclasses:
AnalyticsSessionProxy
IAnalyticsSession
which could be enabled or disabled.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Inform the session that the ad is clickedfinal void
adError
(Ad ad, CastlabsPlayerException exception) Inform the session that an ad error occurred.final void
adPause()
Inform the session that the ad is paused.void
Inform the session that an ad playback resumed.final void
Inform the session that the ad is skipped.final void
Inform the session that an ad playback started.final void
adStop()
Inform the session that an ad playback stopped.final void
adWillStart
(Ad ad) Inform the session that an Ad begins loadingfinal void
Detach the Analytics session from the PlayerController.final boolean
Returns true if the session is enabled, otherwise false.final void
onExoPlayerStateChanged
(boolean playWhenReady, int playbackState) Lets the Analytics Sessions know of any state changes in ExoPlayer.final void
release()
Terminate the AnalyticsSession.final void
Report the current player state manually.final void
seekEnd()
Inform the session that the seeking has completed.final void
Inform the session that the requested seek position of the video playback is processed.final void
seekStart
(long newPosition) Inform the session that the new position of the video playback is requested.final void
Send an error manually.void
setEnabled
(boolean enabled) Enable or disable the session.final void
start
(PlayerController playerController, AnalyticsMetaData analyticsMetaData) Start the session on the given controllerfinal void
stop()
Stop the session.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.castlabs.android.player.PlayerControllerPlugin.Component
id, onDestroy, onOpenBundle, onOpenState
-
Constructor Details
-
AnalyticsSession
public AnalyticsSession()
-
-
Method Details
-
start
public final void start(@NonNull PlayerController playerController, @NonNull AnalyticsMetaData analyticsMetaData) Description copied from interface:IAnalyticsSession
Start the session on the given controller- Specified by:
start
in interfaceIAnalyticsSession
- Parameters:
playerController
- The player controlleranalyticsMetaData
- The meta-data associated with this session
-
stop
public final void stop()Description copied from interface:IAnalyticsSession
Stop the session.- Specified by:
stop
in interfaceIAnalyticsSession
-
adWillStart
Description copied from interface:IAnalyticsSession
Inform the session that an Ad begins loading- Specified by:
adWillStart
in interfaceIAnalyticsSession
- Parameters:
ad
- The Ad object. Notice that in this level, some properties of the ad such asAd.title
might be null.
-
adStart
Description copied from interface:IAnalyticsSession
Inform the session that an ad playback started.- Specified by:
adStart
in interfaceIAnalyticsSession
- Parameters:
ad
- The ad metadata. Contains streamType (EitherSdkConsts.AD_EMBEDDED
if the ad is embedded into the content orSdkConsts.AD_SEPARATE
if the ad is played separate from the main content.), playerType (EitherSdkConsts.AD_EMBEDDED
if the ad is using the same player as the main content orSdkConsts.AD_SEPARATE
if the ad is played in a separate player and adPosition The ad position. One ofSdkConsts.AD_POSITION_PREROLL
SdkConsts.AD_POSITION_MIDROLL
, orSdkConsts.AD_POSITION_POSTROLL
-
adStop
public final void adStop()Description copied from interface:IAnalyticsSession
Inform the session that an ad playback stopped.- Specified by:
adStop
in interfaceIAnalyticsSession
-
adError
Description copied from interface:IAnalyticsSession
Inform the session that an ad error occurred.- Specified by:
adError
in interfaceIAnalyticsSession
- Parameters:
ad
- The adexception
- The error's exception
-
adSkipped
public final void adSkipped()Description copied from interface:IAnalyticsSession
Inform the session that the ad is skipped.- Specified by:
adSkipped
in interfaceIAnalyticsSession
-
reportPlayerState
Description copied from interface:IAnalyticsSession
Report the current player state manually. This is used for the cases thatPlayerListener.onStateChanged(PlayerController.State)
is called before but we want to report it now, same as switching between playlist items inMultiControllerPlaylist
- Specified by:
reportPlayerState
in interfaceIAnalyticsSession
-
sendError
Description copied from interface:IAnalyticsSession
Send an error manually. Note that the player integration takes care of playback error occurring during playback. Use this method to send error that happen outside of the playback session.- Specified by:
sendError
in interfaceIAnalyticsSession
- Parameters:
code
- The error codemessage
- The error messageseverity
- The severity of the error
-
seekStart
public final void seekStart(long newPosition) Description copied from interface:IAnalyticsSession
Inform the session that the new position of the video playback is requested.- Specified by:
seekStart
in interfaceIAnalyticsSession
- Parameters:
newPosition
- the new position in microseconds
-
seekEnd
public final void seekEnd()Description copied from interface:IAnalyticsSession
Inform the session that the seeking has completed.Triggered when the player is ready to continue playback by transitioning to either
PlayerController.State.Playing
orPlayerController.State.Pausing
.- Specified by:
seekEnd
in interfaceIAnalyticsSession
-
seekProcessed
public final void seekProcessed()Description copied from interface:IAnalyticsSession
Inform the session that the requested seek position of the video playback is processed. This is called right after the player has updated the internal playback position.- Specified by:
seekProcessed
in interfaceIAnalyticsSession
-
detachFromController
public final void detachFromController()Description copied from interface:IAnalyticsSession
Detach the Analytics session from the PlayerController. Unregister listeners and remove any references.This method allows to unbind the AnalyticsSession from a PlayerController, to later set it to a new controller and continue with the same analytics session.
Should be called by client code after getting the AnalyticsSession via
PlayerController.getAnalyticsSession()
, and before releasing the PlayerController.You can later re-attach the AnalyticsSession to a PlayerController before
opening
it with thePlayerController.setAnalyticsSession(AnalyticsSession)
method- Specified by:
detachFromController
in interfaceIAnalyticsSession
-
onExoPlayerStateChanged
public final void onExoPlayerStateChanged(boolean playWhenReady, int playbackState) Description copied from interface:IAnalyticsSession
Lets the Analytics Sessions know of any state changes in ExoPlayer.This method allows any interested Analytics sessions to know of any changes in the ExoPlayer even if it doesn't correspond to any state changes in the PlayerController.
- Specified by:
onExoPlayerStateChanged
in interfaceIAnalyticsSession
-
release
public final void release()Description copied from interface:IAnalyticsSession
Terminate the AnalyticsSession. Although implementation is vendor-specific, this method will terminate any ongoing session as if the player itself had been destroyed. Generally, there's no need to call this manually. Unless you're detaching the session and not reusing it later.- Specified by:
release
in interfaceIAnalyticsSession
-
adPause
public final void adPause()Description copied from interface:IAnalyticsSession
Inform the session that the ad is paused.- Specified by:
adPause
in interfaceIAnalyticsSession
-
adResume
Description copied from interface:IAnalyticsSession
Inform the session that an ad playback resumed. This is usually triggered after an adPause.Nevertheless, it is also possible that this event is fired without a preceding adPause. This is the case when re-opening the player from the background with a saved state.
- Specified by:
adResume
in interfaceIAnalyticsSession
- Parameters:
ad
- the ad that has been resumed
-
adClick
Description copied from interface:IAnalyticsSession
Inform the session that the ad is clicked- Specified by:
adClick
in interfaceIAnalyticsSession
- Parameters:
clickthroughUrl
- the clickthrough url of the ad
-
getEnabled
public final boolean getEnabled()Returns true if the session is enabled, otherwise false.- Returns:
- enabled
-
setEnabled
@CallSuper public void setEnabled(boolean enabled) Enable or disable the session.- Parameters:
enabled
- the value
-