メディアトラッキング
モバイル向けのメディアトラッキングについて学びます。
メディアトラッキングは、アプリ内でのストリーミングメディアイベント(ビデオまたはオーディオ)を追跡する機能です。ストリーミングメディアイベントには、セッション、チャプター、広告(広告)、再生、シーク、一時停止などのプレーヤーイベントが含まれます。このトラッキング機能をiOSまたはAndroidアプリに追加するには、Mediaモジュールをインストールしてメディアトラッキングメソッドを実装します。
動作原理
Mediaモジュールは、ユーザーのストリーミングメディア体験全体を追跡します。これには、セッションの開始と終了、広告ブレイクの開始と終了、再生、一時停止、シークなどのメディアプレーヤーとのすべてのインタラクションが含まれます。
Mediaモジュールは、次の要素の階層構造でトラッキングを行います。
メディアセッション
メディアセッションは、他のすべての要素のコンテナであり、ストリーミング体験に関する一般的な情報を定義します。メディアセッションは、トラッキングに必要な要素です。
チャプター
チャプターは、セッション内のブレイク(オーディオブックのチャプターや映画のシーンなど)を区切るオプションのセグメントです。
広告ブレイク
広告ブレイクは、1つ以上の広告のコンテナです。広告ブレイクは、セッションの開始、中間、または終了時に一般的に配置されます。
広告
広告は、広告ブレイク内で発生するオプションの要素です。
メディアセッションの例の構造:
└── メディアセッション
├── 広告ブレイク1
│ ├── 広告1
│ └── 広告2
├── チャプター1
├── 広告ブレイク2
│ ├── 広告3
│ └── 広告4
└── チャプター2
インストール
開始するには、サポートされているプラットフォームのMediaモジュールをインストールします。
初期化
Mediaモジュールをインストールした後、MediaContent
オブジェクトを初期化します。
val mediaContent: MediaContent = MediaContent(
name = "Tealium Customer Data Hubとは?",
trackingType = TrackingType.MILESTONE,
streamType = StreamType.DVOD,
mediaType = MediaType.VIDEO,
qoe = QoE(1500),
duration = 130
)
let media = MediaContent(
name: "Tealium Customer Data Hubとは?",
trackingType: .milestone,
streamType: .vod,
mediaType: .video,
qoe: QoE(bitrate: 1500),
duration: 130
)
TrackingType
トラッキングタイプは、Tealiumイベントとしてトラッキングするメディアイベントを決定します(トラッキングタイプの概要を参照)。
TrackingType
を構成するために、次の定数のいずれかを使用します。
タイプ | プロパティ | 説明 |
---|---|---|
フル再生 | FULL_PLAYBACK |
インターバルイベントを除くすべてのメディアイベントをトラッキングします。 |
インターバル | INTERVAL |
標準的なメディアイベントをトラッキングし、コンテンツの再生状態を確認するために10秒ごとにピングを送信します。 |
マイルストーン | MILESTONE |
標準的なメディアイベントをトラッキングし、コンテンツの再生率を測定します。 |
インターバルマイルストーン | INTERVAL_MILESTONE |
インターバルイベントとマイルストーンイベントの両方をトラッキングします。 |
サマリー | SUMMARY |
セッション終了時にデータレイヤーに単一のサマリーを送信し、再生されたコンテンツや広告の再生時間の計算を含めます。 |
タイプ | プロパティ | 説明 |
---|---|---|
フル再生 | fullPlayback |
インターバルイベントを除くすべてのメディアイベントをトラッキングします。 |
インターバル | interval |
標準的なメディアイベントをトラッキングし、コンテンツの再生状態を確認するために10秒ごとにピングを送信します。 |
マイルストーン | milestone |
標準的なメディアイベントをトラッキングし、コンテンツの再生率を測定します。 |
インターバルマイルストーン | intervalMilestone |
インターバルイベントとマイルストーンイベントの両方をトラッキングします。 |
サマリー | summary |
セッション終了時にデータレイヤーに単一のサマリーを送信し、再生されたコンテンツや広告の再生時間の計算を含めます。 |
StreamType
StreamType
を構成するために、次の定数のいずれかを使用します。
値 | 説明 |
---|---|
AOD |
オンデマンドオーディオのストリームタイプ。 |
AUDIOBOOK |
オーディオブックのストリームタイプ。 |
CUSTOM |
カスタムストリームタイプ。 |
DVOD |
デジタルビデオオンデマンドのストリームタイプ。 |
LINEAR |
リニアコンテンツのストリームタイプ。 |
LIVE |
ライブコンテンツのストリームタイプ。 |
PODCAST |
ポッドキャストのストリームタイプ。 |
SONG |
曲のストリームタイプ。 |
UGC |
ユーザー生成コンテンツのストリームタイプ。 |
VOD |
ビデオオンデマンドのストリームタイプ。 |
値 | 説明 |
---|---|
aod |
オンデマンドオーディオのストリームタイプ。 |
audiobook |
オーディオブックのストリームタイプ。 |
custom |
カスタムストリームタイプ。 |
dvod |
デジタルビデオオンデマンドのストリームタイプ。 |
linear |
リニアコンテンツのストリームタイプ。 |
live |
ライブコンテンツのストリームタイプ。 |
podcast |
ポッドキャストのストリームタイプ。 |
song |
曲のストリームタイプ。 |
ugc |
ユーザー生成コンテンツのストリームタイプ。 |
vod |
ビデオオンデマンドのストリームタイプ。 |
MediaType
次のは、MediaType
の定数です。
プロパティ | 説明 |
---|---|
ALL |
オーディオとビデオを含むすべてのメディアタイプ |
AUDIO |
オーディオストリームのメディアタイプ |
VIDEO |
ビデオストリームのメディアタイプ |
プロパティ | 説明 |
---|---|
all |
オーディオとビデオを含むすべてのメディアタイプ |
audio |
オーディオストリームのメディアタイプ |
video |
ビデオストリームのメディアタイプ |
State
プレーヤーの状態トラッキングは、再生中のビデオプレーヤーのモード(フルスクリーンモード、クローズドキャプション、ミュートボリュームなど)をキャプチャします。プレーヤーの状態は、データレイヤー変数media_player_state
に構成されます。
プレーヤーの状態の変更をトラッキングする例:
updatePlayerState()
メソッドを呼び出して、状態値を構成します。
tealium?.media?.updatePlayerState(STATE_CONSTANT_VALUE)
playerState
変数を構成することで、状態値を構成します。
mediaSession.playerState = STATE_CONSTANT_VALUE
State
を構成するために、次の定数のいずれかを使用します。
値 | 説明 |
---|---|
CLOSED_CAPTION |
クローズドキャプションの状態タイプ |
FULLSCREEN |
フルスクリーンの状態タイプ |
IN_FOCUS |
フォーカス中の状態タイプ |
MUTE |
ミュートの状態タイプ |
PICTURE_IN_PICTURE |
ピクチャインピクチャの状態タイプ |
値 | 説明 |
---|---|
closedCaption |
クローズドキャプションの状態タイプ |
fullscreen |
フルスクリーンの状態タイプ |
inFocus |
フォーカス中の状態タイプ |
mute |
ミュートの状態タイプ |
pictureInPicture |
ピクチャインピクチャの状態タイプ |
エクスペリエンスの品質
メディアセッションのエクスペリエンスの品質は、秒単位のビットレートで構成されます。メディア再生中に現在のビットレート値が利用可能な場合は、qoe
変数としてMediaContent
オブジェクトの初期化時に提供します。品質の構成は、media_bitrate_change
tealiumイベントをトリガーします。
エクスペリエンスの品質をトラッキングする例:
updateQOE()
メソッドを呼び出して、エクスペリエンスの品質ビットレート値を構成します。
tealium?.media?.updateQOE(BITRATE_VALUE)
bitrate
変数を構成することで、エクスペリエンスの品質ビットレート値を構成します。
mediaSession.bitrate = BITRATE_VALUE
メタデータ
メタデータは、オブジェクトに関する追加情報を構成するパラメータです。メタデータをオブジェクトに渡すと、それらのキーと値のペアがデータレイヤーにも構成されます。次のオブジェクトはメタデータを受け入れます:MediaContent
、Chapter
、QoE
。
メタデータは複数のオブジェクトに構成できるため、データレイヤーの競合するメタデータキーを解決するために、複数のオブジェクトからのメタデータがオブジェクトの階層構造を使用してデータレイヤーにマージされます:MediaContent
> Chapter
> QoE
。
たとえば、MediaContent
とChapter
の両方でfeed_type
を構成した場合、最終的なデータレイヤーでは、Chapter
のメタデータの値がMediaContent
のメタデータの値を上書きします。
メタデータを構成する例:
val mediaContent: MediaContent = MediaContent(
// ...
metadata = mutableMapOf("episode" to "2", "network" to "YouTube")
)
let media = MediaContent(
// ...
metadata: ["episode": "2", "network": "YouTube"]
)
ビデオメタデータキー
次は、一般的なビデオメタデータキーの例です。
変数 | 説明 |
---|---|
authorized |
ユーザーが認証されているかどうか。 |
episode |
エピソード名または番号。 |
asset_id |
TMS ID。これは、ビデオコンテンツの業界標準のIDです。 |
daypart |
午前やプライムタイムなどの時間帯。 |
feed_type |
HD、SD、または地域などのフィードタイプ。 |
first_air_date |
メディアが初めて放送された日付。 |
first_digital_date |
メディアが初めてデジタルで利用可能になった日付。 |
genre |
ジャンル。 |
media_mvpd |
マルチチャンネルビデオプログラミングディストリビューター。通常、Cox、DirecTV、Skyなどのケーブルまたは衛星ネットワークです。 |
network |
ネットワーク。 |
originator |
ショーのオリジネーター。 |
rating |
レーティング。 |
season |
シーズン番号または名前。 |
show |
ショーの名前。 |
show_type |
ショータイプ。 |
stream_format |
ストリーム形式:0 は部分コンテンツ、1 はフルエピソードです。 |
オーディオメタデータキー
次は、一般的なオーディオメタデータキーの例です。
変数 | 説明 |
---|---|
album |
アルバム名 |
artist |
アーティスト名 |
author |
オーディオブックの著者名 |
publisher |
音楽のパブリッシャー |
record_label |
レコードレーベル名 |
station |
ラジオ局 |
トラッキングタイプの概要
トラッキングタイプは、トリガーされるTealiumイベントを決定します。トラッキングしたいイベントのレベルに基づいてトラッキングタイプを選択します。
たとえば、すべてのトラッキングメソッドを実装し、サマリートラッキングを使用する場合、media_session_end
イベントのみがトリガーされます。
フル再生イベント
フル再生トラッキングを使用して、インターバルイベントを除くすべてのメディアイベントをトラッキングします。
トラッキングされるイベントは次のとおりです。
- セッションイベント:
media_session_start
media_session_resume
media_session_end
- 広告ブレイクイベント:
media_adbreak_start
media_adbreak_end
- 広告イベント:
media_ad_start
media_ad_end
media_ad_click
media_ad_skip
- チャプターイベント:
media_chapter_start
media_chapter_skip
media_chapter_end
- バッファイベント:
media_buffer_start
media_buffer_end
- プレーヤーイベント:
media_play
media_pause
media_seek_start
media_seek_end
- その他のイベント
media_bitrate_change
インターバルイベント
インターバルトラッキングを使用して、メディアプレーヤーの状態を定期的にトラッキングします。このタイプを使用すると、ping()
メソッドが10秒ごとに呼び出され、コンテンツが再生されているかどうかを確認し、データレイヤーのtealium_event
をmedia_interval
に構成します。
トラッキングされるイベントは次のとおりです。
- セッションイベント:
media_session_start
media_session_resume
media_session_end
- プレーヤーイベント:
media_play
media_pause
- インターバルイベント:
media_interval
マイルストーンイベント
マイルストーントラッキングを使用して、コンテンツの再生率が達成されたときにトラッキングします。各マイルストーンのパーセンテージが達成されるたびに、sendMilestone()
メソッドが自動的に呼び出され、データレイヤーのtealium_event
がmedia_milestone
に構成されます。
トラッキングされるイベントは次のとおりです。
- マイルストーンイベント:
media_milesetone
- セッションイベント:
media_session_start
media_session_resume
media_session_end
- プレーヤーイベント:
media_play
media_pause
media_seek_start
media_seek_end
- 広告ブレイクイベント:
media_adbreak_start
media_adbreak_end
インターバルマイルストーンイベント
インターバルマイルストーントラッキングを使用して、インターバルイベントとマイルストーンイベントの両方をトラッキングします。
サマリーイベント
サマリートラッキングを使用して、セッションが終了したときに単一のサマリーイベントをデータレイヤーに送信します。セッションのサマリーイベントには、再生されたコンテンツや広告の再生時間の計算が含まれます。
サマリーイベントは次のとおりです。
- セッションイベント:
media_session_start
media_session_end
トラッキングされるすべてのメディアサマリー変数のリストを参照してください。
比較チャート
利用可能なすべてのメディアイベントの完全なリストについては、トラックセクションを参照してください。
イベント | フル再生 | インターバル | マイルストーン | インターバルマイルストーン | サマリー |
---|---|---|---|---|---|
セッションの開始/再開/終了 | ✔ | ✔ | ✔ | ✔ | ✔ |
チャプターの開始/スキップ/終了 | ✔ | ||||
広告ブレイクの開始/終了 | ✔ | ✔ | ✔ | ||
広告の開始/クリック/スキップ/終了 | ✔ | ||||
バッファの開始/終了 | ✔ | ||||
マイルストーン | ✔ | ✔ | ✔ | ||
再生 | ✔ | ✔ | ✔ | ✔ | |
一時停止 | ✔ | ✔ | ✔ | ||
シークの開始/終了 | ✔ | ✔ | ✔ | ||
プレーヤービットレートの変更 | ✔ | ||||
プレーヤーの状態変更 | ✔ | ||||
インターバル | ✔ | ✔ |
トラック
MediaContent
オブジェクトを初期化した後、次のメソッドを使用してメディアのインタラクションをトラッキングします。
メディアセッション
メディアセッションは、チャプター、広告ブレイク、広告、メディアプレーヤーイベントを含むメディアコンテンツ全体です。
メディアセッションのトラッキングを開始するには、startSession()
メソッドをMediaContent
オブジェクトとともに呼び出します。メディアセッションのトラッキングを停止するには、endSession()
メソッドを呼び出します。
セッションの開始はplay()
イベントを意味しません。
チャプターをトラッキングする例:
tealium?.media?.startSession(mediaContentObject)
//...
tealium?.media?.endSession()
let mediaSessionObject = tealium?.media?.createSession(
from: mediaContentObject)
mediaSessionObject.startSession()
// ...
mediaSessionObject.end()
最終更新日 :: 2024年November月6日