Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate Akamai SDK? #24

Open
defagos opened this issue Dec 22, 2017 · 8 comments
Open

Integrate Akamai SDK? #24

defagos opened this issue Dec 22, 2017 · 8 comments

Comments

@defagos
Copy link
Member

defagos commented Dec 22, 2017

We heard from Markus Sollberger that we might need to integrate an Akamai SDK. The corresponding documentation is attached.

iOS_SwiftAPIs.pdf
iOS_AVPlayer.pdf

@defagos
Copy link
Member Author

defagos commented Dec 22, 2017

From what I see:

  • The SDK is only concerned with analytics (this is why I opened the issue here). Since we are already collecting analytics in TagCommander, I don't see why we should integrate another SDK for the same task.
  • The SDK is available in Swift only, which would put a burden on our library users.
  • The SDK is not properly packaged (binaries are provided separately, not as a universal binary).

IMHO (but I may not know all the story), integrating this SDK would be a waste of time better spent delivering value to our app users.

@defagos
Copy link
Member Author

defagos commented Feb 15, 2018

It seems we need to integrate Akamai QoS SDK so that we better understand streaming quality. Do we really want to integrate Akamai analytics, or was this topic introduced because this is the same SDK?

@defagos defagos added this to the 3.3.1 milestone Mar 19, 2018
@defagos
Copy link
Member Author

defagos commented Mar 19, 2018

We will need to integrate Akamai media streaming SDK, which can be downloaded using the following link, and following the associated integration guide.

@defagos
Copy link
Member Author

defagos commented Mar 19, 2018

I opened a repository to package Akamai media streaming binaries as native iOS frameworks: https://github.com/SRGSSR/akamai-media-analytics-ios.

@defagos
Copy link
Member Author

defagos commented Mar 19, 2018

The SDK is undoubtably poor and limited. All methods are class method.

I doubt player tracking can properly work with our flexible controller architecture: registration is performed with an AVPlayer instance, but unregistration is global.

Moreover, it silently fails if the configuration URL embedded within the app and not remote. We probably will apply the same configuration file as the web player.

@defagos
Copy link
Member Author

defagos commented Mar 19, 2018

Specifications exist. It would probably be better to implement analytics ourselves.

@defagos
Copy link
Member Author

defagos commented Mar 19, 2018

SDK events are correct when playing a single stream (open - start playing - close the player):

single

The events are Init, Start, Play and Complete, as described in the specification PDF.

As expected, events are not correct if several AVPlayer instances coexist (open - start playing - close the player):

multiple

We would have expected 3 identical event sequences, but instead we get Init, Error, Init, Error, Init, Complete.

@defagos
Copy link
Member Author

defagos commented Mar 19, 2018

The SDK memory profile does not seem bad, at least for AKAM-prefixed class. I have not precisely investigated whether those classes leak instances of system classes (e.g. collections).

@pyby pyby removed this from the 3.3.1 milestone Mar 23, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants