Skip to content

Commit b95febd

Browse files
committed
Report endPointLoaded event
1 parent f80806c commit b95febd

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

connectors/analytics/conviva/src/main/java/com/theoplayer/android/connector/analytics/conviva/theolive/THEOliveReporter.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.theoplayer.android.api.event.player.theolive.TheoLiveEventTypes
99
import com.theoplayer.android.api.player.Player
1010
import com.theoplayer.android.connector.analytics.conviva.BuildConfig
1111
import com.theoplayer.android.connector.analytics.conviva.ConvivaMetadata
12+
import com.theoplayer.android.connector.analytics.conviva.utils.contentProtectionConfigurationToMetadata
1213
import com.theoplayer.android.connector.analytics.conviva.utils.flattenErrorObject
1314

1415
private const val TAG = "THEOliveReporter"
@@ -24,6 +25,24 @@ class THEOliveReporter(val player: Player, val convivaVideoAnalytics: ConvivaVid
2425
Log.d(TAG, "onEndPointLoaded - endpoint: $endpoint")
2526
}
2627

28+
convivaVideoAnalytics.reportPlaybackEvent(
29+
"endPointLoaded",
30+
mutableMapOf<String, Any>().apply {
31+
put("endpoint", mutableMapOf<String, Any>().apply {
32+
put("weight", endpoint.weight)
33+
endpoint.cdn?.let { put("cdn", it) }
34+
endpoint.hespSrc?.let { put("hespSrc", it) }
35+
endpoint.hlsSrc?.let { put("hlsSrc", it) }
36+
endpoint.adSrc?.let { put("adSrc", it) }
37+
endpoint.targetLatency?.let { put("targetLatency", it) }
38+
endpoint.daiAssetKey?.let { put("daiAssetKey", it) }
39+
endpoint.contentProtection?.let {
40+
put("contentProtection", contentProtectionConfigurationToMetadata(it))
41+
}
42+
})
43+
}
44+
)
45+
2746
convivaVideoAnalytics.setContentInfo(
2847
mutableMapOf<String, String>().apply {
2948
endpoint.cdn?.let { cdn ->

connectors/analytics/conviva/src/main/java/com/theoplayer/android/connector/analytics/conviva/utils/Utils.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import com.theoplayer.android.api.event.ads.AdIntegrationKind
1212
import com.theoplayer.android.api.player.Player
1313
import com.theoplayer.android.api.source.SourceType
1414
import com.theoplayer.android.api.source.TypedSource
15+
import com.theoplayer.android.api.theolive.ContentProtectionConfiguration
1516
import com.theoplayer.android.api.timerange.TimeRanges
1617
import com.theoplayer.android.connector.analytics.conviva.ConvivaConfiguration
1718
import com.theoplayer.android.connector.analytics.conviva.ConvivaMetadata
@@ -225,3 +226,19 @@ fun calculateBufferLength(player: Player): Long {
225226
fun bufferedToString(buffered: TimeRanges): String {
226227
return "[${buffered.joinToString(",") { timeRange -> "${timeRange.start}-${timeRange.end}" }}]"
227228
}
229+
230+
fun contentProtectionConfigurationToMetadata(config: ContentProtectionConfiguration): Map<String, Any> {
231+
return mutableMapOf<String, Any>().apply {
232+
config.integration?.let { put("integration", it) }
233+
config.widevine?.let { widevine ->
234+
put("widevine", mutableMapOf<String, Any>().apply {
235+
widevine.licenseUrl?.let { put("licenseUrl", it) }
236+
})
237+
}
238+
config.playready?.let { playready ->
239+
put("playready", mutableMapOf<String, Any>().apply {
240+
playready.licenseUrl?.let { put("licenseUrl", it) }
241+
})
242+
}
243+
}
244+
}

0 commit comments

Comments
 (0)