From 62bdc968162320a0214d528fd821c1aeae5fda61 Mon Sep 17 00:00:00 2001 From: William Van Haevre Date: Tue, 1 Apr 2025 14:08:34 +0200 Subject: [PATCH 1/5] [Temp] Add THEOplayer-Integration-THEOads dependency for THEOAdDescription type definition --- .../Events/ConvivaReporters/BasicEventConvivaReporter.swift | 3 +++ THEOplayer-Connector-Conviva.podspec | 3 +++ 2 files changed, 6 insertions(+) diff --git a/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift b/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift index 46de22a8..bd2d43c0 100644 --- a/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift +++ b/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift @@ -4,6 +4,9 @@ import ConvivaSDK import THEOplayerSDK +#if canImport(THEOplayerTHEOadsIntegration) +import THEOplayerTHEOadsIntegration +#endif class BasicEventConvivaReporter { diff --git a/THEOplayer-Connector-Conviva.podspec b/THEOplayer-Connector-Conviva.podspec index 9d993182..e364572f 100644 --- a/THEOplayer-Connector-Conviva.podspec +++ b/THEOplayer-Connector-Conviva.podspec @@ -22,4 +22,7 @@ Pod::Spec.new do |s| s.dependency 'ConvivaSDK', '4.0.51' s.dependency 'THEOplayerSDK-core', "~> 8" s.dependency 'THEOplayer-Connector-Utilities', "~> " + theoplayer_connector_major_minor_version, ">= " + theoplayer_connector_version + + # THEOads AdTagParameter reporting + s.ios.dependency "THEOplayer-Integration-THEOads", "~> 8.11" end From 2101b82200700920e0fd89761d9b4834abdb0ae3 Mon Sep 17 00:00:00 2001 From: William Van Haevre Date: Tue, 1 Apr 2025 14:08:51 +0200 Subject: [PATCH 2/5] make contentInfo extendable --- .../Events/ConvivaReporters/BasicEventConvivaReporter.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift b/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift index bd2d43c0..acb9cd86 100644 --- a/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift +++ b/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift @@ -87,7 +87,7 @@ class BasicEventConvivaReporter { if let source = event.source, let url = selectedSource { newSource = .init(description: source, url: url) let assetName = source.metadata?.title ?? Utilities.defaultStringValue; - let contentInfo = [ + var contentInfo = [ CIS_SSDK_METADATA_PLAYER_NAME: Utilities.playerName, CIS_SSDK_METADATA_STREAM_URL: url, CIS_SSDK_METADATA_ASSET_NAME: assetName, From 3c2291dbd0a8391bd4b0a5dd30504f668399d673 Mon Sep 17 00:00:00 2001 From: William Van Haevre Date: Tue, 1 Apr 2025 14:09:35 +0200 Subject: [PATCH 3/5] Add function to extract adTagParams from a THEOads source --- .../BasicEventConvivaReporter.swift | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift b/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift index acb9cd86..f62c4b05 100644 --- a/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift +++ b/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift @@ -106,6 +106,20 @@ class BasicEventConvivaReporter { self.currentSession.source = newSource } + private func theoAdsAdTagParams(source: SourceDescription?) -> [String:String]? { +#if canImport(THEOplayerTHEOadsIntegration) + if let currentSource = source, + let ads = currentSource.ads, + let theoAdsDescription = ads.first(where: { + $0.integration == .theoAds && $0 is THEOAdDescription + }) as? THEOAdDescription, + let foundParams = theoAdsDescription.adTagParameters { + return foundParams + } +#endif + return [:] + } + func renderedFramerateUpdate(framerate: Float) { self.videoAnalytics.reportPlaybackMetric(CIS_SSDK_PLAYBACK_METRIC_RENDERED_FRAMERATE, value: NSNumber(value: Int(framerate.rounded()))) } From 573e306332bc61c14b5eea5df748cbaee8eea9ec Mon Sep 17 00:00:00 2001 From: William Van Haevre Date: Tue, 1 Apr 2025 14:10:02 +0200 Subject: [PATCH 4/5] Extend contentInfo with extracted adTagParams --- .../ConvivaReporters/BasicEventConvivaReporter.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift b/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift index f62c4b05..eda0f936 100644 --- a/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift +++ b/Code/Conviva/Source/Events/ConvivaReporters/BasicEventConvivaReporter.swift @@ -94,6 +94,14 @@ class BasicEventConvivaReporter { CIS_SSDK_METADATA_IS_LIVE: NSNumber(value: false), CIS_SSDK_METADATA_DURATION: NSNumber(value: -1) ] as [String: Any] + + // THEOads adTagParameters + if let adTagParams = self.theoAdsAdTagParams(source: newSource?.description) { + adTagParams.forEach { (key, value) in + contentInfo["theoAdsTag_\(key)"] = value + } + } + self.videoAnalytics.setContentInfo(contentInfo) self.storage.storeKeyValuePair(key: CIS_SSDK_METADATA_ASSET_NAME, value: assetName) self.storage.storeKeyValuePair(key: CIS_SSDK_METADATA_STREAM_URL, value: url) From fac6e02eb30ad91fd7b2cc0a98b7fc7b892dec6f Mon Sep 17 00:00:00 2001 From: William Van Haevre Date: Tue, 1 Apr 2025 14:19:42 +0200 Subject: [PATCH 5/5] Add changelog entry --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9d71dd1..3227d0bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Added + +- Conviva + - Report AdTagPArameters to Conviva for THEOads sources. + ### Fixed - Conviva