Você pode usar a estrutura de programação XML do Roku SceneGraph para desenvolver aplicativos. Esta estrutura apresenta dois conceitos principais:
O SDK do Adobe Mobile para Roku foi escrito em BrightScript. O SDK usa muitos componentes que não estão disponíveis para um aplicativo em execução no SceneGraph (por exemplo, threads). Portanto, um desenvolvedor do aplicativo Roku que pretende usar a estrutura do SceneGraph não pode chamar as APIs do SDK do Adobe Mobile (as últimas são semelhantes às disponíveis nos aplicativos herdados do BrightScript).
Para adicionar suporte do SceneGraph ao SDK do AdobeMobile, a Adobe adicionou uma nova API que cria um conector bridge entre o SDK do AdobeMobile e adbmobileTask
. O último é um nó do SceneGraph usado para a execução da API do SDK. (O uso do adbmobileTask
é explicado em detalhes mais adiante neste documento.)
A ponte do conector foi projetada para funcionar da seguinte forma:
Aplicativo SceneGraph:
AdobeMobileLibrary
por meio das APIs do conector bridge do SceneGraph.adbmobileTask
para as variáveis de dados de saída esperadas.AdobeMobileLibrary:
adbmobileTask
do SceneGraph para a execução de APIs.Nó adbmobileTask:
AdobeMobileLibrary
em um thread em segundo plano.Categoria | Nome do método | Descrição |
---|---|---|
Constantes | ||
sceneGraphConstants |
Retorna um objeto contendo SceneGraphConstants . Consulte os detalhes na tabela acima. |
|
Registro de depuração | ||
setDebugLogging |
API do SceneGraph para definir o log de depuração no SDK do ADBMobile. | |
getDebugLogging |
API do SceneGraph para obter o log de depuração do SDK do ADBMobile. | |
Para obter mais informações, consulte a seção Log de depuração do SDK herdado. | ||
Status de privacidade / Rejeição | ||
setPrivacyStatus |
API do SceneGraph para definir o status de privacidade no SDK do ADBMobile. | |
getPrivacyStatus |
API do SceneGraph para obter o status de privacidade do SDK do ADBMobile. | |
Para obter mais informações, consulte a seção Status de exclusão/privacidade do SDK herdado. | ||
Analytics | ||
trackState |
API do SceneGraph para rastrear o estado no SDK do ADBMobile. | |
trackAction |
API do SceneGraph para rastrear ações no SDK do ADBMobile. | |
trackingIdentifier |
API do SceneGraph para obter um identificador de rastreamento do SDK do ADBMobile. | |
userIdentifier |
API do SceneGraph para obter um identificador do usuário do SDK do ADBMobile. | |
setUserIdentifier |
API do SceneGraph para definir o identificador do usuário no SDK do ADBMobile. | |
getAllIdentifiers |
A API do SceneGraph recupera todas as identidades de usuário conhecidas e persistentes pelo SDK Roku. | |
Para obter mais informações, consulte a seção Analytics do SDK herdado. | ||
Experience Cloud | ||
visitorSyncIdentifiers |
API do SceneGraph para sincronizar os identificadores da Experience Cloud no SDK do ADBMobile. | |
visitorMarketingCloudID |
API do SceneGraph para obter a ID de visitante da Experience Cloud ID do SDK do ADBMobile. | |
Para obter mais informações, consulte a seção Experience Cloud do SDK herdado. | ||
Audience Manager | ||
audienceSubmitSignal |
API do SceneGraph para enviar um sinal de gerenciamento de público-alvo com características. | |
audienceVisitorProfile |
API do SceneGraph para obter um perfil de visitante do Audience Manager do SDK do ADBMobile. | |
audienceDpid |
API do SceneGraph para obter um Dpid de público-alvo do SDK do ADBMobile. | |
audienceDpuuid |
API do SceneGraph para obter um Dpuuid de público-alvo do SDK do ADBMobile. | |
audienceSetDpidAndDpuuid |
API do SceneGraph para definir o Dpid e o Dpuuid de público-alvo no SDK ADBMobile. | |
Para obter mais informações, consulte a seção Audience Manager do SDK herdado. | ||
MediaHeartbeat | ||
mediaTrackLoad |
API do SceneGraph para carregar conteúdo de vídeo para o rastreamento de MediaHeartbeat. | |
mediaTrackStart | API do SceneGraph para iniciar a sessão de rastreamento de vídeo usando o MediaHeartbeat. | |
mediaTrackUnload |
API do SceneGraph para descarregar conteúdo de vídeo do rastreamento de MediaHeartbeat. | |
mediaTrackPlay |
API do SceneGraph para rastrear a reprodução do conteúdo de vídeo. | |
mediaTrackPause | API do SceneGraph para rastrear conteúdo de vídeo pausado. | |
mediaTrackComplete |
API do SceneGraph para rastrear a conclusão da reprodução do conteúdo de vídeo. | |
mediaTrackError |
API do SceneGraph para rastrear erros de reprodução. | |
mediaTrackEvent | API do SceneGraph para rastrear eventos de reprodução durante o rastreamento. Por exemplo: Anúncios, capítulos. | |
mediaUpdatePlayhead |
API do SceneGraph para enviar atualizações de indicador de reprodução ao MediaHeartbeat durante o rastreamento de vídeo. | |
mediaUpdateQoS |
API do SceneGraph para enviar atualizações de QoS ao MediaHeartbeat durante o rastreamento de vídeo. | |
Para obter mais informações, consulte a seção MediaHeartbeat do SDK herdado. |
Nome da constante | Descrição |
---|---|
API_RESPONSE |
Usado para recuperar o objeto de resposta do campo adbmobileTask do nó adbmobileApiResponse |
DEBUG_LOGGING |
Usado como apiName para getDebugLogging |
PRIVACY_STATUS |
Usado como apiName para getPrivacyStatus |
TRACKING_IDENTIFIER |
Usado como apiName para trackingIdentifier |
USER_IDENTIFIER |
Usado como apiName para userIdentifier |
VISITOR_MARKETING_CLOUD_ID |
Usado como apiName para visitorMarketingCloudID |
AUDIENCE_VISITOR_PROFILE |
Usado como apiName para audienceVisitorProfile |
AUDIENCE_DPID |
Usado como apiName para audienceDpid |
AUDIENCE_DPUUID |
Usado como apiName para audienceDpuuid |
Campo | Tipo | Padrão | Uso |
adbmobileApiCall | assocarray | Inválido | NÃO modifique este campo nem permita que seja utilizado pelo Aplicativo. Este campo é usado pelo ADBMobile SceneGraphConnector para rotear as chamadas de API por meio dos nós do SceneGraph e obter as respostas. Portanto, essa chave/campo é reservada para AdobeMobileSDK para compatibilidade com o SceneGraph. Importante: qualquer modificação nesse campo pode resultar no funcionamento incorreto do AdobeMobileSDK. |
adbmobileApiResponse | assocarray | Inválido | Somente leitura. Todas as APIs executadas no AdobeMobileSDK retornarão respostas neste campo. Registre-se para um retorno de chamada para detectar as atualizações desse campo e receber objetos de resposta. A seguir está o formato para o objeto de resposta:
response = { "apiName" : <SceneGraphConstants. API_NAME> "returnValue : <API_RESPONSE> }Uma instância desse objeto de resposta será enviada para qualquer chamada de API no AdobeMobileSDK que deveria retornar um valor de acordo com o guia de referência da API. Por exemplo, uma chamada de API para visitorMarketingCloudID() retornará o seguinte objeto de resposta: response = { "apiName" : m. adbmobileConstants. VISITOR_MARKETING_CLOUD_ID "returnValue : "07050x25671x33760x72644x14" }OU, os dados de resposta também podem ser inválidos: response = { "apiName" : m. adbmobileConstants. VISITOR_MARKETING_CLOUD_ID "returnValue : invalid } |
adbmobile.brs
getADBMobileConnectorInstance
Assinatura da API: ADBMobile().getADBMobileConnectorInstance()
Entrada: adbmobileTask
Tipo de retorno: ADBMobileConnector
sgConstants
Assinatura da API: ADBMobile().sgConstants()
Entrada: Nenhum
Tipo de retorno: SceneGraphConstants
Consulte a referência da API ADBMobileConnector
para obter mais detalhes.
Recurso | Nome da constante | Descrição |
---|---|---|
Controle de versão | version |
Constante para recuperar informações de versão do AdobeMobileLibrary |
Privacidade/opção de não participação | PRIVACY_STATUS_OPT_IN |
Constante para o status de privacidade aceito |
PRIVACY_STATUS_OPT_OUT |
Constante para o status de privacidade não aceito | |
Constantes do MediaHeartbeat | Consulte as constantes nesta página: Métodos de heartbeat de mídia. |
Use essas constantes com as APIs do MediaHeartbeat |
Metadados padrão | Consulte as constantes nesta página: Parâmetros de metadados padrão. |
Use essas constantes para anexar metadados de vídeo/anúncio padrão às APIs do MediaHeartbeat |
As APIs do MediaHeartbeat
definidas globalmente na AdobeMobileLibrary herdada podem ser acessadas como estão no ambiente do SceneGraph porque elas não usam componentes do Brightscript que não estejam disponíveis nos nós do SceneGraph. Para obter mais informações sobre esses métodos, consulte a tabela abaixo:
Método | Descrição |
---|---|
adb_media_init_mediainfo |
Esse método retorna um objeto de Informações de mídia inicializado. Function adb_media_init_mediainfo(name As String, id As String, length As Double, streamType As String) As Object |
adb_media_init_adinfo |
Este método retorna o objeto de Informações do anúncio. Function adb_media_init_adinfo(name As String, id As String, position As Double, length As Double) As Object |
adb_media_init_chapterinfo |
Este método retorna o objeto de Informações do capítulo inicializado. Function adb_media_init_adbreakinfo(name As String, startTime as Double, position as Double) As Object |
adb_media_init_adbreakinfo |
Este método retorna o objeto de Informações do AdBreak inicializado. Function adb_media_init_chapterinfo(name As String, position As Double, length As Double, startTime As Double) As Object |
adb_media_init_qosinfo |
Este método retorna um objeto de Informações de QoS inicializado. Function adb_media_init_qosinfo(bitrate As Double, startupTime as Double, fps as Double, droppedFrames as Double) As Object |
Baixe a biblioteca do Roku - Baixe a biblioteca do Roku mais recente.
Configurar o ambiente de desenvolvimento
Copie adbmobile.brs
(AdobeMobileLibrary) no diretório pkg:/source/
.
Para obter suporte ao SceneGraph, copie adbmobileTask.brs
e adbMobileTask.xml
no diretório pkg:/components/
.
Inicializar
Importe adbmobile.brs
na cena.
<script type="text/brightscript" uri="pkg:/source/adbmobile.brs" />
Crie uma instância do nó adbmobileTask
na Cena.
m.adbmobileTask = createObject("roSGNode", "adbmobileTask")
Obtenha uma instância do conector adbmobile
para o SceneGraph usando a instância adbmobileTask
.
m.adbmobile = ADBMobile().getADBMobileConnectorInstance(m.adbmobileTask)
Obtenha as constantes adbmobile
do SG.
m.adbmobileConstants = m.adbmobile.sceneGraphConstants()
Registre um retorno de chamada para receber o objeto de resposta para todas as chamadas de API AdbMobile
.
m.adbmobileTask.ObserveField(m.adbmobileConstants.API_RESPONSE,
"onAdbmobileApiResponse")
' Sample implementation of the callback
' Listen for all the constants for which API calls are made on the SDK
function onAdbmobileApiResponse() as void
responseObject = m.adbmobileTask[m.adbmobileConstants.API_RESPONSE]
if responseObject <> invalid
methodName = responseObject.apiName
retVal = responseObject.returnValue
if methodName = m.adbmobileConstants.DEBUG_LOGGING
if retVal
print "API Response: DEBUG LOGGING: " + "True"
else
print "API Response: DEBUG LOGGING: " + "False"
endif
else if methodName = m.adbmobileConstants.PRIVACY_STATUS
print "API Response: PRIVACY STATUS: " + retVal
else if methodName = m.adbmobileConstants.TRACKING_IDENTIFIER
if retVal <> invalid
print "API Response: TRACKING IDENTIFIER: " + retVal
else
print "API Response: TRACKING IDENTIFIER: " + "invalid"
endif
else if methodName = m.adbmobileConstants.USER_IDENTIFIER
if retVal <> invalid
print "API Response: USER IDENTIFIER: " + retVal
else
print "API Response: USER IDENTIFIER: " + "invalid"
endif
else if methodName = m.adbmobileConstants.VISITOR_MARKETING_CLOUD_ID
if retVal <> invalid
print "API Response: MCID: " + retVal
else
print "API Response: MCID: " + "invalid"
endif
else if methodName = m.adbmobileConstants.AUDIENCE_DPID
if retVal <> invalid
print "API Response: AUDIENCE DPID: " + retVal
else
print "API Response: AUDIENCE DPID: " + "invalid"
endif
else if methodName = m.adbmobileConstants.AUDIENCE_DPUUID
if retVal <> invalid
print "API Response: AUDIENCE DPUUID: " + retVal
else
print "API Response: AUDIENCE DPUUID: " + "invalid"
endif
else if methodName = m.adbmobileConstants.AUDIENCE_VISITOR_PROFILE
if retVal <> invalid
print "API Response: AUDIENCE VISITOR PROFILE: Valid Object"
else
print "API Response: AUDIENCE VISITOR PROFILE: " + "invalid"
endif
endif
endif
end function
'get an instance of SDK
m.adbmobile = ADBMobile()
'execute setter APIs
m.adbmobile.setDebugLogging(true)
'execute getter APIs
debugLogging = m.adbmobile.getDebugLogging()
'create adbmobileTask instance
m.adbmobileTask = createObject("roSGNode", "adbmobileTask")
'get an instance of SDK using task instance
m.adbmobile =
ADBMobile().getADBMobileConnectorInstace(m.adbmobileTask)
m.adbmobileConstants = m.adbmobile.sceneGraphConstants()
'execute setter APIs
m.adbmobile.setDebugLogging(true)
'execute getter APIs
m.adbmobileTask.ObserverField(m.adbConstants.API_RESPONSE,
"onAdbmobileApiResponse")
m.adbmobile.getDebugLogging()
'listen for return data in registered callbacks
function onAdbmobileApiResponse() as void
responseObject = m.adbmobileTask[m.adbmobileConstants.API_RESPONSE]
if responseObject <> invalid
methodName = responseObject.apiName
retVal = responseObject.returnValue
if methodName = m.adbmobileConstants.DEBUG_LOGGING
if retVal
print "API Response: DEBUG LOGGING: " + "True"
else
print "API Response: DEBUG LOGGING: " + "False"
endif
endif
end function