ピクチャインピクチャ

このページでは、写真​プレーヤーの状態のデータ収集について説明します。 対応するレポート指標については、画像の影響を受けるストリーム ​画像のカウント ​、および画像の合計期間を参照してください。

ピクチャーインピクチャーの状態は、ビューアがピクチャーインピクチャー再生に出入りしたときに追跡されます。 ピクチャインピクチャが開始されたときにステートスタートイベントを起動し、終了したときにステートエンドイベントを起動します。 バックエンドでは、これらのイベントから、影響を受けるストリーム、状態エントリの数、状態の合計時間という3つの指標を計算します。

プロパティ
コンテキストデータ変数
a.media.states.pictureinpicture.set, a.media.states.pictureinpicture.count, a.media.states.pictureinpicture.time
XDM コレクションフィールド
xdm.mediaCollection.statesStart[]およびxdm.mediaCollection.statesEnd[]name: "pictureInPicture"を含むエントリ)
Audience Manager特性
c_contextdata.a.media.states.pictureinpicture.set, c_contextdata.a.media.states.pictureinpicture.count, c_contextdata.a.media.states.pictureinpicture.time
必須
いいえ
様が​様と共に送信されました
状態開始状態終了

推奨される実装タイプ

Web SDK

sendEventを使用して、状態がstatesStartに追加されたmedia.statesUpdate イベントを送信します:

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.statesUpdate",
    mediaCollection: {
      statesStart: [{ name: "pictureInPicture" }],
      sessionID: "{sid}",
      playhead: 60
    }
  }
});

ビューアがピクチャーインピクチャを終了したら、別のイベントをstatesEndの状態で送信します。

code language-javascript
alloy("sendEvent", {
  xdm: {
    eventType: "media.statesUpdate",
    mediaCollection: {
      statesEnd: [{ name: "pictureInPicture" }],
      sessionID: "{sid}",
      playhead: 90
    }
  }
});
iOS

tracker.trackPlayerStateStart()tracker.trackPlayerStateEnd()MediaConstants.PlayerState.PICTURE_IN_PICTURE定数と共に使用します。

code language-swift
let stateObject = Media.createStateObjectWith(stateName: MediaConstants.PlayerState.PICTURE_IN_PICTURE)

tracker.trackPlayerStateStart(info: stateObject)
tracker.trackPlayerStateEnd(info: stateObject)
Android

tracker.trackPlayerStateStart()tracker.trackPlayerStateEnd()MediaConstants.PlayerState.PICTURE_IN_PICTURE定数と共に使用します。

code language-kotlin
val stateObject = Media.createStateObject(MediaConstants.PlayerState.PICTURE_IN_PICTURE)

tracker.trackPlayerStateStart(stateObject)
tracker.trackPlayerStateEnd(stateObject)
Roku

sendMediaEventを使用して、状態がstatesStartに追加されたmedia.statesUpdate イベントを送信します:

code language-brightscript
m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.statesUpdate",
        "mediaCollection": {
            "statesStart": [{ "name": "pictureInPicture" }],
            "playhead": 60
        }
    }
})

ビューアがピクチャーインピクチャを終了したら、別のイベントをstatesEndの状態で送信します。

code language-brightscript
m.aepSdk.sendMediaEvent({
    "xdm": {
        "eventType": "media.statesUpdate",
        "mediaCollection": {
            "statesEnd": [{ "name": "pictureInPicture" }],
            "playhead": 90
        }
    }
})
Media Edge API

statesUpdate エンドポイントをstatesStartpictureInPictureで呼び出します(ビューアがPiPを終了するとstatesEndになります)。

code language-json
{
  "events": [{
    "xdm": {
      "eventType": "media.statesUpdate",
      "mediaCollection": {
        "statesStart": [{ "name": "pictureInPicture" }],
        "sessionID": "{sid}",
        "playhead": 60
      }
    }
  }]
}

従来の実装タイプ (Analyticsのみ)

Media SDK JS 3.x

ADB.Media.createStateObjectADB.Media.PlayerState.PictureInPicture定数を使用:

code language-javascript
var stateObject = ADB.Media.createStateObject(ADB.Media.PlayerState.PictureInPicture);

tracker.trackPlayerStateStart(stateObject);
tracker.trackPlayerStateEnd(stateObject);
Chromecast

ChromecastにはPlayerStateという名前の定数がないので、ADBMobile.media.createStateObject"pictureInPicture"文字列で直接使用します。

code language-javascript
var stateObject = ADBMobile.media.createStateObject("pictureInPicture");
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateStart, stateObject);
// When the viewer exits picture-in-picture:
ADBMobile.media.trackEvent(ADBMobile.media.Event.StateEnd, stateObject);
Media Collection API

ピクチャインピクチャが開始されたときにstateStart POST リクエストを送信し、終了したときにstateEnd POSTを送信します。

code language-json
{
  "playerTime": { "playhead": 60, "ts": 1699523820000 },
  "eventType": "stateStart",
  "params": {
    "media.state.name": "pictureInPicture"
  }
}

完全なリクエスト構造については、Media Collection API イベントのリファレンス ​を参照してください。

recommendation-more-help
media-analytics-help