For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
StatusSupportDiscussionsLog inSign Up
Docs HomeAPI ReferenceVideo on DemandAI FeaturesLive StreamingVideo PlayerVideo DataCloud PlayoutRecipes
Docs HomeAPI ReferenceVideo on DemandAI FeaturesLive StreamingVideo PlayerVideo DataCloud PlayoutRecipes
  • Get started
    • Introduction
    • How Video Data works
  • Web players
    • Monitor the FastPix player
    • Monitor the Shaka player
    • Monitor HLS.js
    • Monitor Video.js
    • Monitor DASH.js
  • Android players
    • Monitor AndroidX Media3
    • Monitor ExoPlayer
    • Monitor Brightcove Player
    • Monitor Bitmovin Player
    • Monitor Kaltura Player
    • Monitor THEOPlayer
  • iOS and cross-platform players
    • Monitor AVPlayer (iOS)
    • Monitor React Native
    • Monitor Better Player (Flutter)
  • Smart TV players
    • Monitor Samsung Tizen
    • Monitor LG webOS
  • Concepts
    • Understand data definitions
    • What Video Data do we capture
    • Audience metrics
    • Quality of experience (QoE) metrics
    • Playback metrics
    • Video startup metrics
    • Stability metrics
    • Render quality metrics
  • Working with video data
    • Explore the dashboard
    • Build workflows with the API
    • Find out why viewers drop off
    • Identify top-performing content
    • Pass custom metadata to metrics
    • Use custom dimensions
    • Troubleshoot playback errors
LogoLogo
StatusSupportDiscussionsLog inSign Up
On this page
  • Prerequisites
  • Getting started with FastPix:
  • Step 1: Install and setup:
  • Beacon URL Configuration
  • Usage
  • Step 2: Import the SDK
  • Step 3: Basic Integration
Android players

Monitor Brightcove Player

Understand how to integrate the FastPix Data SDK with Brightcove Player to track playback and QoE metrics.
Was this page helpful?
Previous

Monitor Bitmovin Player

Understand how FastPix BitmovinPlayer SDK tracks playback, performance, and user interactions on Android.
Next
Built with

This FastPix Data SDK integration for Brightcove Player helps you track key video metrics like user interactions, playback quality, and performance to enhance the viewing experience. It lets you customize data tracking, monitor streaming quality, and securely send insights for better optimization and error resolution. The integration enables comprehensive video performance tracking and user engagement metrics with minimal setup required.


Key features:

  • Seamless integration with Brightcove Player events
  • Automatic beacon domain selection for staging and production environments
  • Simple configuration objects for quick setup
  • Automatic cleanup of analytics resources
  • Capture detailed viewer interaction data
  • Monitor playback quality and streaming diagnostics
  • Robust error reporting and diagnostics

Step 1

Install and setup

Step 2

Import the SDK

Step 3

Basic integration


Prerequisites

  1. An existing Android Studio project where you plan to integrate the FastPix Data SDK
  2. Gradle configured in your project for managing dependencies
  3. GitHub Personal Access Token (PAT) from your GitHub account for SDK access.
  4. To track and analyze video performance, initialize the SDK with your Workspace key. Learn about Workspaces.
    • Access the FastPix Dashboard: Log in and navigate to the Workspaces section.
    • Locate Your Workspace Key: Copy the Workspace Key for client-side monitoring.

Getting started with FastPix:

To track and analyze video performance, initialize the FastPix Data SDK with your Workspace key:

  1. Access the FastPix Dashboard: Log in and navigate to the Workspaces section.
  2. Locate Your Workspace Key: Copy the Workspace Key for client-side monitoring. Included in your Android application’s code wherever you want to track video performance and analytics.

Step 1: Install and setup:

Add our maven repository to your settings.gradle:

1repositories {
2 google()
3 mavenCentral()
4 maven { url = uri("https://jitpack.io") }
5 maven {
6 url =uri("https://repo.brightcove.com/releases")
7 }
8 maven {
9 url = uri("https://maven.pkg.github.com/FastPix/android-data-exo-player-sdk")
10 credentials {
11 // Your GitHub account username (or) FastPix
12 username = "your-github-username"
13 // Your (PAT) Personal access token Get It from you Github account
14 password = "your-personal-access-token"
15 }
16 }
17 }

Add the FastPix Data Core SDK dependencie to your build.gradle:

1dependencies {
2 //check for the latest version
3 implementation("io.fastpix.data:exoplayer:1.1.0")
4 implementation("com.brightcove.player:exoplayer2:9.2.3")
5}

  1. Sync your project with Gradle files

Click “Sync Now” in the notification bar to download and integrate the FastPix Data SDK.

Once the above dependency is added, you can use the FastPix Data SDK module into your Android project where you intend to use its functionalities.


Beacon URL Configuration

The beaconUrl parameter specifies which FastPix analytics environment receives your video performance data. Use the appropriate beacon domain based on your deployment environment


Usage

Make sure Brightcove Player is installed and integrated with your project as part of the FastPix data setup. You can initialize Brightcove with a PlayerView in your Android application to enable seamless functionality.


Step 2: Import the SDK

1 import io.fastpix.exoplayer_data_sdk.FastPixBaseExoPlayer

Step 3: Basic Integration

Brightcove’s SDK for Android encapsulates an underlying ExoPlayer instance. To integrate, extract the ExoPlayer and create an instance of FastPixBaseExoPlayer for monitoring

1
2// MainActivity.kt
3
4import android.content.pm.ActivityInfo
5import android.os.Bundle
6import androidx.appcompat.app.AppCompatActivity
7import com.brightcove.player.display.ExoPlayerVideoDisplayComponent
8import com.brightcove.player.event.Event
9import com.brightcove.player.event.EventListener
10import com.brightcove.player.event.EventType
11import com.brightcove.player.model.DeliveryType
12import com.brightcove.player.model.Video
13import com.example.media3muxdata.databinding.ActivityMainBinding
14import com.google.android.exoplayer2.ExoPlayer
15import io.fastpix.data.domain.model.CustomDataDetails
16import io.fastpix.data.domain.model.PlayerDataDetails
17import io.fastpix.data.domain.model.VideoDataDetails
18import io.fastpix.exoplayer_data_sdk.FastPixBaseExoPlayer
19import java.util.UUID
20
21class MainActivity : BrightcovePlayer(), EventListener {
22
23private lateinit var binding: ActivityMainBinding
24private lateinit var fastPixDataSDK: FastPixBaseExoPlayer
25private lateinit var exoPlayer: ExoPlayer
26
27override fun onCreate(savedInstanceState: Bundle?) {
28// Set up the layout and view binding
29 binding = ActivityMainBinding.inflate(layoutInflater)
30 setContentView(binding.root)
31
32 // Call superclass constructor for lifecycle management
33 super.onCreate(savedInstanceState)
34
35 // Create and configure the video for playback
36 val video = Video.createVideo(
37 “your-stream-url”,
38 DeliveryType.HLS
39 )
40
41 // Add the video to the player view and start playback
42 binding.playerView.add(video)
43 binding.playerView.start()
44
45 // Register event listeners for fullscreen transitions
46 val emitter = binding.playerView.eventEmitter
47 emitter.on(EventType.ENTER_FULL_SCREEN, this)
48 emitter.on(EventType.EXIT_FULL_SCREEN, this)
49
50 // Extract the ExoPlayer instance from Brightcove's video display component
51 val videoDisplayComponent =
52 binding.playerView.videoDisplay as ExoPlayerVideoDisplayComponent
53 exoPlayer = videoDisplayComponent.exoPlayer
54
55 // Configure video metadata for analytics tracking
56 val videoDataDetails = VideoDataDetails(
57 UUID.randomUUID().toString(), // Unique video identifier
58 "Video Title" // Video display name
59 ).apply {
60 videoSeries = "Series Name"
61 videoProducer = "Producer Name"
62 videoContentType = "Content Type"
63 videoVariant = "Variant Info"
64 videoLanguage = "en"
65 }
66
67 // Configure custom dimensions for business-specific tracking
68 val customDataDetails = CustomDataDetails()
69 customDataDetails.customField1 = "Custom Value 1"
70 customDataDetails.customField2 = "Custom Value 2"
71
72 // Define player metadata for version tracking
73 val playerDataDetails = PlayerDataDetails(
74 playerName = "brightcove_player",
75 playerVersion = "9.2.3"
76 )
77
78 // Initialize FastPix Data SDK for analytics collection
79 fastPixDataSDK = FastPixBaseExoPlayer(
80 this,
81 playerView = binding.playerView,
82 exoPlayer = exoPlayer,
83 workSpaceId = "YOUR_WORKSPACE_ID",
84 videoDataDetails = videoDataDetails,
85 playerDataDetails = playerDataDetails,
86 enableLogging = true,
87 customDataDetails = customDataDetails
88 )
89}
90
91override fun processEvent(p0: Event) {
92 when (p0?.type) {
93 EventType.ENTER_FULL_SCREEN -> {
94 requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
95 }
96 EventType.EXIT_FULL_SCREEN -> {
97 requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT
98 }
99 }
100}
101
102override fun onDestroy() {
103 super.onDestroy()
104 fastPixDataSDK.release()
105 binding.playerView.clear()
106}
107
108
109}