From eee45c9177fba4b6292d47fec299131c23e906aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaquim=20St=C3=A4hli?= Date: Tue, 21 Jan 2025 16:15:55 +0100 Subject: [PATCH] Remove comscore pageview tracking (#863) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gaƫtan Muller --- pillarbox-analytics/docs/README.md | 9 ++-- .../pillarbox/analytics/SRGAnalytics.kt | 10 ++-- .../pillarbox/analytics/comscore/ComScore.kt | 10 +--- .../analytics/comscore/ComScorePageView.kt | 36 ------------- .../analytics/comscore/ComScoreSrg.kt | 8 --- .../pillarbox/analytics/SRGAnalyticsTest.kt | 5 +- .../comscore/ComScorePageViewTest.kt | 52 ------------------- .../analytics/comscore/ComScoreSrgTest.kt | 19 ------- .../ch/srgssr/pillarbox/demo/DemoPageView.kt | 4 +- 9 files changed, 10 insertions(+), 143 deletions(-) delete mode 100644 pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScorePageView.kt delete mode 100644 pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/comscore/ComScorePageViewTest.kt diff --git a/pillarbox-analytics/docs/README.md b/pillarbox-analytics/docs/README.md index e8045e2d4..adfced3e5 100644 --- a/pillarbox-analytics/docs/README.md +++ b/pillarbox-analytics/docs/README.md @@ -79,8 +79,8 @@ The updated values will be sent with the next analytics event. ### Send page view -To send a page view, use [SRGAnalytics.sendPageView()][ch.srgssr.pillarbox.analytics.SRGAnalytics.sendPageView]. It will send the event to both -Commanders Act and ComScore. +To send a page view, use [SRGAnalytics.sendPageView()][ch.srgssr.pillarbox.analytics.SRGAnalytics.sendPageView]. It will send the event only to +Commanders Act. ```kotlin val commandersActPageView = CommandersActPageView( @@ -89,11 +89,8 @@ val commandersActPageView = CommandersActPageView( levels = listOf("level1", "level2"), ) -val comScorePageView = ComScorePageView(name = "page_name") - SRGAnalytics.sendPageView( - commandersAct = commandersActPageView, - comScore = comScorePageView, + commandersAct = commandersActPageView ) ``` diff --git a/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/SRGAnalytics.kt b/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/SRGAnalytics.kt index 09fcb48c0..55f4b436b 100644 --- a/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/SRGAnalytics.kt +++ b/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/SRGAnalytics.kt @@ -14,7 +14,6 @@ import ch.srgssr.pillarbox.analytics.commandersact.CommandersActPageView import ch.srgssr.pillarbox.analytics.commandersact.CommandersActSrg import ch.srgssr.pillarbox.analytics.commandersact.NoOpCommandersAct import ch.srgssr.pillarbox.analytics.comscore.ComScore -import ch.srgssr.pillarbox.analytics.comscore.ComScorePageView import ch.srgssr.pillarbox.analytics.comscore.ComScoreSrg import ch.srgssr.pillarbox.analytics.comscore.NoOpComScore @@ -104,10 +103,9 @@ object SRGAnalytics { * Sends a page view event to both Commanders Act and ComScore. * * @param commandersAct The page view data for Commanders Act. - * @param comScore The page view data for ComScore. */ - fun sendPageView(commandersAct: CommandersActPageView, comScore: ComScorePageView) { - instance?.sendPageView(commandersAct, comScore) + fun sendPageView(commandersAct: CommandersActPageView) { + instance?.sendPageView(commandersAct) } /** @@ -203,9 +201,9 @@ object SRGAnalytics { var commandersAct: CommandersAct ) { - fun sendPageView(commandersAct: CommandersActPageView, comScore: ComScorePageView) { + fun sendPageView(commandersAct: CommandersActPageView) { this.commandersAct.sendPageView(commandersAct) - this.comScore.sendPageView(comScore) + // Business decision to not send those events to comScore. } fun sendEvent(commandersAct: CommandersActEvent) { diff --git a/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScore.kt b/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScore.kt index 20f51d6e0..4f9d92b47 100644 --- a/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScore.kt +++ b/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScore.kt @@ -7,15 +7,9 @@ package ch.srgssr.pillarbox.analytics.comscore /** * Interface for interacting with the ComScore SDK. * - * This interface provides methods for sending page view to ComScore. It also allows for managing permanent data and user consent. + * This interface provides methods for managing permanent data and user consent. */ interface ComScore { - /** - * Sends a page view event to ComScore. - * - * @param pageView The [ComScorePageView] to be sent. - */ - fun sendPageView(pageView: ComScorePageView) /** * Puts the provided labels as persistent data. @@ -49,8 +43,6 @@ interface ComScore { internal object NoOpComScore : ComScore { - override fun sendPageView(pageView: ComScorePageView) = Unit - override fun putPersistentLabels(labels: Map) = Unit override fun removePersistentLabel(label: String) = Unit diff --git a/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScorePageView.kt b/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScorePageView.kt deleted file mode 100644 index e7bc6f47a..000000000 --- a/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScorePageView.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) SRG SSR. All rights reserved. - * License information is available from the LICENSE file. - */ -package ch.srgssr.pillarbox.analytics.comscore - -/** - * Represents a page view event for ComScore. - * - * This class encapsulates the data required to track a page view event, including the page name and custom labels. - * - * @property name The name of the page being viewed. This property cannot be blank. - * @property labels A map of custom labels to be associated with the page view event. Blank values are ignored and not sent. Defaults to an empty map. - * - * @throws IllegalArgumentException If [name] is blank. - */ -data class ComScorePageView( - val name: String, - val labels: Map = emptyMap() -) { - init { - require(name.isNotBlank()) { "Title cannot be blank!" } - } - - /** - * Converts this object's properties into a [Map] of labels suitable for ComScore. - * - * @return A [Map] containing the labels, ready to be used by ComScore. - */ - fun toLabels(): Map { - val labels = HashMap() - labels.putAll(this.labels.filterValues { value -> value.isNotBlank() }) - labels[ComScoreLabel.C8.label] = name - return labels - } -} diff --git a/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScoreSrg.kt b/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScoreSrg.kt index a4cc48655..45d52b182 100644 --- a/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScoreSrg.kt +++ b/pillarbox-analytics/src/main/java/ch/srgssr/pillarbox/analytics/comscore/ComScoreSrg.kt @@ -86,14 +86,6 @@ internal object ComScoreSrg : ComScore, Application.ActivityLifecycleCallbacks { } } - override fun sendPageView(pageView: ComScorePageView) { - checkInitialized() - if (!started.get()) return - with(pageView.toLabels()) { - Analytics.notifyViewEvent(this) - } - } - override fun putPersistentLabels(labels: Map) { val configuration = Analytics.getConfiguration().getPublisherConfiguration(publisherId) configuration.addPersistentLabels(labels) diff --git a/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/SRGAnalyticsTest.kt b/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/SRGAnalyticsTest.kt index 71fae6643..d16dca8b2 100644 --- a/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/SRGAnalyticsTest.kt +++ b/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/SRGAnalyticsTest.kt @@ -8,7 +8,6 @@ import ch.srgssr.pillarbox.analytics.commandersact.CommandersAct import ch.srgssr.pillarbox.analytics.commandersact.CommandersActEvent import ch.srgssr.pillarbox.analytics.commandersact.CommandersActPageView import ch.srgssr.pillarbox.analytics.comscore.ComScore -import ch.srgssr.pillarbox.analytics.comscore.ComScorePageView import io.mockk.Called import io.mockk.clearAllMocks import io.mockk.confirmVerified @@ -45,16 +44,14 @@ class SRGAnalyticsTest { type = "Type", levels = listOf("level1", "level2"), ) - val comScorePageView = ComScorePageView("Title") analytics.sendPageView( commandersAct = commandersActPageView, - comScore = comScorePageView, ) verify(exactly = 1) { commandersAct.sendPageView(commandersActPageView) - comScore.sendPageView(comScorePageView) + comScore wasNot Called } confirmVerified(comScore, commandersAct) } diff --git a/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/comscore/ComScorePageViewTest.kt b/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/comscore/ComScorePageViewTest.kt deleted file mode 100644 index 48e48d388..000000000 --- a/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/comscore/ComScorePageViewTest.kt +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) SRG SSR. All rights reserved. - * License information is available from the LICENSE file. - */ -package ch.srgssr.pillarbox.analytics.comscore - -import kotlin.test.Test -import kotlin.test.assertEquals - -class ComScorePageViewTest { - @Test(expected = IllegalArgumentException::class) - fun `empty page name is invalid`() { - ComScorePageView("") - } - - @Test(expected = IllegalArgumentException::class) - fun `blank page name is invalid`() { - ComScorePageView(" ") - } - - @Test - fun `get labels from page view`() { - val pageView = ComScorePageView("name") - val labels = pageView.toLabels() - val expectedLabels = mapOf( - "c8" to pageView.name, - ) - - assertEquals(expectedLabels, labels) - } - - @Test - fun `get labels from page view with some blank labels`() { - val pageView = ComScorePageView( - name = "name", - labels = mapOf( - "key1" to "value1", - "key2" to "", - "key3" to "value3", - "key4" to " ", - ), - ) - val labels = pageView.toLabels() - val expectedLabels = mapOf( - "key1" to "value1", - "key3" to "value3", - "c8" to pageView.name, - ) - - assertEquals(expectedLabels, labels) - } -} diff --git a/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/comscore/ComScoreSrgTest.kt b/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/comscore/ComScoreSrgTest.kt index 91bc8b18e..aba5f18b6 100644 --- a/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/comscore/ComScoreSrgTest.kt +++ b/pillarbox-analytics/src/test/java/ch/srgssr/pillarbox/analytics/comscore/ComScoreSrgTest.kt @@ -123,23 +123,4 @@ class ComScoreSrgTest { } confirmVerified(config) } - - @Test - fun `send page view with no labels`() { - ComScoreSrg.sendPageView(ComScorePageView("page")) - val expectedLabels = mapOf(ComScoreLabel.C8.label to "page") - verify(exactly = 1) { - Analytics.notifyViewEvent(expectedLabels) - } - } - - @Test - fun `send page view with labels`() { - val labels = mapOf("key01" to "value01", "key02" to "value02") - ComScoreSrg.sendPageView(ComScorePageView("page", labels = labels)) - val expectedLabels = mapOf(ComScoreLabel.C8.label to "page", "key01" to "value01", "key02" to "value02") - verify(exactly = 1) { - Analytics.notifyViewEvent(expectedLabels) - } - } } diff --git a/pillarbox-demo/src/main/java/ch/srgssr/pillarbox/demo/DemoPageView.kt b/pillarbox-demo/src/main/java/ch/srgssr/pillarbox/demo/DemoPageView.kt index a8cb93e22..2ef32fe11 100644 --- a/pillarbox-demo/src/main/java/ch/srgssr/pillarbox/demo/DemoPageView.kt +++ b/pillarbox-demo/src/main/java/ch/srgssr/pillarbox/demo/DemoPageView.kt @@ -6,7 +6,6 @@ package ch.srgssr.pillarbox.demo import ch.srgssr.pillarbox.analytics.SRGAnalytics import ch.srgssr.pillarbox.analytics.commandersact.CommandersActPageView -import ch.srgssr.pillarbox.analytics.comscore.ComScorePageView /** * Demo page view that create the ComScore and CommandersAct page view object. @@ -22,7 +21,6 @@ data class DemoPageView(val title: String, val levels: List = emptyList( * @param demoPageView */ fun SRGAnalytics.trackPagView(demoPageView: DemoPageView) { - val comScorePageView = ComScorePageView(name = demoPageView.title) val commandersActPageView = CommandersActPageView(name = demoPageView.title, type = "DemoScreen", levels = demoPageView.levels) - sendPageView(commandersAct = commandersActPageView, comScore = comScorePageView) + sendPageView(commandersAct = commandersActPageView) }