analytics.js-integrations
                                
                                 analytics.js-integrations copied to clipboard
                                
                                    analytics.js-integrations copied to clipboard
                            
                            
                            
                        Adobe analytics chromecast option
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
Chromecast unit tests passing after latest commit:

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?
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!
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?
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 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?
Pinned this to Fox's FoxNews Chromecast Dev and Prod sources on August 24, 2021.