Roku (Brighscript)

Enlace al repositorio de
GitHub

Integración del SDK de AppsFlyer con Roku

AppsFlyer permite a los marketers de gaming tomar mejores decisiones al proporcionarles potentes herramientas que resuelven puntos problemáticos reales, incluyendo atribución multiplataforma, análisis móvil y web, enlaces profundos, detección de fraude, gestión y preservación de la privacidad, y más.

La atribución del juego requiere que este se comunique con las API de AppsFlyer a través de HTTPS y reporte las actividades de los usuarios como los primeros inicios, las sesiones consecutivas y los eventos in-app. Por ejemplo, los eventos de compra.
Te recomendamos usar esta aplicación de muestra como referencia para integrar AppsFlyer en tu canal de Roku.


AppsFlyerRokuSDK - Interfaz

AppsFlyerRokuSDK.brs, incluido en source/appsflyer-integration-files , contiene el código y la lógica necesarios para conectarse a los servidores de AppsFlyer y reportar eventos.

Init

Este método recibe tu clave de API e ID de aplicación e inicializa el módulo AppsFlyer que envía las solicitudes de primeros inicios y de sesiones a AppsFlyer.

Firma de 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:

Start

Este método envía las solicitudes de primeros inicios y sesiones a AppsFlyer.

Firma de 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.

Firma de método

stop()

Usage:

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

LogEvent

Este método recibe un nombre de evento y un objeto json y envía eventos in-app a AppsFlyer.

Firma de 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.

Firma de método

setCustomerUserId(string cuid)

Usage:

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

Ejecución de la aplicación de muestra

  1. Abre la carpeta appsflyer-sample-app en VSCode.
  2. In source/main.brs, reemplaza los siguientes parámetros por los tuyos propios:
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.

Implementación de AppsFlyer en tu canal de Roku

Setup

  1. Copia los archivos desde la carpeta appsflyer-integration-files en tu proyecto.
  2. Agrega el siguiente código a tu archivo main.brs e inicializa la integración de 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. Reporta los eventos in-app.