analytics.js-integrations icon indicating copy to clipboard operation
analytics.js-integrations copied to clipboard

Adobe analytics chromecast option

Open Isuru-F opened this issue 4 years ago • 6 comments

NOTE: This isn't yet ready for merging - and should remain unmerged in its current state due to the option.chromecastMode being set to true in this branch.

This PR is to get feedback required from the eng team

What does this PR do?

  • Implement the Chromecast adobe analytics SDK
  • Mapped the standard video event spec events to the Chromecast sdk video events
  • Implemented unit tests

Are there breaking changes in this PR? Setting the chromecast option to true - this is for this branch only required for a specific customer

Testing Unit tests - for Chromecast SDK created in new unit test file chromecast.index.test

All PRs must follow the process for change control as outlined in: https://segment.atlassian.net/wiki/spaces/GRC/pages/453935287/Reinforcing+Change+Control

Testing completed successfully using unit tests and local testing.

Any background context you want to provide?

Is there parity with the server-side/android/iOS integration components (if applicable)?

Does this require a new integration setting? If so, please explain how the new setting works Eventually yes - but for now it will be hardcoded in this branch with chromecast set true

Links to helpful docs and other external resources https://paper.dropbox.com/doc/Google-PRD-SDD-Segment-Analytics.js-Adobe-Chromecast-SDK-Integration--BLb8LAr0IRU_6dyQ_AegXuGpAg-x3NoHj9IM0QTrH7zMDiWo#:uid=083588252113878478874898&h2=Event-Mappings

Isuru-F avatar Jun 01 '21 09:06 Isuru-F

Chromecast unit tests passing after latest commit: Screen Shot 2021-06-07 at 5 21 01 PM

I still need to swap out some of the placeholders in the Chromecast initialization object (i.e. channel, publisher, etc). Some of those fields are not currently settings so I need to think through how Fox can pass those. If they pass through the integrations object I'm worried it will overwrite any settings configured via the UI.

I am also going to run through local testing this week, and then update this branch with master again before working on the process to pin a version to Fox's dev Chromecast source(s). Pooya helped me with a different analytics.js PR last week so I am familiar with analytics.js-versions and the pinning process now! Anything else I should take care of before we pin @mericsson?

kdaswani avatar Jun 08 '21 03:06 kdaswani

I started local testing and ran into issues with Video Ad Started not including an AdBreakInfo object and Video Content Started not including a ChapterInfo object. For example, Adobe debug logs show the following upon Video Content Started:

[2021-06-29T01:42:04.801Z] ADBMobile - Debug [Media] [MediaTracker (tracker1)] trackEvent(chapterStart info:undefined metadata:undefined) VM12:1 [2021-06-29T01:42:04.802Z] ADBMobile - Debug [Media] [MediaTracker (tracker1)] RuleEngine: Predicates failed for rule API::trackEvent(chapterStart) : ChapterInfo passed into 'API:trackEvent(ChapterStart)' is invalid.

We include these objects in the a.js integration, so we also need to include them in the Chromecast logic. I pinged @Isuru-F to discuss resolving this!

kdaswani avatar Jun 29 '21 01:06 kdaswani

I just spoke to our contact at Fox and she shared that this will need to be put on hold from the Fox side, as they do not have resources/bandwidth to test. Their goal is to test with FoxNews Chromecast first, but that team has not prioritized the work and she does not have a timeline for when they will. Once they are ready to test, we can generate an analytics.js version and pin this to their dev site since this is ready for customer testing. In the meantime, this is on hold and can sit as an open PR. Is that ok @mericsson?

kdaswani avatar Jul 20 '21 23:07 kdaswani

I just spoke to our contact at Fox and she shared that this will need to be put on hold from the Fox side, as they do not have resources/bandwidth to test. Their goal is to test with FoxNews Chromecast first, but that team has not prioritized the work and she does not have a timeline for when they will. Once they are ready to test, we can generate an analytics.js version and pin this to their dev site since this is ready for customer testing. In the meantime, this is on hold and can sit as an open PR. Is that ok @mericsson?

Sounds good. I updated it to a Draft PR to distinguish it as WIP.

mericsson avatar Jul 20 '21 23:07 mericsson

@mericsson change of plans, Fox is almost ready to test this! They created the source that we will pin the version of a.js with these changes to: https://app.segment.com/foxdcg/sources/fox_news_chromecast_development/overview. I will start the process for pinning (i.e. analytics.js-private commit) early next week if you are comfortable with that. I think we can leave this PR as a draft since we don't plan to merge this into the existing integration at this point?

kdaswani avatar Jul 22 '21 19:07 kdaswani

Pinned this to Fox's FoxNews Chromecast Dev and Prod sources on August 24, 2021.

kdaswani avatar Aug 25 '21 03:08 kdaswani