Agama tiene una larga trayectoria en lo que respecta a integraciones con dispositivos. Durante más de una década hemos abordado proyectos de todos los tamaños y duraciones. Con cada hito completado y, aún más, con cada obstáculo, hemos ido construyendo de forma constante el conocimiento necesario para tener éxito.
¿Qué son los plugins?
Una de las partes clave para entender la satisfacción de tus usuarios es evaluar la calidad de experiencia de los servicios que consumen, su engagement, el tipo de contenido que les gusta ver, etc. Agama tiene una excelente trayectoria proporcionando este tipo de insights; de hecho, este es el núcleo de lo que hacemos.
Las implementaciones de estos KPIs importantes incluyeron históricamente, entre otros, los siguientes pasos: acuerdo sobre el conjunto de métricas deseado, investigación de las métricas disponibles en la plataforma objetivo e integración de esas métricas con el agente principal de Agama. Muchos de estos pasos eran únicos para cada integración. Esto se debía en parte a los diferentes deseos de los distintos clientes, pero sobre todo a las características únicas de cada una de las plataformas objetivo.
Con la creciente popularidad de las plataformas OTT y la aparición de reproductores como ExoPlayer, Shaka Player o AVPlayer, las plataformas objetivo se han vuelto cada vez más similares entre integraciones. El cambio desde «todo es a medida» a «plataformas y reproductores comunes» permitió a Agama dar un paso más allá de su dominio. Empezamos a investigar activamente reproductores y plataformas, recopilando conocimiento sobre ellos, evaluando qué era posible y factible y definiendo una base absoluta de métricas que beneficiaría a cada cliente. Todo esto se implementa en lo que llamamos «Player plugins».
Los player plugins siguen unos pocos principios básicos:
- Agama desarrolla y mantiene los plugins
- Los plugins ofrecen un buen conjunto de métricas, lo que los hace utilizables directamente
- No se requiere conocimiento del dominio de Agama para la integración del plugin: solo se necesitan unas pocas APIs estables
- Capacidad de pasar métricas personalizadas al plugin
Agama desarrolla y mantiene player plugins para la mayoría de los reproductores populares, como ExoPlayer, Shaka Player, AVPlayer, y para plataformas como Android, FireOS, iOS, tvOS, Chromecast, navegadores, WebOS, Tizen, etc.
Aunque la lista completa de métricas difiere ligeramente entre plugins, todos comparten la mayoría de las métricas. Algunas de las funcionalidades que tienen en común son:
- Métricas de QoS y QoE
- Propiedades del dispositivo
- Capacidad de entender el consumo de los activos
- Capacidad de entender errores de reproducción (por ejemplo, errores DRM)
Integración: mantenlo sencillo
Echemos un vistazo más de cerca a lo que se necesita para integrar Agama en tu aplicación. Para hacerlo lo más realista posible, usemos ExoPlayer como reproductor objetivo y Android como plataforma objetivo.
ExoPlayer es actualmente uno de los reproductores más populares para Android. Es extremadamente personalizable y flexible, pero a la vez fácil para empezar. Por eso no es sorpresa que lo use todo el mundo, desde aficionados hasta operadores de video e incluso YouTube.
Requisitos
Empecemos describiendo qué requisitos y dependencias se necesitan para usar el plugin. Los reproductores evolucionan rápido, y sus capacidades y APIs también, y esto se cumple particularmente en ExoPlayer. Por eso el plugin viene en múltiples variantes asociadas a las distintas versiones menores de ExoPlayer. Usando una versión relativamente moderna, la compatibilidad plugin-reproductor no debería ser un problema.
Algunas métricas implementadas por el plugin pueden estar sujetas a permisos de la plataforma. No son críticas de tener en ningún sentido, sino más bien del lado «bueno tenerlas», y solo se incluirán si se conceden los permisos. También relacionado con cuestiones de privacidad, el plugin puede configurarse para omitir ciertas métricas sensibles. Esta información puede ser, por ejemplo, la captura de longitud y latitud del dispositivo.
Por último, el plugin se incluye en el proyecto como cualquier otra biblioteca de terceros. Y el empclient debe incluirse de la misma manera.
Pasos de inicialización y configuración
Inicializa el plugin tan pronto como sea posible. La vida útil del plugin debe reflejar la vida útil de la aplicación. Para inicializarlo, se necesita una cadena de configuración de Agama. Esta se pasa al agente principal de Agama (empclient) e incluye información como el heartbeat del informe y el id del operador. La cadena de configuración suele ser facilitada por Agama. Las propiedades de la aplicación, como su nombre y versión, son necesarias durante la inicialización.
String agamaConfig =
«emp_service=https://cdm1.company123.se/report;report_interval=60;id_report_interval=240;operator_id=fooSoo;»;
String appName = «Company 123 Play App»;
String appVersion= «2.1»;
// Initialize the plugin
EmpStats.getInstance().init(agamaConfig, Definitions.LogLevel.DEBUG, appName, appVersion, ExoPlayerLibraryInfo.VERSION, getApplicationContext());
Una vez creada la instancia del plugin, también se debe asignar una cuenta asociada al usuario. Esto permitirá (entre otras cosas) encontrar al cliente en el sistema Agama por su id de cuenta.
// Set user account id for user John Doe
EmpStats.getInstance().setUserAccountId(«johdo28»);
Monitoreando el video
Ahora el plugin está inicializado, configurado y enviando datos al backend de Agama. Es hora de empezar a monitorear los activos consumidos. El usuario ha cambiado a un canal nuevo, ha iniciado un activo de la biblioteca de catch-up o simplemente ha abierto un nuevo episodio de su serie de TV favorita. La apertura de cualquier nuevo activo debe señalarse al plugin.
// Load asset & play
String assetUri= «https://demo.agamatech.se/Manifest.m3u8»;
EmpStats.getInstance().sessionOpen(assetUri, Definitions.AssetType.VOD, «Sintel», player);
URI uri = uri.parse(assetUri);
player.setMediaItem(MediaItem.fromUri(uri), false);
player.prepare();
Análogamente a señalar la intención de empezar a reproducir contenido, también hay que señalar el fin de la reproducción. Hay dos formas comunes de hacerlo: el usuario cambia a un nuevo canal o abandona la reproducción por completo. Para lo primero, basta con señalar al plugin que se va a abrir un nuevo activo. Cerrará implícitamente el seguimiento del anterior. Para lo segundo, hay una API dedicada para salir.
// Stop the playback activity
public void onStop() {
super.onStop();
EmpStats.getInstance().sessionClose();
}
Propiedades del video
Además de rastrear qué activos se consumen, los metadatos asociados a ellos juegan un papel importante para enriquecer los datos. Hay muchos metadatos posibles que se pueden asociar a un activo, desde fijar la duración y la descripción del contenido hasta rastrear qué CDN proveyó un activo y a qué servicio (live, catch-up, avod, …) pertenece.
Cierre
¡Eso es todo! Hora de construir la aplicación y probarla. Durante una integración, Agama proveerá un sistema de pruebas para verificar los datos, haciendo el proceso fácil tanto para el cliente como para Agama. Ese sistema es un punto de encuentro natural para todas las partes involucradas.
Sobre Matic Hajdinjak
Matic es Team Lead en Agama, responsable de desarrollar la gama de productos de Client Device Monitoring. Tiene más de 10 años de experiencia en desarrollo de software y es experto en integraciones de dispositivos cliente de alto rendimiento. Con un sólido perfil técnico, le encanta trabajar con su equipo hasta el nivel del código para construir nuevos productos y soluciones.
