Skip to main content
Version: 7.6.0


This article is a good place to start if you are looking for information on how to configure the THEOplayer Youbora pre-integration, which is part of the Analytics API.


Web SDKAndroid SDKiOS SDKtvOS SDKAndroid TV SDKChromecast SDK

Code example


Make sure you load the Youbora plugin in the head of the page.

<script src=""></script>  

Include the following in your SourceDescription object:

var youbora = {  integration: "youbora",  
enableAnalytics: true,
username: "THEO",
"content.title": "THEO 1 (VOD)", "content.duration": 653, "content.isLive": false,}

var SourceDescription = { sources: [typedSource],
analytics: [youbora],
Android (TV) SDK

You need to first initialize the Youbora library on your application. You can do this in two different ways:

  • While creating the player programmatically:
// create player config  
THEOplayerConfig playerConfig = new THEOplayerConfig.Builder()
.analytics(new YouboraOptions.Builder("YOUR_YOUBORA_ACCOUNT_CODE").build()) .build();
// create player
THEOplayerView tpv = new THEOplayerView(this, playerConfig);
  • Or through the player's XML configuration:
android:id="@+id/theo_player_view" app:youboraAccountCode="YOUR_YOUBORA_ACCOUNT_CODE" />```

You can then set a Youbora source like the following:

YouboraOptions youbora = new YouboraOptions.Builder("YOUR_YOUBORA_ACCOUNT_CODE")
.put("enableAnalytics", "true") .put("username", "THEO") .put("content.title", "VOD") .put("content.duration", "653") .put("content.isLive", "false") .build();
SourceDescription elephantsDream = SourceDescription.Builder
.sourceDescription(TypedSource.Builder.typedSource().src("").build()) .analytics(youbora) .build();

Starting from Android SDK API 28, Google introduced some additional network security configurations. By default, http requests are blocked by the OS unless the application explicitly allows it.

In order to allow http requests (and allow Youbora data to be sent to the dashboard), you should follow the instructions in their guide: Network security configuration.

Basically there are 2 different ways to solve this on your app:

  1. Set the android:usesCleartextTraffic="true" flag under your application tag.
  2. If you are using a network security config such as: android:networkSecurityConfig="@xml/network_security_config", include this flag on your configuration, for example:
<?xml version="1.0" encoding="utf-8"?>  
<domain-config cleartextTrafficPermitted="true"> .... </domain-config> <base-config cleartextTrafficPermitted="false"/></network-security-config>
Legacy iOS/tvOS SDK (4.12.x)

You need to first initialize the Youbora library on your application. You can do this on your player's configuration object:

let youboraOptions = YouboraOptions(accountCode: "YOUR_YOUBORA_ACCOUNT_CODE")
youboraOptions.put(key: "enableAnalytics", value: "true")
let playerConfiguration = THEOplayerConfiguration(chromeless: true, analytics: [youboraOptions])

You can then provide different Youbora option objects per source you set:

let youbora = YouboraOptions(accountCode: "YOUR_YOUBORA_ACCOUNT_CODE")
youbora.put(key: "enableAnalytics", value: "true")
youbora.put(key: "username", value: "THEO")
youbora.put(key: "content.title", value: "THEO 1 (VOD)")
youbora.put(key: "content.duration", value: "653")
youbora.put(key: "content.isLive", value: "false")
let sourceDescription = SourceDescription(source : typedSource, analytics: [youbora])