View a markdown version of this page

Funções: ganchos de ciclo de vida - AWS Elemental MediaTailor

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Funções: ganchos de ciclo de vida

Um gancho de ciclo de vida define quando MediaTailor executa sua função durante a reprodução. Esta página é uma referência completa para campos de entrada, namespaces de saída e as regras que governam o fluxo de dados em cada gancho.

Visão geral do

MediaTailor suporta quatro ganchos de ciclo de vida:

  • PRE_SESSION_INITIALIZATIONé acionado uma vez quando um espectador inicia uma nova sessão. Use-o para trabalhos de configuração únicos, como buscar segmentos de público. Neste momento, nenhum intervalo de anúncio ocorreu, então o contexto do intervalo de anúncio não está disponível.

  • PRE_ADS_REQUESTé acionado antes de cada solicitação do servidor de decisão de anúncios (ADS) — uma vez por intervalo de anúncio no stream. Use-o para personalizar a solicitação do ADS com dados de segmentação, modificar o URL do ADS ou adicionar cabeçalhos.

  • POST_ADS_RESPONSEé acionado após MediaTailor receber e analisar a resposta do ADS, incluindo a resolução dos redirecionamentos do wrapper do Video Ad Serving Template (VAST). Use-o para filtrar, reordenar, modificar ou complementar os anúncios retornados pelo ADS antes de MediaTailor selecionar os anúncios a serem inseridos.

  • PRE_MANIFEST_INSERTIONé acionado no final da personalização do intervalo publicitário, após a seleção do anúncio, as verificações de transcodificação e a política de preenchimento, imediatamente antes de MediaTailor gravar os anúncios no manifesto. Use-o para inspecionar ou modificar o conjunto final de anúncios, incluindo a injeção de anúncios adicionais em intervalos de anúncios mal preenchidos.

Os ganchos diferem em tempo e escopo. PRE_SESSION_INITIALIZATIONé executado uma vez e configura dados que persistem durante toda a sessão. PRE_ADS_REQUESTe POST_ADS_RESPONSE analise cada interação do ADS. PRE_ADS_REQUESTmolda a solicitação de saída e POST_ADS_RESPONSE atua na resposta analisada antes da seleção do anúncio. PRE_MANIFEST_INSERTIONé executado após a conclusão da seleção e vê o conjunto final de anúncios para todos os intervalos de anúncios recém-personalizados em uma única invocação.

Importante

Os PRE_MANIFEST_INSERTION ganchos PRE_ADS_REQUESTPOST_ADS_RESPONSE,, e compartilham um orçamento de execução combinado de 2.000 ms para uma única solicitação. Esse orçamento é adicional ao tempo limite de 2.000 ms de cada gancho. O tempo limite efetivo de um gancho é o menor de seu próprio tempo limite e do orçamento restante. O tempo gasto por um gancho anterior reduz o tempo disponível para ganchos posteriores na mesma solicitação. Se o orçamento restante estiver esgotado antes do início do gancho, MediaTailor ignore esse gancho e continue processando a solicitação sem ele. PRE_SESSION_INITIALIZATIONé executado durante a inicialização da sessão e não faz parte do orçamento combinado. Para obter mais informações, consulte Limites.

nota

Nesta documentação, um intervalo publicitário também é chamado de “avail”. Os nomes dos campos de entrada (como avail.availId eavails.avails) e CloudWatch as métricas usam o avail formulário.

Referência do campo de entrada

A tabela a seguir lista os campos de entrada disponíveis em cada gancho do ciclo de vida. Na coluna Campo, a parent[].child notação indica um campo de cada elemento na parent matriz.

nota

Os PRE_MANIFEST_INSERTION ganchos POST_ADS_RESPONSE e expõem campos de sessão em CamelCase (por exemplo,session.clientIp), enquanto os dois primeiros ganchos usam snake_case (por exemplo,). session.client_ip Os parâmetros do player estão disponíveis por meio do player_params namespace nos dois primeiros ganchos e como session.playerParams objeto nos outros dois.

Campo Tipo INICIALIZAÇÃO_PRÉ-SESSÃO PRÉ-SOLICITAÇÃO_DE_ANÚNCIOS POST_ADS_RESPONSE INSERÇÃO PRÉ-MANIFESTO
session.idLongo✓✓✓✓
session.uuidString✓✓✓✓
session.client_ipString✓✓✗✗
session.clientIpString✗✗✓✓
session.user_agentString✓✓✗✗
session.userAgentString✗✗✓✓
session.referer*String✓✓✗✗
session.avail_duration_secsLongo✗✓✗✗
session.avail_duration_msLongo✗✓✗✗
session.streamingProtocolString✗✗✓✓
session.playerParamsObjeto✗✗✓✓
player_params.*String✓✓✗✗
event.idString✓✓✓✓
event.hookString✓✓✓✓
event.timestampString✓✓✓✓
avail.indexInt✗✓✗✗
avail.randomLongo✗✓✗✗
avail.source_content_time_epoch_msLongo✗✓✗✗
avail.availId†String✗✗✓✗
avail.durationSeconds†Número✗✗✓✗
avail.startTime†String✗✗✓✗
scte.event_idInt✗✓✗✗
scte.avail_numInt✗✓✗✗
scte.segmentation_event_idInt✗✓✗✗
scte.segmentation_type_idInt✗✓✗✗
scte.segmentation_upidString✗✓✗✗
scte.segmentation_upid.assetIdString✗✓✗✗
scte.segmentation_upid.cueData.keyString✗✓✗✗
scte.segmentation_upid.cueData.valueString✗✓✗✗
scte.unique_program_idInt✗✓✗✗
scte.archive_allowed_flagBooleano✗✓✗✗
scte.delivery_not_restricted_flagBooleano✗✓✗✗
scte.device_restrictionsInt✗✓✗✗
scte.no_regional_blackout_flagBooleano✗✓✗✗
scte.segment_numInt✗✓✗✗
scte.segments_expectedInt✗✓✗✗
scte.sub_segment_numInt✗✓✗✗
scte.sub_segments_expectedInt✗✓✗✗
scte.avails_expectedLongo✗✓✗✗
asset.*String✗✓✗✗
inference.enrichedBooliano✗✓✗✗
inference.feedIdString✗✓✗✗
inference.dataEndpointString✗✓✗✗
inference.ptsLongo✗✓✗✗
inference.timescaleLongo✗✓✗✗
inference.regionString✗✓✗✗
inference.previousBreakEndPtsLongo✗✓✗✗
inference.parseErrorBooliano✗✓✗✗
adsRequest.urlString✗✓✓✗
adsRequest.methodString✗✓✓✗
adsRequest.headers.<key>String✗✓✓✗
adsRequest.bodyString✗✓✗✗
adsResponse.responseTypeString✗✗✓✗
adsResponse.adsArray✗✗✓✗
adsResponse.ads[].adId‡String✗✗✓✗
adsResponse.ads[].durationSecondsNúmero✗✗✓✗
adsResponse.ads[].adSystemString✗✗✓✗
adsResponse.ads[].adTitleString✗✗✓✗
adsResponse.ads[].creativeIdString✗✗✓✗
adsResponse.ads[].sequenceInt✗✗✓✗
adsResponse.ads[].mediaFilesArray✗✗✓✗
adsResponse.ads[].mediaFiles[].urlString✗✗✓✗
adsResponse.ads[].mediaFiles[].mimeTypeString✗✗✓✗
adsResponse.ads[].mediaFiles[].widthInt✗✗✓✗
adsResponse.ads[].mediaFiles[].heightInt✗✗✓✗
adsResponse.ads[].mediaFiles[].bitrateInt✗✗✓✗
adsResponse.ads[].trackingEvents.<eventType>Matriz de strings✗✗✓✗
avails.availsArray✗✗✗✓
avails.avails[].availIdString✗✗✗✓
avails.avails[].durationSecondsNúmero✗✗✗✓
avails.avails[].startTimeNúmero✗✗✗✓
avails.avails[].mediaProtocolCadeia de caracteres (HLS|DASH)✗✗✗✓
avails.avails[].streamingModeCadeia de caracteres (LIVE|VOD)✗✗✗✓
avails.avails[].fillDurationSecondsNúmero✗✗✗✓
avails.avails[].fillRateNúmero (0—1)✗✗✗✓
avails.avails[].mutableBooleano✗✗✗✓
avails.avails[].adsArray✗✗✗✓
avails.avails[].ads[].adId§String✗✗✗✓
avails.avails[].ads[].vastAdIdString✗✗✗✓
avails.avails[].ads[].creativeIdString✗✗✗✓
avails.avails[].ads[].insertionUuidString✗✗✗✓
avails.avails[].ads[].sequenceInAvailInt✗✗✗✓
avails.avails[].ads[].durationSecondsNúmero✗✗✗✓
avails.avails[].ads[].adSystemString✗✗✗✓
avails.avails[].ads[].adTitleString✗✗✗✓
avails.avails[].ads[].mediaUrlString✗✗✗✓
avails.avails[].ads[].trackingEvents.<eventType>Matriz de strings✗✗✗✓
avails.avails[].ads[].mediaFilesArray✗✗✗✓
avails.avails[].skippedAdsArray✗✗✗✓
avails.avails[].skippedAds[].adIdString✗✗✗✓
avails.avails[].skippedAds[].vastAdIdString✗✗✗✓
avails.avails[].skippedAds[].durationSecondsNúmero✗✗✗✓
avails.avails[].skippedAds[].creativeUrlString✗✗✗✓
avails.avails[].skippedAds[].reasonString✗✗✗✓

* só session.referer está presente quando um cabeçalho Referer é incluído na solicitação de inicialização da sessão. Use $exists(session.referer) para verificar antes de acessar.

† O avail namespace está presente somente quando a resposta do ADS se aplica a um único intervalo publicitário. Ele não está presente para respostas com várias interrupções (VMAP) ou respostas pré-buscadas. Use $exists(avail) para verificar antes de acessar.

‡ AtPOST_ADS_RESPONSE, adId é o id atributo do <Ad> elemento VAST.

§ EmPRE_MANIFEST_INSERTION, adId é um identificador de posicionamento interno. É estável para um anúncio dentro de seu intervalo publicitário, mas não é o ID do anúncio VAST e não é comparável entre intervalos publicitários ou ganchos. Para verificações de identidade que abrangem intervalos de anúncios ou ganchos, use vastAdId (o id atributo do <Ad> elemento VAST) oucreativeId.

Em transmissões DASH VOD, adTitle e adSystem estamos aquinull. Use vastAdId ou creativeId insira predicados lá.