Overview

Swagger

swagger
Figure 1. Swagger link

Headers

Content-Type: application/json
User-Agent: (1)
X-App-Installation-Id: (2)
X-App-Id: (3)
X-Api-Key: (4)
X-App-Country: (5)
X-App-Language: (6)
X-App-Version: (7)
1 should be similar to user agents for web browsers. Example for Android: Mozilla/5.0 (Linux; Android 13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.128 Mobile Safari/537.36
2 uniquely identifies the app installation. The value should be the same after the application upgrade.
3 application identifier - unique per application and platform.
4 API Key (intentionally not a secret)
5 application current country - two-letter code for the country (ISO 3166-1 alpha-2) (example: US)
6 current application language (BCP 47) (example: en or en-US)
7 application version

Application identifiers

  • android = bd5H8J

  • iOS = CVTyDf

Screens and modal

Splash Screen

screen
Figure 2. Splash screen
Splash screen event
{
  "events": [
    {
      "eventId": "cf3be362-80ad-1442-4962-6a273566bdea",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:26:52.387Z",
      "eventType": "navigation.screenLoaded",
      "data": {
        "view": "view://splash"
      }
    }
  ]
}
Adobe request
{
  "scXmlVer": "1.0",
  "timestamp": "2022-12-19T13:26:52.387Z",
  "pageName": "Splash Screen",
  "pageType": "Splash Screen",
  "channel": "Splash Screen",
  "reportSuiteID": "viaplutopodcasts",
  "marketingcloudorgid": "ED7001AC512D2ABD0A490D4C@AdobeOrg",
  "marketingCloudVisitorID": "76654219628291754860146275602826173069",
  "contextData": {
    "v.activity": "pageView",
    "v.pv": "true",
    "v.pageName": "Splash Screen",
    "v.pageType": "Splash Screen",
    "v.channel": "Splash Screen",
    "v.edenCode": "eden-android-v2",
    "v.applicationName": "Pluto TV Podcasts",
    "v.platform": "android",
    "v.appVersion": "84.0.8",
    "v.appInstallationId": "69a83480-26cd-4d1c-8436-f5b8a0d655cb",
    "v.appName": "Pluto TV Podcasts android",
    "v.appID": "Pluto TV Podcasts android 84.0.8",
    "v.franchise": "NO_FRANCHISE"
  }
}

Main screen

screen
Figure 3. Main screen
Main screen event
{
  "events": [
    {
      "eventId": "eacaed4a-d14c-44db-bb87-12a1aeead406",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:26:52.387Z",
      "eventType": "navigation.screenLoaded",
      "data": {
        "view": "view://home"
      }
    }
  ]
}
Adobe request
{
  "scXmlVer": "1.0",
  "timestamp": "2022-12-19T13:26:52.387Z",
  "pageName": "Home Screen",
  "pageType": "Home Screen",
  "channel": "Home Screen",
  "reportSuiteID": "viaplutopodcasts",
  "marketingcloudorgid": "ED7001AC512D2ABD0A490D4C@AdobeOrg",
  "marketingCloudVisitorID": "51227159711590082760368295523646776855",
  "contextData": {
    "v.activity": "pageView",
    "v.pv": "true",
    "v.pageName": "Home Screen",
    "v.pageType": "Home Screen",
    "v.channel": "Home Screen",
    "v.edenCode": "eden-android-v2",
    "v.applicationName": "Pluto TV Podcasts",
    "v.platform": "android",
    "v.appVersion": "84.0.8",
    "v.appInstallationId": "54b6507b-d736-4f4a-85ec-dbec77fb6f87",
    "v.appName": "Pluto TV Podcasts android",
    "v.appID": "Pluto TV Podcasts android 84.0.8",
    "v.franchise": "NO_FRANCHISE"
  }
}

Show modal

screen
Figure 4. Show modal

Open

Modal open event
{
  "events": [
    {
      "eventId": "5bfbd9a1-5d43-48d2-be24-0aad8150fce6",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:26:52.387Z",
      "eventType": "navigation.modalOpened",
      "data": {
        "view": "view://content/shows/b8Iybdso",
        "parentView": "view://home",
        "metadata": {
          "showName": "Roy's Job Fair"
        }
      }
    }
  ]
}
Adobe request
{
  "scXmlVer": "1.0",
  "timestamp": "2022-12-19T13:26:52.387Z",
  "pageName": "Show Screen|Roy's Job Fair",
  "pageType": "Show Screen|Roy's Job Fair",
  "channel": "Show Screen|Roy's Job Fair",
  "reportSuiteID": "viaplutopodcasts",
  "marketingcloudorgid": "ED7001AC512D2ABD0A490D4C@AdobeOrg",
  "marketingCloudVisitorID": "14078797658940255396514861510027527027",
  "contextData": {
    "v.activity": "pageView",
    "v.pv": "true",
    "v.pageName": "Show Screen|Roy's Job Fair",
    "v.pageType": "Show Screen|Roy's Job Fair",
    "v.channel": "Show Screen|Roy's Job Fair",
    "v.edenCode": "eden-android-v2",
    "v.applicationName": "Pluto TV Podcasts",
    "v.platform": "android",
    "v.appVersion": "84.0.8",
    "v.appInstallationId": "b93dc8ef-cad7-4482-8103-f407ad0225d4",
    "v.appName": "Pluto TV Podcasts android",
    "v.appID": "Pluto TV Podcasts android 84.0.8",
    "v.franchise": "Roy's Job Fair"
  }
}

Close

Modal close event
{
  "events": [
    {
      "eventId": "5bfbd9a1-5d43-48d2-be24-0aad8150fce6",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:26:52.387Z",
      "eventType": "navigation.modalClosed",
      "data": {
        "view": "view://content/shows/b8Iybdso",
        "parentView": "view://home",
        "metadata": {
          "showName": "Roy's Job Fair"
        }
      }
    }
  ]
}
Adobe request
{
  "scXmlVer": "1.0",
  "timestamp": "2022-12-19T13:26:52.387Z",
  "pageName": "Home Screen",
  "pageType": "Home Screen",
  "channel": "Home Screen",
  "reportSuiteID": "viaplutopodcasts",
  "marketingcloudorgid": "ED7001AC512D2ABD0A490D4C@AdobeOrg",
  "marketingCloudVisitorID": "51227159711590082760368295523646776855",
  "contextData": {
    "v.activity": "pageView",
    "v.pv": "true",
    "v.pageName": "Home Screen",
    "v.pageType": "Home Screen",
    "v.channel": "Home Screen",
    "v.edenCode": "eden-android-v2",
    "v.applicationName": "Pluto TV Podcasts",
    "v.platform": "android",
    "v.appVersion": "84.0.8",
    "v.appInstallationId": "54b6507b-d736-4f4a-85ec-dbec77fb6f87",
    "v.appName": "Pluto TV Podcasts android",
    "v.appID": "Pluto TV Podcasts android 84.0.8",
    "v.franchise": "NO_FRANCHISE"
  }
}

Episode player modal

screen
Figure 5. Episode player modal opened

Open

Modal open event
{
  "events": [
    {
      "eventId": "5bfbd9a1-5d43-48d2-be24-0aad8150fce6",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:26:52.387Z",
      "eventType": "navigation.modalOpened",
      "data": {
        "view": "view://content/episodes/p0dqcmm5/player",
        "parentView": "view://content/shows/b8Iybdso",
        "metadata": {
          "contentTitle": "Food Glorious Food w/Chef Rock Harper",
          "showName": "Roy's Job Fair"
        }
      }
    }
  ]
}
Adobe request
{
  "scXmlVer": "1.0",
  "timestamp": "2022-12-19T13:26:52.387Z",
  "pageName": "Episode Player Screen|Roy's Job Fair|Food Glorious Food w/Chef Rock Harper",
  "pageType": "Episode Player Screen|Roy's Job Fair|Food Glorious Food w/Chef Rock Harper",
  "channel": "Episode Player Screen|Roy's Job Fair|Food Glorious Food w/Chef Rock Harper",
  "reportSuiteID": "viaplutopodcasts",
  "marketingcloudorgid": "ED7001AC512D2ABD0A490D4C@AdobeOrg",
  "marketingCloudVisitorID": "89369866462298891658130337517353739679",
  "contextData": {
    "v.activity": "pageView",
    "v.pv": "true",
    "v.pageName": "Episode Player Screen|Roy's Job Fair|Food Glorious Food w/Chef Rock Harper",
    "v.pageType": "Episode Player Screen|Roy's Job Fair|Food Glorious Food w/Chef Rock Harper",
    "v.channel": "Episode Player Screen|Roy's Job Fair|Food Glorious Food w/Chef Rock Harper",
    "v.edenCode": "eden-android-v2",
    "v.applicationName": "Pluto TV Podcasts",
    "v.platform": "android",
    "v.appVersion": "84.0.8",
    "v.appInstallationId": "e33ba49b-d83f-438d-b676-23e27dc6ff80",
    "v.appName": "Pluto TV Podcasts android",
    "v.appID": "Pluto TV Podcasts android 84.0.8",
    "v.franchise": "Roy's Job Fair"
  }
}

Close

Modal close event
{
  "events": [
    {
      "eventId": "5bfbd9a1-5d43-48d2-be24-0aad8150fce6",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:26:52.387Z",
      "eventType": "navigation.modalClosed",
      "data": {
        "view": "view://content/episodes/p0dqcmm5/player",
        "parentView": "view://content/shows/b8Iybdso",
        "metadata": {
          "contentTitle": "Food Glorious Food w/Chef Rock Harper",
          "showName": "Roy's Job Fair"
        }
      }
    }
  ]
}
Adobe request
{
  "scXmlVer": "1.0",
  "timestamp": "2022-12-19T13:26:52.387Z",
  "pageName": "Show Screen|Roy's Job Fair",
  "pageType": "Show Screen|Roy's Job Fair",
  "channel": "Show Screen|Roy's Job Fair",
  "reportSuiteID": "viaplutopodcasts",
  "marketingcloudorgid": "ED7001AC512D2ABD0A490D4C@AdobeOrg",
  "marketingCloudVisitorID": "14078797658940255396514861510027527027",
  "contextData": {
    "v.activity": "pageView",
    "v.pv": "true",
    "v.pageName": "Show Screen|Roy's Job Fair",
    "v.pageType": "Show Screen|Roy's Job Fair",
    "v.channel": "Show Screen|Roy's Job Fair",
    "v.edenCode": "eden-android-v2",
    "v.applicationName": "Pluto TV Podcasts",
    "v.platform": "android",
    "v.appVersion": "84.0.8",
    "v.appInstallationId": "b93dc8ef-cad7-4482-8103-f407ad0225d4",
    "v.appName": "Pluto TV Podcasts android",
    "v.appID": "Pluto TV Podcasts android 84.0.8",
    "v.franchise": "Roy's Job Fair"
  }
}

Player sequence (sample)

The playerSessionId remains the same for consecutive playing session (if the user plays 4 episodes in a row, they would share one playerSessionId.
The mediaSessionId remains the same for single viewing of the content.

Player is paused:

  • for Pluto TV Podcasts sending player.contentHeartbeat is optional

  • after some timeout (~1 minute) player.sessionEnded is sent by the app

  • if user hits play after timeout (see point above)

    • player.sessionStarted is sent

      • new mediaSessionId is generated

      • playerSessionId remains the same

      • flag data.metadata.sessionResumed should be set to true

      • rest of data in player.sessionStarted should remain the same

    • player.contentPlayingStarted is sent

Episode loaded (0 sec)

{
  "events": [
    {
      "eventId": "26c1675a-fdce-495c-8110-fb8b8931483a",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:26:52.387Z",
      "eventType": "player.sessionStarted",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "e3775649-195f-4784-b541-37ada1ea35d6",
        "contentRef": "p0dqcmm5",
        "playheadMs": 3000,
        "playerName": "cvp",
        "playerVersion": "2.1",
        "metadata": {
          "contentTitle": "Charge Trump with insurrection, Capitol panel says",
          "contentLengthMs": 1740000,
          "contentPublishDate": "2022-12-19T12:00:00.000Z",
          "contentEpisodeNumber": "64",
          "contentTmsId": "EP043280160002",
          "showName": "Global News Podcast",
          "showRef": "p02nq0gn",
          "contentGenres": [
            "news"
          ],
          "liveChannelName": "news",
          "contentSource": "userpick",
          "playerVisibility": "foreground"
        }
      }
    }
  ]
}
Adobe request
{
  "eventType": "sessionStart",
  "playerTime": {
    "playhead": 3,
    "ts": 1671456412387
  },
  "params": {
    "analytics.trackingServer": "https://mtvnetworks.hb-api.omtrdc.net",
    "analytics.reportSuite": "viaplutopodcasts",
    "analytics.enableSSL": false,
    "visitor.marketingCloudOrgId": "ED7001AC512D2ABD0A490D4C@AdobeOrg",
    "visitor.marketingCloudUserId": "42926453950277581628477595494859168726",
    "appInstallationId": "ec1b26a2-c5f6-4657-bb12-c6d95aaa3699",
    "media.id": "p0dqcmm5",
    "media.name": "Charge Trump with insurrection, Capitol panel says",
    "media.length": 1740,
    "media.contentType": "Linear",
    "media.playerName": "cvp",
    "media.channel": "Pluto TV Podcasts",
    "media.show": "Global News Podcast",
    "media.episode": "64",
    "media.assetId": "EP043280160002",
    "media.genre": "news",
    "media.showType": "0",
    "media.network": "Pluto TV Podcasts"
  },
  "customMetadata": {
    "v.activity": "fepStart",
    "v.pv": "false",
    "v.edenCode": "eden-android-v2",
    "v.applicationName": "Pluto TV Podcasts",
    "v.platform": "android",
    "v.appVersion": "84.0.8",
    "v.appInstallationId": "ec1b26a2-c5f6-4657-bb12-c6d95aaa3699",
    "v.appName": "Pluto TV Podcasts android",
    "v.appID": "Pluto TV Podcasts android 84.0.8",
    "v.franchise": "Global News Podcast",
    "v.epCount": "1",
    "v.episodeN": "64",
    "v.epLength": "1740",
    "v.epmgid": "p0dqcmm5",
    "v.eptype": "monolithic",
    "v.franchiseID": "p02nq0gn",
    "v.genre": "news",
    "v.vidContentType": "Full Episode",
    "v.vidEpTitle": "Charge Trump with insurrection, Capitol panel says",
    "v.vidFranchise": "Global News Podcast",
    "v.vidLength": "1740",
    "v.vidPlayerName": "cvp",
    "v.vidSeriesTitle": "Global News Podcast",
    "v.vidTitle": "Charge Trump with insurrection, Capitol panel says",
    "v.consecutivePlaying": "0",
    "v.liveChannelName": "news"
  }
}

Episode playing started (0 sec)

{
  "events": [
    {
      "eventId": "13dafc8b-ac66-40bb-94f5-404db17d1569",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:26:52.587Z",
      "eventType": "player.contentPlayingStarted",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "e3775649-195f-4784-b541-37ada1ea35d6",
        "playheadMs": 3000,
        "contentRef": "p0dqcmm5"
      }
    }
  ]
}
Adobe request
{
  "eventType": "play",
  "playerTime": {
    "playhead": 3,
    "ts": 1671456412587
  }
}

First heartbeat (10 sec)

{
  "events": [
    {
      "eventId": "75f00fb4-614b-4617-adc4-b16b31c7ae18",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:02.587Z",
      "eventType": "player.contentHeartbeat",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "e3775649-195f-4784-b541-37ada1ea35d6",
        "playheadMs": 13000,
        "contentRef": "p0dqcmm5"
      }
    }
  ]
}
Adobe request
{
  "eventType": "ping",
  "playerTime": {
    "playhead": 13,
    "ts": 1671456422587
  }
}

Second heartbeat (20 sec)

{
  "events": [
    {
      "eventId": "ec61961f-f1b1-490e-9cef-82b04046960c",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:12.587Z",
      "eventType": "player.contentHeartbeat",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "e3775649-195f-4784-b541-37ada1ea35d6",
        "playheadMs": 23000,
        "contentRef": "p0dqcmm5"
      }
    }
  ]
}
Adobe request
{
  "eventType": "ping",
  "playerTime": {
    "playhead": 23,
    "ts": 1671456432587
  }
}

Episode paused (22 sec)

{
  "events": [
    {
      "eventId": "c09bbbff-2743-4337-a653-636fb1df0e49",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:14.587Z",
      "eventType": "player.contentPaused",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "e3775649-195f-4784-b541-37ada1ea35d6",
        "playheadMs": 25000,
        "contentRef": "p0dqcmm5"
      }
    }
  ]
}
Adobe request
{
  "eventType": "pauseStart",
  "playerTime": {
    "playhead": 25,
    "ts": 1671456434587
  }
}

Third heartbeat (30 sec) - optional

When player is in paused state player.contentHeartbeat are optional for Pluto TV Podcasts app. This is caused by introducing additional restrictions for player processes in Android and iOS.
{
  "events": [
    {
      "eventId": "415dc074-fbd8-413c-8236-82b4278559f5",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:22.587Z",
      "eventType": "player.contentHeartbeat",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "e3775649-195f-4784-b541-37ada1ea35d6",
        "playheadMs": 25000,
        "contentRef": "p0dqcmm5"
      }
    }
  ]
}
Adobe request
{
  "eventType": "ping",
  "playerTime": {
    "playhead": 25,
    "ts": 1671456442587
  }
}

Episode started after pause (33 sec)

{
  "events": [
    {
      "eventId": "829aa346-c408-4361-b6c9-26e613b710bc",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:25.587Z",
      "eventType": "player.contentPlayingStarted",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "e3775649-195f-4784-b541-37ada1ea35d6",
        "playheadMs": 25000,
        "contentRef": "p0dqcmm5"
      }
    }
  ]
}
Adobe request
{
  "eventType": "play",
  "playerTime": {
    "playhead": 25,
    "ts": 1671456445587
  }
}

Heartbeat (40 sec)

{
  "events": [
    {
      "eventId": "b3c0894d-6502-4dac-a89e-1e2ba96c3819",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:32.587Z",
      "eventType": "player.contentHeartbeat",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "e3775649-195f-4784-b541-37ada1ea35d6",
        "playheadMs": 32000,
        "contentRef": "p0dqcmm5"
      }
    }
  ]
}
Adobe request
{
  "eventType": "ping",
  "playerTime": {
    "playhead": 32,
    "ts": 1671456452587
  }
}

Player moved to background (41 sec)

{
  "events": [
    {
      "eventId": "8e6bce01-83a4-2978-2bdf-f0b3376e174f",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:33.587Z",
      "eventType": "player.stateChanged",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "e3775649-195f-4784-b541-37ada1ea35d6",
        "playheadMs": 33000,
        "contentRef": "p0dqcmm5",
        "newState": {
          "playerVisibility": "background"
        }
      }
    }
  ]
}
Adobe request
{
  "eventType": "stateStart",
  "playerTime": {
    "playhead": 33,
    "ts": 1671456453587
  },
  "params": {
    "media.state.name": "background"
  }
}

Episode finished (43 sec)

{
  "events": [
    {
      "eventId": "3b320357-b968-45d7-8a8d-ed946c11df55",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:35.587Z",
      "eventType": "player.sessionEnded",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "e3775649-195f-4784-b541-37ada1ea35d6",
        "playheadMs": 35000,
        "contentRef": "p0dqcmm5"
      }
    }
  ]
}
Adobe request
{
  "eventType": "sessionEnd",
  "playerTime": {
    "playhead": 35,
    "ts": 1671456455587
  }
}

Next episode loaded (43 sec)

{
  "events": [
    {
      "eventId": "a0139986-678c-4843-8eb8-2475c6e2f2e2",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:35.687Z",
      "eventType": "player.sessionStarted",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "0be19eff-c99a-4162-ad87-27ae4a8ded75",
        "contentRef": "p0dqvbrc",
        "playheadMs": 0,
        "playerName": "cvp",
        "playerVersion": "2.1",
        "metadata": {
          "contentTitle": "Zelensky thanks US for increased military support",
          "contentLengthMs": 11000,
          "contentPublishDate": "2022-12-22T12:00:00.000Z",
          "showName": "Global News Podcast",
          "contentGenres": [
            "news"
          ],
          "liveChannelName": "news",
          "contentSource": "autoplay",
          "playerVisibility": "background"
        }
      }
    }
  ]
}
Adobe request
Next episode loaded
{
  "eventType": "sessionStart",
  "playerTime": {
    "ts": 1671456455687,
    "playhead": 0
  },
  "params": {
    "analytics.trackingServer": "https://mtvnetworks.hb-api.omtrdc.net",
    "analytics.reportSuite": "viaplutopodcasts",
    "analytics.enableSSL": false,
    "visitor.marketingCloudOrgId": "ED7001AC512D2ABD0A490D4C@AdobeOrg",
    "visitor.marketingCloudUserId": "42926453950277581628477595494859168726",
    "appInstallationId": "ec1b26a2-c5f6-4657-bb12-c6d95aaa3699",
    "media.id": "p0dqvbrc",
    "media.name": "Zelensky thanks US for increased military support",
    "media.length": 11,
    "media.contentType": "Linear",
    "media.playerName": "cvp",
    "media.channel": "Pluto TV Podcasts",
    "media.show": "Global News Podcast",
    "media.genre": "news",
    "media.showType": "0",
    "media.network": "Pluto TV Podcasts"
  },
  "customMetadata": {
    "v.activity": "fepStart",
    "v.pv": "false",
    "v.edenCode": "eden-android-v2",
    "v.applicationName": "Pluto TV Podcasts",
    "v.platform": "android",
    "v.appVersion": "84.0.8",
    "v.appInstallationId": "ec1b26a2-c5f6-4657-bb12-c6d95aaa3699",
    "v.appName": "Pluto TV Podcasts android",
    "v.appID": "Pluto TV Podcasts android 84.0.8",
    "v.franchise": "Global News Podcast",
    "v.epCount": "1",
    "v.epLength": "11",
    "v.epmgid": "p0dqvbrc",
    "v.eptype": "monolithic",
    "v.genre": "news",
    "v.vidContentType": "Full Episode",
    "v.vidEpTitle": "Zelensky thanks US for increased military support",
    "v.vidFranchise": "Global News Podcast",
    "v.vidLength": "11",
    "v.vidPlayerName": "cvp",
    "v.vidSeriesTitle": "Global News Podcast",
    "v.vidTitle": "Zelensky thanks US for increased military support",
    "v.consecutivePlaying": "1",
    "v.liveChannelName": "news"
  }
}
Episode started in background
{
  "eventType": "stateStart",
  "playerTime": {
    "playhead": 0,
    "ts": 1671456455687
  },
  "params": {
    "media.state.name": "background"
  }
}

Next episode playing started (autoplay) (43 sec)

{
  "events": [
    {
      "eventId": "13dafc8b-ac66-40bb-94f5-404db17d1569",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:35.787Z",
      "eventType": "player.contentPlayingStarted",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "0be19eff-c99a-4162-ad87-27ae4a8ded75",
        "playheadMs": 0,
        "contentRef": "p0dqvbrc"
      }
    }
  ]
}
Adobe request
{
  "eventType": "play",
  "playerTime": {
    "playhead": 0,
    "ts": 1671456455787
  }
}

Next episode moved to foreground (48 sec)

{
  "events": [
    {
      "eventId": "9ea87463-cf39-4a66-8bc3-bf9119fbe60d",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:40.787Z",
      "eventType": "player.stateChanged",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "0be19eff-c99a-4162-ad87-27ae4a8ded75",
        "playheadMs": 5000,
        "contentRef": "p0dqvbrc",
        "newState": {
          "playerVisibility": "foreground"
        }
      }
    }
  ]
}
Adobe request
{
  "eventType": "stateEnd",
  "playerTime": {
    "playhead": 5,
    "ts": 1671456460787
  },
  "params": {
    "media.state.name": "background"
  }
}

First heartbeat for second episode (53 sec)

{
  "events": [
    {
      "eventId": "daab53b0-9929-4080-b2ed-aa20f75017bc",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:27:45.787Z",
      "eventType": "player.contentHeartbeat",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "0be19eff-c99a-4162-ad87-27ae4a8ded75",
        "playheadMs": 10000,
        "contentRef": "p0dqvbrc"
      }
    }
  ]
}
Adobe request
{
  "eventType": "ping",
  "playerTime": {
    "playhead": 10,
    "ts": 1671456465787
  }
}

Second episode ended (54 sec)

{
  "events": [
    {
      "eventId": "b702d64e-7661-45ae-86fc-3b8ea054efde",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:28:35.587Z",
      "eventType": "player.sessionEnded",
      "data": {
        "playerSessionId": "5ee82312-804f-41f8-b6cf-316de4021e6e",
        "mediaSessionId": "0be19eff-c99a-4162-ad87-27ae4a8ded75",
        "playheadMs": 11000,
        "contentRef": "p0dqvbrc"
      }
    }
  ]
}
Adobe request
{
  "eventType": "sessionComplete",
  "playerTime": {
    "playhead": 11,
    "ts": 1671456515587
  }
}

Other events

App launched

If user consents are know, always include it in payload.

{
  "events": [
    {
      "eventId": "1be07829-b915-b5e4-4863-35b8e48fbdc3",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-18T21:25:09.897Z",
      "eventType": "app.launched",
      "data": {
        "firstLaunchAfterInstallation": false,
        "appCrashed": false,
        "clientOS": "ios",
        "clientManufacturer": "Apple",
        "clientModelName": "iPhone",
        "network": "ethernet",
        "carrierName": "Verizon",
        "userConsents": {
          "socialMedia": true,
          "functional": true,
          "analyticsAndPerformance": true,
          "marketingAndAdvertising": true
        }
      }
    }
  ]
}
Adobe request
{
  "scXmlVer": "1.0",
  "reportSuiteID": "viaplutopodcasts",
  "marketingcloudorgid": "ED7001AC512D2ABD0A490D4C@AdobeOrg",
  "marketingCloudVisitorID": "83859271778310737558828286459853018037",
  "timestamp": "2022-12-18T21:25:09.897Z",
  "linkName": "ADBINTERNAL:Lifecycle",
  "linkType": "o",
  "contextData": {
    "a.DailyEngUserEvent": "DailyEngUserEvent",
    "a.MonthlyEngUserEvent": "MonthlyEngUserEvent",
    "a.Launches": "1",
    "a.LaunchEvent": "LaunchEvent",
    "a.DaysSinceLastUse": "0",
    "a.HourOfDay": "21",
    "a.DayOfWeek": "6",
    "a.OSVersion": "ios",
    "a.AppID": "Pluto TV Podcasts android 84.0.8",
    "a.DeviceName": "iPhone",
    "a.CarrierName": "Verizon",
    "a.Locale": "en"
  }
}
{
  "events": [
    {
      "eventId": "f1b1398d-a443-afb8-0412-38529a377066",
      "sessionId": "cd0ac168-40e5-4167-8bc3-d1f53b6d9b42",
      "timestamp": "2022-12-19T13:26:52.387Z",
      "eventType": "search.returned",
      "data": {
        "phrase": "gump",
        "displayResults": [
          "Forrest Gump"
        ],
        "allResultsCount": 10
      }
    }
  ]
}

Adobe Spec

All calls

  • v.activity - done

    • pageView

    • fepStart

    • actionCall

  • v.appName - done (Pluto TV Podcasts android)

  • v.appVersion -done (e.g. 84.0.8)

  • v.appID - done (e.g. Pluto TV Podcasts android 84.0.8)

  • v.edenCode - done (eden-android-v2)

  • v.pv - done (true/false)

  • v.applicationName (new evar, postponed) - done (e.g. Pluto TV Podcasts)

  • v.appInstallationId (new evar, postponed) - done (e.g. 89e72098-1092-4296-b745-304c016ad16b)

  • v.platform (new evar) - done (e.g. android)

  • v.franchise - done for media (e.g. Roy’s Job Fair)

  • v.franchiseID - done for media (e.g. b8Iybdso)

Media evars

  • v.epCount - done (always 1)

  • v.episodeN - done (e.g. 64)

  • v.epLength - done (e.g. 1740)

  • v.epmgid - done (e.g. dts43m)

  • v.eptype - done (e.g. monolithic)

  • v.vidContentType - done (e.g. Full Episode)

  • v.vidEpTitle - done (e.g. Charge Trump with insurrection, Capitol panel says)

  • v.vidFranchise - done (e.g. Global News Podcast)

  • v.vidLength - done (e.g. 1740)

  • v.vidPlayerName - done (e.g. cvp)

  • v.vidSeriesTitle - done (e.g. Global News Podcast)

  • v.vidTitle - done (e.g. Charge Trump with insurrection, Capitol panel says)

  • v.genre - done (e.g. news)

  • v.consecutivePlaying (new evar) - done (e.g. 0)

  • v.liveChannelName (new evar) - done (e.g. global news)

Page view (postponed)

  • v.pageName - to be discussed

    • Splash Screen

    • Home Screen

    • Show Screen|Roy’s Job Fair

    • Episode Player Screen|Roy’s Job Fair|Food Glorious Food w

  • v.pageType - to be discussed

  • v.channel - to be discussed

  • v.pageURL - to be discussed

  • v.navID - to be discussed

    • <prevPageName>:<some rules>

  • v.prevPageName - to be discussed

  • v.actName - to be discussed

    • clicks on season filter_3

  • v.actPageName - see v.pageName

  • pev2 - in progress

    • AMACTION:actionCall

  • v.pev2 - see: pev2

  • v.itemPosition - in progress

    • row3-item4"

  • v.modName - to be discussed

    • container detail

    • video player

    • <Name of the module>

  • v.templateType - to be discussed

    • carousel_large_custom

  • v.modName - to be discussed

    • container detail

Removed eVars

  • v.accountID

  • v.ageSubprofileID

  • v.cancellationState

  • v.profileID

  • v.profileIDstate

  • v.subscriberState

  • v.subscriptionID

  • v.subscriptionSKU

  • v.subscriptionStatus

  • v.timeStamp

  • v.tveUsrStat

  • v.tvemvpd

  • v.orientation

  • v.regStatus

  • v.authSuiteID

  • v.coppa

  • v.offlineMode

  • v.isKidsContent

  • v.kidsFlag