You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/nielsen-dtvr-swift.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ hidden: true
5
5
6
6
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”}.
7
7
8
-
## Getting Started
8
+
## Getting started
9
9
10
10
To get started with Nielsen-DTVR and retrieve an `appid` to configure this integration, you must complete the following prerequisites:
11
11
- Fill out your company info and work with a Nielsen representative.
Copy file name to clipboardExpand all lines: src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/nielsen-dcr-kotlin-android.md
+31-22Lines changed: 31 additions & 22 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,20 @@
1
1
---
2
2
title: Analytics Kotlin Nielsen DCR Plugin
3
-
strat: kotlin
4
3
---
5
4
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”}.
7
6
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.
9
15
10
16
### 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:
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.
24
30
```
25
31
allprojects {
26
32
repositories {
@@ -31,6 +37,7 @@ allprojects {
31
37
}
32
38
}
33
39
```
40
+
34
41
Or the following for Kotlin DSL
35
42
```
36
43
allprojects {
@@ -44,9 +51,9 @@ allprojects {
44
51
45
52
```
46
53
47
-
## Using the Plugin in your App
54
+
## Using the plugin in your app
48
55
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.
@@ -62,12 +69,12 @@ Just under your Analytics-Kotlin library setup, call `analytics.add(plugin = ...
62
69
analytics.add(plugin = NielsenDCRDestination())
63
70
```
64
71
65
-
Your events will now begin to flow to Nielsen-DCR in devicemode.
72
+
Your events contain Nielsen-DCR session data and will now begin to flow to Nielsen-DCR in device-mode.
66
73
67
74
68
75
## Screen / Page
69
76
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:
71
78
72
79
| Segment Property Name | Nielsen | Nielsen Description |
@@ -77,25 +84,27 @@ Segment supports translating `screen` or `page` to Nielsen as a Static App Measu
77
84
| integration option |`segC`| Required (optional for web). Segment B. |
78
85
| integration option |`crossId1`| Standard episode ID (mobile only) |
79
86
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`.
81
88
82
89
## Track
83
90
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.
85
92
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.
87
97
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.
89
98
90
99
### Heartbeats
91
100
92
101
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.
93
102
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 eventthe background heartbeats are restarted from that position.
95
104
96
105
### Playback Events
97
106
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`:
@@ -121,7 +130,8 @@ From there we will map to the relevant events on the instance as outlined below:
121
130
|`-(void) end` and Heartbeat timer stopped |`Video Playback Completed`|
122
131
123
132
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
+
125
135
126
136
### Content Events
127
137
@@ -131,7 +141,7 @@ For playback events, Segment's video spec expects either `ad_asset_id` or `co
131
141
| Heartbeat timer updated |`Video Content Playing `|
132
142
|`–(void) end` and `-(void) stop`|`Video Content Completed`|
@@ -187,7 +197,7 @@ The Segment-Nielsen-DCR integration has logic to check for `type` in case of a p
187
197
`camelCase` is expected for Android.
188
198
189
199
190
-
## Integration Specific Options
200
+
####Integration specific options
191
201
192
202
Example for Android:
193
203
@@ -228,8 +238,7 @@ Content originator ID. This value is only required for distributors.
228
238
## FAQ
229
239
230
240
#### 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"}.
233
242
234
243
#### How do you determine App Version?
235
244
@@ -239,7 +248,7 @@ For Android, we retrieve the version of the application package from the [Packag
239
248
240
249
#### What are the Nielsen-DCR `clientId` and `subbrand` values?
241
250
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`.
243
252
244
253
#### Can I override the Nielsen-DCR `clientId` and `subbrand` values?
0 commit comments