# Nielsen Plugin for ByteArk Player SDK iOS

# คุณสมบัติ

# ความต้องการ ของ Plugin

  • iOS 14 หรือสูงกว่า
  • XCode
  • Swift 5.5
  • ByteArkPlayerSDK version >= 0.2.1
  • (Optional) ByteArkPlayerSDKAdsPlugin version >= 0.1.1

# การติดตั้ง Plugin

# CocoaPods (แนะนำ)

CocoaPods (opens new window) เป็นเครื่องมือจัดการ dependencies สำหรับโปรเจกต์ Cocoa คุณสามารถติดตั้งได้ด้วยคำสั่งดังนี้:

gem install cocoapods
1

การติดตั้ง Nielsen Plugin โดยใช้ Cocoapods

  1. รันคำสั่งต่อไปนี้เพื่อเพิ่ม ByteArk Player SDK สำหรับ iOS Cocoapods repo:
pod repo add byteark-player-sdk-ios-specs https://github.com/byteark/byteark-player-sdk-ios-specs.git
1
  1. แก้ไขไฟล์ Podfile โดยเพิ่มบรรทัดนี้ที่จุดเริ่มต้นของไฟล์ Podfile:
source 'https://github.com/byteark/byteark-player-sdk-ios-specs.git'
1
  1. ตั้งค่า platform ให้เป็น iOS 14:
platform :ios, '14.0'
1
  1. เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ Podfile:
pod 'ByteArkPlayerSDKNielsenPlugin', '~> BYTEARK_PLAYER_SDK_NIELSEN_PLUGIN_VERSION'
1

Note

แทนที่ BYTEARK_PLAYER_SDK_NIELSEN_PLUGIN_VERSION ด้วยหมายเลขเวอร์ชันของ ByteArkPlayerSDKNielsenPlugin ที่คุณต้องการใช้

  1. รันคำสั่ง pod install ใน Terminal:
pod install
1

Note

Cocoapods จะติดตั้ง SDK โดยตรงจาก Github private repository โดยใช้ ssh key หากคุณยังไม่ได้ตั้งค่า ssh key ในบัญชี Github ของคุณ โปรดดูเอกสาร Adding a new SSH key to your GitHub account (opens new window) บนเว็บไซต์ของ Github

  1. ติดตั้ง Nielsen DCR SDK โดยใช้ Cocoapods: Digital Measurement iOS Cocoapods Guide (opens new window)

# Swift Package Manager

ใช้ Swift Package Manager เพื่อติดตั้ง Nielsen Plugin และ Nielsen DCR SDK

  1. ใน Xcode ไปที่เมนู File > Add Packages
  2. ใส่ URL: https://github.com/byteark/byteark-player-sdk-ios
  3. เลือกเวอร์ชันของ Nielsen Plugin
  4. เมื่อเสร็จสิ้น Xcode จะดาวน์โหลดปลั๊กอินโดยอัตโนมัติ
  5. เพิ่มการพึ่งพาของ Nielsen DCR SDK โดยดูคำแนะนำที่ Digital Measurement iOS Swift Package Manager Guide (opens new window)

# การใช้งาน

# การใช้งานพื้นฐาน

การใช้งานพื้นฐานของ Nielsen Plugin แบบไม่มี โฆษณา

import UIKit
import ByteArkPlayerSDK
// Step 1: Import the necessary plugins for Nielsen integration
import ByteArkPlayerSDKNielsenPlugin
class PlayerViewController: ByteArkPlayerViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        do {
            // Step 2: Create a ByteArkPlayerNielsenConfig using ByteArkPlayerNielsenConfigBuilder and set the APP_ID
            let nielsenConfig = try ByteArkPlayerNielsenConfigBuilder(appId: "PE392366B-F2C1-4BC4-AB62-A7DAFDC51XXX")
                .nolDevDebug(ByteArkPlayerNielsenSdkDebugMode.INFO)
                .build()
            // Step 3: Create a ByteArkPlayerNielsenPlugin instance using the config from step 2
            let nielsenPlugin = ByteArkPlayerNielsenPlugin(with: nielsenConfig)
            // Step 4: Set up the media item using ByteArkPlayerItemBuilder
            let item = try ByteArkPlayerItemBuilder()
                        .media(URL(string: "https://byteark-playertzxedwv.stream-playlist.byteark.com/streams/TZyZheqEJUwC/playlist.m3u8")!)
                        .posterImage(URL(string: "https://stream-image.byteark.com/image/video-cover-480p/7/H/7H6hEZrLH.png")!)
                        .mediaId("TZyZheqEJUwC") // set asset id
                        .title("Big Buck Bunny")
                        .build()
            // Step 5: Create Nielsen content metadata https://engineeringportal.nielsen.com/wiki/DCR_Thailand_Video_iOS_SDK#Create_Content_Metadata
            let contentMetadata = try ByteArkPlayerNielsenContentMetadataBuilder()
                                  .program("MyProgram")
                                  .isFullEpisode("y")
                                  .segB("CustomSegmentValueB")
                                  .segC("CustomSegmentValueC")
                                  .adloadtype("2") // set ad load type
                                  .build()
            // Step 6: Set content metadata for media item
            item.nielsenContentMetadata = contentMetadata
            // Step 7: Configure the player using ByteArkPlayerConfigBuilder, add the Nielsen plugin to the config
            let config = try ByteArkPlayerConfigBuilder()
                .item(item)
                .autoplay(true)
                .addPlugin(plugin: nielsenPlugin, name: ByteArkPlayerNielsenPlugin.PluginName) // Adding the Nielsen plugin
                .build()
            // Step 8: Apply the configuration to the player
            player.configure(with: config)
        } catch {
            print(error.localizedDescription)
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

# การใช้งานขั้นสูง

การใช้งานขั้นสูงของ Nielsen Plugin แบบมี โฆษณา

import UIKit
import ByteArkPlayerSDK
// Step 1: Import the necessary plugins for Nielsen integration
import ByteArkPlayerSDKNielsenPlugin
// Step 2: Import the necessary plugins for ads integration
import ByteArkPlayerSDKAdsPlugin
class PlayerViewController: ByteArkPlayerViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        do {
            // Step 3: Create a ByteArkPlayerNielsenConfig using ByteArkPlayerNielsenConfigBuilder and set the APP_ID
            let nielsenConfig = try ByteArkPlayerNielsenConfigBuilder(appId: "PE392366B-F2C1-4BC4-AB62-A7DAFDC51XXX")
                .nolDevDebug(ByteArkPlayerNielsenSdkDebugMode.INFO)
                .build()
            // Step 4: Create a ByteArkPlayerNielsenPlugin instance using the config from step 3
            let nielsenPlugin = ByteArkPlayerNielsenPlugin(with: nielsenConfig)
            // Step 5: Set up the ad tag URL for VAST ads
            let adTagUrl = "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpremidpostpod&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&cmsid=496&vid=short_onecue&correlator="
            // Step 6: Create a ByteArkPlayerAdsConfig using ByteArkPlayerAdsConfigBuilder and set the VAST ad tag URL
            let adsConfig = try ByteArkPlayerAdsConfigBuilder(adsTagUrl: adTagUrl).build()
            // Step 7: Create a ByteArkPlayerAdsPlugin instance using the config from step 6
            let adsPlugin = ByteArkPlayerAdsPlugin(with: adsConfig)
            // Step 8: Set up the media item using ByteArkPlayerItemBuilder
            let item = try ByteArkPlayerItemBuilder()
                        .media(URL(string: "https://byteark-playertzxedwv.stream-playlist.byteark.com/streams/TZyZheqEJUwC/playlist.m3u8")!)
                        .posterImage(URL(string: "https://stream-image.byteark.com/image/video-cover-480p/7/H/7H6hEZrLH.png")!)
                        .mediaId("TZyZheqEJUwC") // set asset id
                        .title("Big Buck Bunny")
                        .build()
            // Step 9: Create Nielsen content metadata https://engineeringportal.nielsen.com/wiki/DCR_Thailand_Video_iOS_SDK#Create_Content_Metadata
            let contentMetadata = try ByteArkPlayerNielsenContentMetadataBuilder()
                                  .program("MyProgram")
                                  .isFullEpisode("y")
                                  .segB("CustomSegmentValueB")
                                  .segC("CustomSegmentValueC")
                                  .adloadtype("2") // set ad load type
                                  .build()
            // Step 10: Set content metadata for media item
            item.nielsenContentMetadata = contentMetadata
            // Step 11: Configure the player using ByteArkPlayerConfigBuilder, add the Nielsen plugin and Ads plugin to the config
            let config = try ByteArkPlayerConfigBuilder()
                .item(item)
                .autoplay(true)
                .addPlugin(plugin: nielsenPlugin, name: ByteArkPlayerNielsenPlugin.PluginName) // Adding the Nielsen plugin
                .addPlugin(plugin: adsPlugin, name: ByteArkPlayerAdsPlugin.PluginName) // Adding the ads plugin
                .build()
            // Step 8: Apply the configuration to the player
            player.configure(with: config)
        } catch {
            print(error.localizedDescription)
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

# การใช้งาน API ของ Plugin

Plugin มีตัวแปรที่สามารถเข้าถึงได้จาก instance ของ Plugin เพื่อรับข้อมูล

# Variables

Name Description
var nielsenSdkDelegate: NielsenAppApiDelegate? { get, set } Get/Set a Nielsen DCR SDK delegate
var nielsenAppApi: NielsenAppApi? Get Nielsen SDK instance