Roku (BrightScript)

Link para o repositório
GitHub

Integração do SDK Roku da AppsFlyer

A AppsFlyer capacita os profissionais de marketing de jogos a tomar melhores decisões, fornecendo ferramentas poderosas que resolvem problemas reais, incluindo atribuição de plataforma cruzada, análise mobile e da web, deep links, detecção de fraude, gerenciamento e preservação de privacidade e muito mais.

A atribuição do jogo exige que o jogo se comunique com as APIs da AppsFlyer por HTTPS e relate as atividades do usuário, como primeiras aberturas, sessões consecutivas e eventos in-app. Por exemplo, eventos de compra.
Recomendamos que você use este aplicativo de amostra como referência para integrar a AppsFlyer ao seu canal Roku


AppsFlyerRokuSDK - Interface

AppsFlyerRokuSDK.brs, incluído na pasta source/appsflyer-integration-files , contém o código e a lógica necessários para se conectar aos servidores da AppsFlyer e relatar eventos.

Init

Este método recebe sua chave de API e ID do aplicativo e inicializa o módulo AppsFlyer que envia as primeiras solicitações de abertura e sessão para a AppsFlyer.

Assinatura do método

AppsFlyer().init(<< DEV_KEY >>, << APP_ID >>)

Usage:

' Initialize the AppsFlyer integration (send first-open/session event)
AppsFlyer().init(<< DEV_KEY >>, << APP_ID >>)

Arguments:

NOTE: It is recommended to set the APP_ID manually.

When retrieving the APP_ID com GetID() roAppInfo, the channel ID is "dev" if the application is sideloaded, and then app will not be able to communicate with the AppsFlyer endpoint.

Start

Este método envia as primeiras solicitações de abertura e sessão para a AppsFlyer.

Assinatura do método

start()

Usage:

AppsFlyer().start()

Stop

This method stops the SDK from functioning and communicating with AppsFlyer servers. It's used when implementing user opt-in/opt-out.

Assinatura do método

stop()

Usage:

' Starting the SDK
AppsFlyer().start()
' ...
' Stopping the SDK, preventing further communication with AppsFlyer
AppsFlyer().stop()

LogEvent

Esse método recebe um nome de evento e um objeto JSON e envia eventos in-app para a AppsFlyer.

Assinatura do método

logEvent: function(eventName as string, eventParameters as object, eventCustomParameters = {})

Usage:

' logEvent without eventCustomParameters
trackEventParameters = { "af_revenue": 24.22, "af_currency": "ILS" }
AppsFlyer().logEvent("af_purchase", trackEventParameters)

' logEvent with eventCustomParameters
trackEventParameters = { "af_revenue": 24.22, "af_currency": "ILS", "freeHandParam": "freeHandValue" }
trackCustomEventParameters = { "freeHandParam": "freeHandValue" }
AppsFlyer().logEvent("af_purchase", trackEventParameters, trackCustomEventParameters)

SetCustomerUserId

This method sets a customer ID that enables you to cross-reference your unique ID with the AppsFlyer unique ID and other device IDs. Note: You can only use this method before calling Start().
The customer ID is available in raw data reports and in the postbacks sent via API.

Assinatura do método

setCustomerUserId(string cuid)

Usage:

AppsFlyer().init(devkey, appid)
AppsFlyer().setCustomerUserId("")
AppsFlyer().start()

Executando o aplicativo de exemplo

  1. Abra a pasta appsflyer-sample-app no VSCode.
  2. In source/main.brs, substitua os seguintes parâmetros pelos seus próprios:
devkey = << DEV_KEY >>
appid = << APP_ID >>
  1. Deploy the channel: - by (using this plugin makes it easier), - by zipping the content of the source folder
    Zipped source
    and then deploying it to Roku through Roku's Development Application Installer:
    Zipped source

  2. After the app loads, you may use the following commands through the Roku remote:

    • Click the down button to set customer user id (cuid) to "AF roku test CUID".
    • Click the right button to set customer user id (cuid) to "" (reset it).
    • Click the up button to stop the SDK.
    • Click the left button to send the start (first open/session) event.
    • Click the options button (*) to send logEvent.
    • Click the replay button (*) to send logEvent with custom parameters.
    • Click the OK button after every command in order to refresh the logs.

Implementando a AppsFlyer em seu canal Roku

Setup

  1. Copie os arquivos da pasta appsflyer-integration-files no seu projeto.
  2. Adicione o seguinte código ao seu arquivo main.brs e inicialize a integração da AppsFlyer:
Function Main(args as Dynamic) as Void
    ...
    showAppsflyerChannelSGScreen(args)
    ...
End Function

sub showAppsflyerChannelSGScreen(args as Dynamic)
    screen = CreateObject("roSGScreen")
    m.port = CreateObject("roMessagePort")
    screen.setMessagePort(m.port)
    scene = screen.CreateScene("AppsFlyerScene")
    screen.show()

    ' Initialize the AppsFlyer integration
    AppsFlyer().init(DEV_KEY, APP_ID)
    ' Enable debugging if necessary
    AppsFlyer().enableDebugLogs(true) ' same as AppsFlyer().setLogLevel("debug")

    ' ConversionData response arrives here
    while true
        msg = Wait(0, m.port)
        ?"MESSAGE RECEIVED: "msg.GetData()
        msgType = Type(msg)
        if msgType = "roSGScreenEvent"
            if msg.isScreenClosed() then
                return
            end if
        end if
    end while
end sub
  1. Start the SDK.
  2. Reporte os eventos in-app.