sendMediaEvent

O comando sendMediaEvent faz parte do componente streamingMedia do SDK da Web. Você pode usar esse componente para coletar dados relacionados a sessões de mídia no seu site. Consulte a streamingMedia documentação para saber como configurar este componente.

Use o comando sendMediaEvent para rastrear reprodução de mídia, pausas, conclusões, atualizações de estado do player e outros eventos relacionados.

O SDK da Web pode lidar com eventos de mídia com base no tipo de rastreamento de sessão de mídia:

  • Manipulação de eventos para sessões rastreadas automaticamente. Nesse modo, não é necessário passar o sessionID para o evento de mídia nem para o valor do indicador de reprodução. O SDK da Web lidará com isso para você, com base na ID do player fornecida e na função de retorno de chamada getPlayerDetails fornecida ao iniciar a sessão de mídia.
  • Manipulação de eventos para sessões rastreadas manualmente. Neste modo, você precisa passar o sessionID para o evento de mídia, juntamente com o valor do indicador de reprodução (valor inteiro). Você também pode transmitir os detalhes dos dados de Qualidade da experiência, se necessário.

Lidar com eventos de mídia por tipo handle-by-type

Selecione as guias abaixo para ver exemplos de manipulação de tipo de evento para cada tipo de evento e método de rastreamento de sessão (automático ou manual).

Reproduzir play

O tipo de evento media.play é usado para monitorar quando a reprodução de mídia começa. Esse evento deve ser enviado quando o reprodutor muda o estado para "reproduzindo" a partir de outro estado. Outros estados a partir dos quais o reprodutor passa para "reproduzindo" incluem "buffering", a retomada do usuário de "pausado", o reprodutor se recuperando de um erro ou reprodução automática.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.play"
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.play",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID
            }
        }
    });
});

Pause pause

O tipo de evento media.pauseStart é usado para rastrear quando uma reprodução de mídia é pausada. Este evento deve ser enviado quando o usuário pressiona Pause. Não há um tipo de evento de retomada. Uma retomada é inferida quando você envia um evento media.play após um media.pauseStart.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.pauseStart"
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.pauseStart",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID
            }
        }
    });
});

Erro error

O tipo de evento media.error é usado para monitorar quando ocorre um erro durante a reprodução de mídia. Esse evento deve ser enviado quando ocorrer um erro.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.error",
        mediaCollection: {
            errorDetails: {
                name: "network-error",
                source: "player"
            }
        }
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.error",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID,
                errorDetails: {
                    name: "network-error",
                    source: "player"
                }
            }
        }
    });
});

Início de ad break ad-break-start

O tipo de evento media.adBreakStart é usado para rastrear o início de um ad break. Esse evento deve ser enviado quando um ad break é iniciado.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.adBreakStart",
        mediaCollection: {
            advertisingPodDetails: {
                friendlyName: "Mid-roll",
                offset: 0,
                index: 1
            }
        }
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.adBreakStart",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID,
                advertisingPodDetails: {
                    friendlyName: "Mid-roll",
                    offset: 0,
                    index: 1
                }
            }
        }
    });
});

Ad break concluído ad-break-complete

O tipo de evento media.adBreakComplete é usado para monitorar quando um ad break é concluído. Esse evento deve ser enviado quando um ad break é concluído.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.adBreakComplete"
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.adBreakComplete",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID
            }
        }
    });
});

Início do anúncio ad-start

O tipo de evento media.adStart é usado para rastrear o início de um anúncio. Esse evento deve ser enviado quando um anúncio é iniciado.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.adStart",
        mediaCollection: {
            advertisingDetails: {
                friendlyName: "Ad 1",
                name: "/uri-reference/001",
                length: 10,
                advertiser: "Adobe Marketing",
                campaignID: "Adobe Analytics",
                creativeID: "creativeID",
                creativeURL: "https://creativeurl.com",
                placementID: "placementID",
                siteID: "siteID",
                podPosition: 11,
                playerName: "HTML5 player"
            },
            customMetadata: [{
                    name: "myCustomValue3",
                    value: "c3"
                },
                {
                    name: "myCustomValue2",
                    value: "c2"
                },
                {
                    name: "myCustomValue1",
                    value: "c1"
                }
            ]
        }
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
        eventType: "media.adStart",
        mediaCollection: {
            playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
            sessionID,
            advertisingDetails: {
              friendlyName: "Ad 1",
              name: "/uri-reference/001",
              length: 10,
              advertiser: "Adobe Marketing",
              campaignID: "Adobe Analytics",
              creativeID: "creativeID",
              creativeURL: "https://creativeurl.com",
              placementID: "placementID",
              siteID: "siteID",
              podPosition: 11,
              playerName: "HTML5 player"
            },
            customMetadata: [
              {
                name: "myCustomValue3",
                value: "c3"
              },
              {
                name: "myCustomValue2",
                value: "c2"
              },
              {
                name: "myCustomValue1",
                value: "c1"
              }]
        }
        }
    });
});

Anúncio concluído ad-complete

O tipo de evento media.adComplete é usado para monitorar quando um anúncio é concluído. Esse evento deve ser enviado quando um anúncio é concluído.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.adComplete"
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.adComplete",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID
            }
        }
    });
});

Ignorar anúncio ad-skip

O tipo de evento media.adSkip é usado para monitorar quando um anúncio é ignorado. Esse evento deve ser enviado quando um anúncio é ignorado.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.adSkip"
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.adSkip",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID
            }
        }
    });
});

Início do capítulo chapter-start

O tipo de evento media.chapterStart é usado para rastrear o início de um capítulo. Esse evento deve ser enviado quando um capítulo é iniciado.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.chapterStart",
        mediaCollection: {
            chapterDetails: {
                friendlyName: "Chapter 1",
                position: 1,
                length: 10,
                index: 1,
                offset: 0
            },
            customMetadata: [{
                    name: "myCustomValue3",
                    value: "c3"
                },
                {
                    name: "myCustomValue2",
                    value: "c2"
                },
                {
                    name: "myCustomValue1",
                    value: "c1"
                }
            ]
        }
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.chapterStart",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID,
                chapterDetails: {
                    friendlyName: "Chapter 1",
                    position: 1,
                    length: 10,
                    index: 1,
                    offset: 0
                },
                customMetadata: [{
                        name: "myCustomValue3",
                        value: "c3"
                    },
                    {
                        name: "myCustomValue2",
                        value: "c2"
                    },
                    {
                        name: "myCustomValue1",
                        value: "c1"
                    }
                ]
            }
        }
    });
});

Capítulo concluído chapter-complete

O tipo de evento media.chapterComplete é usado para rastrear quando um capítulo é concluído. Esse evento deve ser enviado quando um capítulo é concluído.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.chapterComplete"
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.chapterComplete",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID
            }
        }
    });
});

Capítulo ignorado chapter-skip

O tipo de evento media.chapterSkip é usado para rastrear quando um capítulo é ignorado. Este evento deve ser enviado quando um capítulo é ignorado.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.chapterSkip"
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.chapterSkip",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID
            }
        }
    });
});

Início do buffer buffer-start

O tipo de evento media.bufferStart é usado para rastrear quando o buffering é iniciado. Esse evento deve ser enviado quando o buffering é iniciado. Não há um tipo de evento bufferResume. Um bufferResume é inferido quando você envia um evento de reprodução após bufferStart.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.bufferStart"
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.bufferStart",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID
            }
        }
    });
});

Alteração da taxa de bits bitrate-change

O tipo de evento media.bitrateChange é usado para monitorar quando a taxa de bits muda. Esse evento deve ser enviado quando a taxa de bits for alterada.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.bitrateChange",
        mediaCollection: {
            qoeDataDetails: {
                framesPerSecond: 1,
                bitrate: 35000,
                droppedFrames: 30,
                timeToStart: 1364
            }
        }
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.bitrateChange",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID,
                qoeDataDetails: {
                    bitrate: 35000,
                    droppedFrames: 30,
                    timeToStart: 1364
                }
            }
        }
    });
});

Atualizações de estado state-updates

O tipo de evento media.statesUpdate é usado para rastrear quando o estado do player é alterado. Esse evento deve ser enviado quando o estado do player for alterado.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.statesUpdate",
        mediaCollection: {
            statesStart: [{
                    name: "mute"
                },
                {
                    name: "pictureInPicture"
                }
            ],
            statesEnd: [{
                name: "fullScreen"
            }]
        }
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.stateUpdate",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID,
                statesStart: [{
                        name: "mute"
                    },
                    {
                        name: "pictureInPicture"
                    }
                ],
                statesEnd: [{
                    name: "fullScreen"
                }]
            }
        }
    });
});

Fim da sessão session-end

O tipo de evento media.sessionEnd é usado para notificar o back-end do Media Analytics para fechar imediatamente a sessão quando o usuário abandonar a visualização do conteúdo e for improvável que retorne.

Se você não enviar um evento sessionEnd, uma sessão abandonada sofrerá tempo limite depois que nenhum evento for recebido por 10 minutos ou quando nenhum movimento do indicador de reprodução ocorrer por 30 minutos. A sessão é excluída automaticamente.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.sessionEnd"
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.sessionEnd",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID
            }
        }
    });
});

Sessão concluída session-complete

O tipo de evento media.sessionComplete é usado para monitorar quando uma sessão de mídia é concluída. Esse evento deve ser enviado quando o fim do conteúdo principal é atingido.

Rastreamento automático de sessão
code language-javascript
alloy("sendMediaEvent", {
    playerId: "movie-test",
    xdm: {
        eventType: "media.sessionComplete"
    }
});
Rastreamento manual de sessão
code language-javascript
sessionPromise.then(sessionID => {
    alloy("sendMediaEvent", {
        xdm: {
            eventType: "media.sessionComplete",
            mediaCollection: {
                playhead: parseInt(document.getElementById("movie-test").currentTime, 10),
                sessionID
            }
        }
    });
});
recommendation-more-help
ad108910-6329-42f1-aa1d-5920a2b13636