ITG delivers in-content overlay and pause ads directly on top of your video player -with no rebuild of your app's architecture. This page summarizes the integration path for each platform.
<aside>
Supported environments: Chrome, Smart TVs (Samsung, LG, Hisense), web apps, Chromium 53+
<script> tag into your HTMLinit() with 4 parameters<script id="inthegame-script" src="<https://html5.inthegame.io/v2-7/main.js>"></script>
window.inthegame.init({
device: 'tv', // 'web' | 'mobile' | 'tv'
videoPlayerId: 'myVideoElement',
accountId: 'YOUR_ACCOUNT_ID',
channelSlug: 'YOUR_CHANNEL_SLUG'
});
๐ 2 steps to first ad impression.
</aside>
<aside>
Supported environments: tvOS, iOS ยท AVPlayer, Kaltura, Bitmovin, Mediastream
https://github.com/Inthegamesdk/itg-apple-sdk.gitInthegametv (tvOS) or InthegametviOS (iOS)ITGPlayerViewController -3 lines of codelet adapter = ITGAVPlayerAdapter(AVPlayer(), playerViewController: AVPlayerViewController())
let itgController = ITGPlayerViewController(channelSlug: "YOUR_CHANNEL_SLUG",
accountId: "YOUR_ACCOUNT_ID",
playerAdapter: adapter)
present(itgController, animated: true)
โก 3 lines of Swift.
The
ITGPlayerViewControllerwrapper handles all communication between your player and the ITG overlay automatically.
</aside>
<aside>
Supported environments: Android TV, Fire TV, mobile ยท ExoPlayer, Media3, Bitmovin, Kaltura
settings.gradlecore dependency + your player adapter to build.gradleITGPlaybackComponent and attach it to your player// build.gradle
implementation 'io.inthegame.sdk:core:2.7.0.21'
implementation 'io.inthegame.sdk:media3:2.7.0.4' // or exoplayer, bitmovin, kaltura
// In your Activity or Fragment
mITGComponent = ITGPlaybackComponent(this)
val adapter = ITGMedia3PlayerAdapter(playerView = playerViewInstance)
mITGComponent?.init(
activity = this,
playerAdapter = adapter,
savedState = savedInstanceState,
accountId = "YOUR_ACCOUNT_ID",
channelSlug = "YOUR_CHANNEL_SLUG"
)
yourContainer.addView(mITGComponent, 0)
๐ง Adapters available for ExoPlayer, Media3, Bitmovin, and Kaltura.
Player adapters abstract all player-specific events -swap players without changing ITG integration code.
</aside>
<aside>
Supported environments: Roku OS, SceneGraph
initITGLibrary("channelSlug") on every channel change' Step 1: Load at startup (once)
sub loadITGLibrary()
m.componentLibrary = CreateObject("roSGNode", "ComponentLibrary")
m.componentLibrary.uri = "https://link_to_itg_roku_library"
m.componentLibrary.observeField("loadStatus", "onLoadStatusLibraryChanged")
end sub
' Step 2: Init per channel
initITGLibrary("YOUR_CHANNEL_SLUG")
๐ก 1 init call per channel.
Roku's ComponentLibrary model keeps ITG fully isolated from your app's SceneGraph -no conflicts with existing nodes.
</aside>
Need help? Contact your ITG integration engineer or reach out at [email protected]