# Nielsen Plugin for ByteArk Player SDK iOS
# คุณสมบัติ
- Integrated Nielsen DCR SDK (opens new window) เข้ากับ ByteArk Player SDK for 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
การติดตั้ง Nielsen Plugin โดยใช้ Cocoapods
- รันคำสั่งต่อไปนี้เพื่อเพิ่ม ByteArk Player SDK สำหรับ iOS Cocoapods repo:
pod repo add byteark-player-sdk-ios-specs https://github.com/byteark/byteark-player-sdk-ios-specs.git
- แก้ไขไฟล์ Podfile โดยเพิ่มบรรทัดนี้ที่จุดเริ่มต้นของไฟล์ Podfile:
source 'https://github.com/byteark/byteark-player-sdk-ios-specs.git'
- ตั้งค่า platform ให้เป็น iOS 14:
platform :ios, '14.0'
- เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ Podfile:
pod 'ByteArkPlayerSDKNielsenPlugin', '~> BYTEARK_PLAYER_SDK_NIELSEN_PLUGIN_VERSION'
Note
แทนที่ BYTEARK_PLAYER_SDK_NIELSEN_PLUGIN_VERSION
ด้วยหมายเลขเวอร์ชันของ ByteArkPlayerSDKNielsenPlugin ที่คุณต้องการใช้
- รันคำสั่ง
pod install
ใน Terminal:
pod install
Note
Cocoapods จะติดตั้ง SDK โดยตรงจาก Github private repository โดยใช้ ssh key หากคุณยังไม่ได้ตั้งค่า ssh key ในบัญชี Github ของคุณ โปรดดูเอกสาร Adding a new SSH key to your GitHub account (opens new window) บนเว็บไซต์ของ Github
- ติดตั้ง Nielsen DCR SDK โดยใช้ Cocoapods: Digital Measurement iOS Cocoapods Guide (opens new window)
# Swift Package Manager
ใช้ Swift Package Manager เพื่อติดตั้ง Nielsen Plugin และ Nielsen DCR SDK
- ใน Xcode ไปที่เมนู File > Add Packages
- ใส่ URL:
https://github.com/byteark/byteark-player-sdk-ios
- เลือกเวอร์ชันของ Nielsen Plugin
- เมื่อเสร็จสิ้น Xcode จะดาวน์โหลดปลั๊กอินโดยอัตโนมัติ
- เพิ่มการพึ่งพาของ 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)
}
}
}
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)
}
}
}
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 |