Player

Genoa Player V4

Misma idea que Genoa Player V3: una librería que renderiza players dentro de tags <genoa-player> en tu página, sin iframe, llamando la librería una sola vez para múltiples players.

/dist/v4/genoa-player.min.js (servido por tu instancia de Spi)
AtributoDescripción
data-content-idRequerido — el content_id (Media ID) a reproducir
data-player-idIdentificador propio del player, va en los eventos
data-autoplay"true"/"false"
data-width / data-heightCSS size del player
data-colorColor de acento (variable CSS --gp-color)
data-pvast / data-rvastVAST tag URL para preroll/postroll
data-custom-posterURL de poster, sobrescribe el thumbnail del contenido
data-playlist-overlayContent IDs separados por coma — muestra una barra para saltar entre ellos
data-related"true"/"false"
data-mute"true"/"false"
data-shareURL que se manda en share_url de los eventos
data-debug"true" — logea en consola
data-comscoreJSON con pares clave/valor
<genoa-player
    data-content-id="100000003"
    data-player-id="KS70YK1554147504"
    data-autoplay="false"
    data-width="700px"
    data-height="350px"
    data-color="#A80C54"
    data-pvast="https://pubads.g.doubleclick.net/gampad/ads?.."
    data-custom-poster="https://image.jpg"
    data-playlist-overlay="100000004,100000005"
    data-related="true"
    data-mute="false"
    data-share="http://tn.com/nota.."
    data-debug="false">
</genoa-player>

<script src="/dist/v4/genoa-player.min.js"></script>

Página de prueba con todos los data-attributes en vivo: /player-demo

Diferencias vs V3: el content_id ahora es el formato nuevo (pid + 8 dígitos, ver Content). Ads: se resuelve el VAST tag y se reproduce el primer MediaFile encontrado como pre/post-roll — no es una integración completa de Google IMA (sin tracking pixels, sin VPAID, sin skip button configurable). YouTube tech todavía no está bundleado — si el contenido es content_type: youtube el player muestra un link a YouTube en vez de reproducir embebido.

Genoa Pass Data

El player dispara eventos del DOM en document para que tu página trackee lo que pasa adentro del player.

<script>
    document.addEventListener('genoa_pass_data', function (e) {
        console.log(e.detail);
    }, false);
</script>

El código real de Genoa Player V3 solo dispara genoa_pass_data en dos casos: una vez cuando arranca la reproducción real (Start), y en el ciclo de vida de los ads. Todo lo demás (pausa, quartiles, fin de contenido) se manda por un pixel de analytics interno aparte, no por este evento — así que no vas a ver Pause/Resume/FirstQuartile/Midpoint/Complete/Ended acá, aunque suene lógico esperarlos.

ActionCuándoadType presente
Startuna sola vez, cuando arranca la reproducción real del contenido (no ads)no
adStartedal arrancar un preroll/postroll
adCompleteal terminar el ad
adContentResumeinmediatamente después de adComplete, antes de retomar el contenido
{
  "action": "Start",
  "name": "Prueba",
  "content_id": "100000003",
  "agent": "Mozilla/5.0 ...",
  "player": "DEMO0001",
  "group": 1,
  "publisher": 1,
  "referrer": "http://localhost:8100/player-demo",
  "duration": 3000,
  "share_url": "http://tn.com/nota.."
}
{
  "action": "adStarted",
  "name": "Prueba",
  "content_id": "100000003",
  "agent": "Mozilla/5.0 ...",
  "player": "DEMO0001",
  "group": 1,
  "publisher": 1,
  "referrer": "http://localhost:8100/player-demo",
  "duration": 3000,
  "share_url": "",
  "adType": "preroll"
}
group es el gid del group al que está asignado el publisher (Administration → Groups), no el publisher_id — son campos distintos aunque el nombre "group" confunda. adType solo aparece en el objeto cuando el evento es de un ad — en el resto directamente no está la clave (ni siquiera como null).
Diferencias vs V3: adLog, adSkipped, adResumed y adClicked no se emiten — necesitan una integración real de Google IMA (pixels de tracking, botón de skip, eventos de click) que este build no tiene; acá el ad es un VAST simplificado (primer MediaFile reproducido derecho).

Analytics pixel

Además de genoa_pass_data, el player manda un pixel interno a POST /api/v4/player/track con { content_id, event } — es lo que alimenta los contadores reales de Content (plays, impressions, preroll/midroll/postroll). No hace falta llamarlo a mano, ya está integrado en genoa-player.js.

EventCuándoContador que incrementa
impressional cargar los datos del contenido, antes de reproducirimpressions
startjunto con Start de genoa_pass_dataplays
preroll / midroll / postrolljunto con adStarted de cada tipo de adpreroll / midroll / postroll
firstquartile / midpoint / thirdquartileal pasar 25%/50%/75% de currentTimefirstquartile / midpoint / thirdquartile
endedal terminar el contenidoended
Diferencias vs V3: en V3 real este tracking va por comscore/GA y un pixel interno propio de Genoa que no está documentado públicamente. Acá es un endpoint propio simple, sin dedupe por sesión ni protección anti-bot — cada llamada suma 1, así que no está pensado para números 100% confiables en producción, solo para tener el dato real en vez de un placeholder.