Skip to content

Commit 1d0da07

Browse files
committed
resolve neilsen-kotlin edits
1 parent 9220f49 commit 1d0da07

File tree

3 files changed

+60
-57
lines changed

3 files changed

+60
-57
lines changed

src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/nielsen-dtvr-swift.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ hidden: true
55

66
Digital in TV Ratings (DTVR) responds to the shifting and complex multi-platform, multi-device and multi-distribution landscape by providing comprehensive measurement of digital content consumption—including streaming TV commercial video, static web pages and mobile apps—across all major devices and platforms. The [Analytics-Swift Nielsen-DTVR Plugin](https://github.com/segment-integrations/analytics-swift-nielsen-dtvr){:target="_blank”} tracks sessions for [Analytics-Swift](https://github.com/segmentio/analytics-swift){:target="_blank”}.
77

8-
## Getting Started
8+
## Getting started
99

1010
To get started with Nielsen-DTVR and retrieve an `appid` to configure this integration, you must complete the following prerequisites:
1111
- Fill out your company info and work with a Nielsen representative.

src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/nielsen-dcr-kotlin-android.md

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
---
22
title: Analytics Kotlin Nielsen DCR Plugin
3-
strat: kotlin
43
---
54

6-
Nielsen Digital Content Ratings (DCR) respond to the shifting, complex multi-platform, multi-device and multi-distribution landscape by providing comprehensive measurement of digital content consumption—including streaming video, static web pages and mobile apps—across all major devices and platforms. The [Analytics-Kotlin Nielsen-DCR Plugin](https://github.com/segment-integrations/analytics-kotlin-nielsen-dcr) tracks data for [Analytics-Kotlin](https://github.com/segmentio/analytics-kotlin).
5+
Nielsen Digital Content Ratings (DCR) respond to the shifting and complex multi-platform, multi-device, and multi-distribution landscape by providing comprehensive measurement of digital content consumption—including streaming video, static web pages and mobile apps—across all major devices and platforms. The Analytics-Kotlin Nielsen-DCR Plugin](https://github.com/segment-integrations/analytics-kotlin-nielsen-dcr){:target="_blank”} tracks data for [Analytics-Kotlin](https://github.com/segmentio/analytics-kotlin){:target="_blank”}.
76

8-
## Getting Started
7+
## Getting started
8+
9+
10+
To get started with Nielsen-DCR and retrieve an appid to configure this integration, you must complete the following prerequisite steps with Nielsen:
11+
- Fill out your company info and work with a Nielsen representative.
12+
- Sign a license agreement on the Nielsen engineering portal.
13+
- Sign an NDA to sign prior to accessing the download.
14+
- Complete a pre-certification process with your Nielsen representative before shipping this implementation to production.
915

1016
### Adding the dependency
11-
To install the Segment-Nielsen-DCR integration, simply add this line to your gradle file:
17+
To install the Segment-Nielsen-DCR integration, add this line to your gradle file:
1218

1319
```
1420
implementation 'com.segment.analytics.kotlin.destinations:nielsen-dcr:<latest_version>'
@@ -20,7 +26,7 @@ Or the following for Kotlin DSL
2026
implementation("com.segment.analytics.kotlin.destinations:nielsen-dcr:<latest_version>")
2127
```
2228

23-
Also add the Maven Nielsen Digital SDK repo (since Nielsen doesn’t publish it on Maven Central) inside repositories section in project level build.gradle.
29+
Also add the Maven Nielsen Digital SDK repo (since Nielsen doesn’t publish it on Maven Central) inside the repositories section in your project level build.gradle.
2430
```
2531
allprojects {
2632
repositories {
@@ -31,6 +37,7 @@ allprojects {
3137
}
3238
}
3339
```
40+
3441
Or the following for Kotlin DSL
3542
```
3643
allprojects {
@@ -44,9 +51,9 @@ allprojects {
4451
4552
```
4653

47-
## Using the Plugin in your App
54+
## Using the plugin in your app
4855

49-
Open the file where you setup and configure the Analytics-Kotlin library. Add this plugin to the list of imports.
56+
Open the file where you set up and configured the Analytics-Kotlin library. Add this plugin to the list of imports.
5057

5158
```
5259
import com.segment.analytics.kotlin.destinations.nielsendcr.NielsenDCRDestination
@@ -62,12 +69,12 @@ Just under your Analytics-Kotlin library setup, call `analytics.add(plugin = ...
6269
analytics.add(plugin = NielsenDCRDestination())
6370
```
6471

65-
Your events will now begin to flow to Nielsen-DCR in device mode.
72+
Your events contain Nielsen-DCR session data and will now begin to flow to Nielsen-DCR in device-mode.
6673

6774

6875
## Screen / Page
6976

70-
Segment supports translating `screen` or `page` to Nielsen as a Static App Measurement event. We will translate the following properties to the expected Nielsen metadata:
77+
Segment supports translating Screen or Page to Nielsen as a Static App Measurement event. Segment translates the following properties to the expected Nielsen metadata:
7178

7279
| Segment Property Name | Nielsen | Nielsen Description |
7380
| --------------------- | ---------- | --------------------------------------- |
@@ -77,25 +84,27 @@ Segment supports translating `screen` or `page` to Nielsen as a Static App Measu
7784
| integration option | `segC` | Required (optional for web). Segment B. |
7885
| integration option | `crossId1` | Standard episode ID (mobile only) |
7986

80-
\* On web and mobile, you can map a custom property to `section` using the **Custom Page/Screen Section Property Name** setting. If this setting is left blank, Segment will fallback on the top-level `name`.
87+
\* On web and mobile, you can map a custom property to `section` using the Custom Page/Screen Section Property Name setting. If this setting is left blank, Segment will fallback on the top-level `name`.
8188

8289
## Track
8390

84-
Segment only supports sending `track` events as outlined in our [Video Spec](/docs/connections/spec/video/). To get started tracking video content through Segment, make sure you are using a media player that has an API which allows you to detect the player state such as video or ad plays. For example, you would not be able to collect ad plays using YouTube since their YouTube SDK does not expose any hooks into player states during ad plays.
91+
Segment only supports sending Track events as outlined in the [Video Spec](/docs/connections/spec/video/). To start tracking video content through Segment, use a media player with an API which allows you to detect the player state, like video or ad plays. For example, you cannot collect ad plays using YouTube because their YouTube SDK doesn't expose any hooks into player states during ad plays.
8592

86-
**IMPORTANT**: If you do not implement the Segment [Video Spec](/docs/connections/spec/video/) properly with key lifecycle events, this integration will not behave properly.
93+
Once you've selected a media player with an API that exposes the player state, configure video tracking using Segment's [Video Spec](/docs/connections/spec/video/) and implement video tracking as in the Spec. After you've configured video tracking according to the Video Spec, Segment maps the semantic events and properties to Nielsen's relevant methods and metadata.
94+
95+
> warning "This integration requires strict adherence to Segment's Video Spec"
96+
> If you do not implement the Segment [Video Spec](/docs/connections/spec/video/) properly with key lifecycle events, you might end up with unexpected behavior.
8797
88-
Again, also refer to our [Video Spec](/docs/connections/spec/video/) and implement video tracking as outlined there. We will map the semantic events and properties to Nielsen's relevant methods and metadata.
8998

9099
### Heartbeats
91100

92101
Nielsen expects a heartbeat called with `playheadPosition` during session play every second until the stream is completed, paused or interrupted (due to ad breaks or buffering). The playhead position is the current location in seconds of the playhead from the beginning of the asset. For livestream, Segment expects a negative integer that represents the offset in seconds in relation to the current timestamp. For example, if content is being livestreamed at 8PM but the viewer is 30 seconds behind, the value of this property should be -30. You can override this and pass the current time in seconds to Nielsen by toggling the `Enable Default to Current Time for Livestream Playhead Position` setting.
93102

94-
Segment will set a timer to call this heartbeat event (`–(void) playheadPosition: (long long) playheadPos)`, `setTimeout (web)`) every second in background. You do **NOT** have to call the Segment equivalent heartbeat event (`Video Content/Ad Playing`) each second. You should follow our spec and call the Segment heartbeat event every 10 seconds (recommended). While we will keep state of our own playhead position for these background hearbeats, when we do receive an explicit Segment heartbeat event, we will respect its `properties.position` and restart the background heartbeats from that position.
103+
Segment sets a timer to call this heartbeat event (`–(void) playheadPosition: (long long) playheadPos)`, `setTimeout (web)`) every second in the background. You do **NOT** have to call the Segment equivalent heartbeat event (`Video Content/Ad Playing`) each second. You should follow the recommendations in the Video Spec and call the Segment heartbeat event every 10 seconds. While Nielsen keeps state of its own playhead position for these background heartbeats, when they do receive an explicit Segment heartbeat event the background heartbeats are restarted from that position.
95104

96105
### Playback Events
97106

98-
When you call `Video Playback Started` and `Video Playback Resumed`, Segment will call the Nielsen-DCR `play` method with the relevant `channelInfo`:
107+
When you call `Video Playback Started` and `Video Playback Resumed`, Segment calls the Nielsen-DCR `play` method with the relevant `channelInfo`:
99108

100109
```
101110
NSDictionary *channelInfo = @{
@@ -108,7 +117,7 @@ NSDictionary *channelInfo = @{
108117
109118
```
110119

111-
From there we will map to the relevant events on the instance as outlined below:
120+
From there, Segment maps Nielsen events to relevant Segment events as outlined below:
112121

113122
| Nielsen-DCR Spec | Segment Video Spec |
114123
| ------------------------------------------ | --------------------------------- |
@@ -121,7 +130,8 @@ From there we will map to the relevant events on the instance as outlined below:
121130
| `-(void) end` and Heartbeat timer stopped | `Video Playback Completed` |
122131

123132

124-
For playback events, Segment's video spec expects either `ad_asset_id​` or `content_asset_id​` depending on whether the video is an ad or content. Segment will default to mapping `ad_asset_id` to Nielsen's ad metadata `assetid` and `content_asset_id` to Nielsen's content metadata. The default Segment property can be overridden in your integration settings: `Custom Content Asset Id Property Name` or `Custom Ad Asset Id Property Name`.
133+
For playback events, Segment's Video Spec expects either `ad_asset_id​` or `content_asset_id​` depending on whether the video is an ad or content. Segment defaults to mapping `ad_asset_id` to Nielsen's ad metadata `assetid` and `content_asset_id` to Nielsen's content metadata. The default Segment property can be overridden in your integration settings: `Custom Content Asset Id Property Name` or `Custom Ad Asset Id Property Name`.
134+
125135

126136
### Content Events
127137

@@ -131,7 +141,7 @@ For playback events, Segment's video spec expects either `ad_asset_id​` or `co
131141
| Heartbeat timer updated | `Video Content Playing ` |
132142
| `–(void) end` and `-(void) stop` | `Video Content Completed` |
133143

134-
**Content Properties (Labels)**
144+
#### Content Properties (Labels)
135145

136146
| Nielsen-DCR metadata | Segment Property |
137147
| -------------------- | ----------------------- |
@@ -187,7 +197,7 @@ The Segment-Nielsen-DCR integration has logic to check for `type` in case of a p
187197
`camelCase` is expected for Android.
188198

189199

190-
## Integration Specific Options
200+
#### Integration specific options
191201

192202
Example for Android:
193203

@@ -228,8 +238,7 @@ Content originator ID. This value is only required for distributors.
228238
## FAQ
229239

230240
#### How do you determine App Name?
231-
232-
For Android, we retrieve the name of the application package from the [PackageManager](https://developer.android.com/reference/android/content/Context.html#getPackageManager()){:target="_blank"}.
241+
Segment retrieves the name of the application package from the [PackageManager](https://developer.android.com/reference/android/content/Context.html#getPackageManager()){:target="_blank"}.
233242

234243
#### How do you determine App Version?
235244

@@ -239,7 +248,7 @@ For Android, we retrieve the version of the application package from the [Packag
239248

240249
#### What are the Nielsen-DCR `clientId` and `subbrand` values?
241250

242-
The Parent Client ID and Sub-Brand (VCID) values are automatically populated through the AppID, which is Nielsen Supplied. By default, `clientid` and `subbrand` are set up in Nielsen backend configuration to capture brand and sub-brand information. The fields get populated from backend for a registered client `appid`.
251+
The Parent Client ID and Sub-Brand (VCID) values are automatically populated through the AppID, which is Nielsen Supplied. By default, `clientid` and `subbrand` are set up in Nielsen's backend configuration to capture brand and sub-brand information. Nielsen populates the fields from backend for a registered client `appid`.
243252

244253
#### Can I override the Nielsen-DCR `clientId` and `subbrand` values?
245254

0 commit comments

Comments
 (0)