SRGSSR / pillarbox-documentation

Technical cross-platform documentation for Pillarbox
https://srgssr.github.io/pillarbox-documentation
MIT License
3 stars 0 forks source link

Validate analytics with the GD #27

Closed defagos closed 10 months ago

defagos commented 1 year ago

As a GD analyst I want to be sure that analytics standards are implemented according to the specifications by all SRG SSR apps depending on Pillarbox.

Acceptance criteria

Tasks

defagos commented 1 year ago

Request for validation sent.

GoetzMar commented 1 year ago

Hi @defagos Maybe you have seen the e-mail that I've send to TagCommander and Mapp. At first glance it seems to me that Pillarbox is sending the requests when they should be send and they looked correct. I guess the problems I've found are on TagCommander or Mapp side.

I tested Android so far. Will have to double check some things and of course also test iOS. Will get back to you with further feedback.

defagos commented 1 year ago

Thank you very much for the update and your tests so far.

GoetzMar commented 1 year ago

Hi @defagos As expected the problem I mentionened in my comment before was related to TagCommander. It is fixed now and I tested the Android implementation successfully for Mapp Intelligence.

Do you know how Comscore was tested when it got implemented? I asked Mediapulse and the Comscore consultant by e-mail and didn't get a reply yet. Maybe you or one of your colleagues has an idea.

iOS is not tested yet. How much time pressure is there for the testing? I'm around next week and than off for two weeks. Not sure if I can do the testing next week.

defagos commented 1 year ago

Hi @GoetzMar,

Thank you very much for the update.

Regarding the comScore implementation we went through Kantar as usual. They follow their own validation procedure, likely a mixture of use cases and manual event inspection.

For the Apple implementation there is no emergency. It can wait until you are back (we might deliver a demon update in the meantime).

Thank you very much for your help.

GoetzMar commented 1 year ago

Alright. I'll ask the Kantar/Comscore people who needs access to a test environment and will provide you the e-mail adresses.

Thanks, good to know that we are not in a hurry.

defagos commented 1 year ago

We already validated our implementation with Kantar and comScore. They already were provided access and could test our nightlies, both on Android and Apple platforms.

GoetzMar commented 1 year ago

That's great news. Thanks for the info.

GoetzMar commented 10 months ago

Hi @defagos Can you please invite srg.adi.da@gmail.com for iOS and Android testing since we have a new account to do the testings? Thx.

defagos commented 10 months ago

Hi @GoetzMar. An invitation has been sent.

Best.

GoetzMar commented 10 months ago

Hey @defagos Unfortunately I didn't get an e-mail nor can I see the app in Testflight.

defagos commented 10 months ago

Sorry, my mistake. You already accepted the invitation but had no access to the Pillarbox demo apps themselves. This should be fixed now.

GoetzMar commented 10 months ago

It worked. Thanks @defagos At the risk of making my question seem strange. But the TV app you provided as well, can be tested on the phone device too? Seems to me like that, but want to be sure.

defagos commented 10 months ago

Nope, the TV app is the same (same application identifier) but must be deployed to an Apple TV device with TestFlight for tvOS. Just use the same account with TestFlight on tvOS and you should be good to go.

GoetzMar commented 10 months ago

We don't have such a device, so therefor can't test it. How do you do it usually? Is there a way to simulate it or do you actually use a real device?

defagos commented 10 months ago

You can build the project yourself on a Mac of course, but using a real device is simpler. But there is no difference between the iOS and tvOS code, so if results are correct on iOS they should be correct on tvOS.

GoetzMar commented 10 months ago

Hi @defagos Checked the iOS version. Mostly looking good. But no "seek" events seem to be send. Tried it with several of the available videos (vod/live). All the other events worked, namely:

Can you please investigate where the problem could be? As always, feel free to invite me for a call if needed.

defagos commented 10 months ago

This is actually expected.

On iOS we have implemented trick mode , a way to improve the seek user experience during continuous interactions (e.g. slider being dragged). Trick mode requires the player to be paused when the user interaction with begins, and to be resumed when the user interaction ends (if the user was playing before, of course). This ensures the player can cope as fast as possible with seek requests.

This explains why you don't see any seek if you are using the slider, which I assume you do. But if you use a discrete seek method, like one of the skip buttons available, you'll see that in this case the player is not paused and that you obtain a seek event.

In any case, the pause or seek event occuring before the seek must have the correct timestamp, and similarly the play after, so the total playback duration must be unaffected. In fact, if you look at what comScore is doing, their SDK has no concept of seek event. Pause is used to mark both pauses as well as the start of seek operations.

Hope this answers your question.

Best regards and thanks for your tests.

GoetzMar commented 10 months ago

Thanks for the explanation. That's great news. Meaning the testing was successful. Just did a quick test for the seek function in the way you described. You were right that I used the slide before. Now I used the discrete seek method and I see the events.

Just to be sure. There is no option to test "Event" in this environment. For the play apps I used the program guide, since this is one of the few events available. If there is no events, we can close this task. If I missed it, please let me know where to find it and I'll check it.

defagos commented 10 months ago

You are right, we did not implement any event test in the Pillarbox demo. The reason is that we are using the exact same code under the hood to send streaming events, so testing streaming means testing events at the same time.

GoetzMar commented 10 months ago

Perfect. Thanks a lot. So let's close this task.