Epic C++
Enlace al repositorio de
GitHub
Integración del SDK de AppsFlyer con Epic C++
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 utilizar esta aplicación de ejemplo como referencia para integrar el código que reporta las actividades de los usuarios en tu C++. Nota: El código de ejemplo que sigue actualmente solo se admite en un entorno Windows.
Prerequisites
Paquetes vcpkg openssl y nlohmann-json:
vcpkg install curl:x86-windows
vcpkg install nlohmann-json:x86-windows
vcpkg install openssl:x86-windows
AppsflyerLauncherModule - Interfaz
AppsflyerLauncherModule.h
, incluido en appsflyer-module
, 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 API e ID de aplicación e inicializa el módulo AppsFlyer.
Firma de método
void Init(const char* devkey, const char* appID)
Usage:
AppsflyerLauncherModule()->Init(<< DEV_KEY >>, << APP_ID >>);
Arguments:
EPIC_APP_ID
: Your Epic app id.DEV_KEY
: puedes obtenerlo del marketer o en AppsFlyer HQ.
Start
Este método envía las solicitudes de primeros inicios/sesiones a AppsFlyer.
Firma de método
void Start(bool skipFirst = false)
Usage:
// without the flag
AppsflyerLauncherModule()->Start();
// with the flag
bool skipFirst = [SOME_CONDITION];
AppsflyerLauncherModule()->Start(skipFirst);
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
void Stop()
Usage:
// Starting the SDK
AppsflyerLauncherModule()->Start();
// ...
// Stopping the SDK, preventing further communication with AppsFlyer
AppsflyerLauncherModule()->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
void LogEvent(std::string event_name, json event_values, json custom_event_values = {})
Argumentos
std::string event_name
-json event_parameters
: dictionary object which contains the predefined event parameters.json event_custom_parameters
(non-mandatory): dictionary object which contains the any custom event parameters. For non-English values, please use UTF-8 encoding.
Usage:
// Setting the event values json and event name
std::string event_name = "af_purchase";
json event_parameters = { {"af_currency", "USD"}, {"af_price", 6.66}, {"af_revenue", 24.12} };
// Send LogEvent request
AppsflyerLauncherModule()->LogEvent(event_name, event_parameters);
// Send LogEvent request with custom event params and UTF8 encoding (for non-English characters)
std::wstring ws = L"車B1234 こんにちは";
std::wstring ws2 = L"新人邀约购物日";
json custom_event_parameters = {
{"goodsName", AppsflyerLauncherModule()->to_utf8(ws)},
{"goodsName2", AppsflyerLauncherModule()->to_utf8(ws2)}
};
AppsflyerLauncherModule()->LogEvent(event_name, event_parameters, custom_event_parameters);
Nota: Para utilizar JSON, asegúrate de usar las siguientes importaciones:
#include <nlohmann/json.hpp>
using json = nlohmann::json;
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
void SetCustomerUserId(std::string cuid)
Usage:
AppsflyerLauncherModule()->Init(DEV_KEY, APP_ID);
AppsflyerLauncherModule()->SetCustomerUserId("Test-18-9-23");
AppsflyerLauncherModule()->Start();
OnCallbackSuccess, OnCallbackFailure
Los métodos anteriores son marcadores de posición para las acciones deseadas en caso de éxito/fracaso.
Es posible manejar diferentes tipos de eventos con el switch case del contexto dentro de cada función (“FIRST_OPEN_REQUEST”, ”SESSION_REQUEST”, ”INAPP_EVENT_REQUEST”).
Firma de método
void OnCallbackSuccess(long responseCode, uint64 context)
void OnCallbackFailure(long responseCode, uint64 context)
GetAppsFlyerUID
Obtén el ID de dispositivo único de AppsFlyer. El SDK genera un ID de dispositivo único de AppsFlyer tras la instalación de la aplicación. Cuando se inicia el SDK, este ID se registra como el ID de la primera instalación de la aplicación.
Firma de método
std::string GetAppsFlyerUID()
Usage:
AppsflyerLauncherModule()->GetAppsFlyerUID();
To_utf8
This method receives a reference of a std::wstring
and returns UTF-8 encoded std::string
Firma de método
std::string to_utf8(std::wstring& wide_string);
Usage:
std::wstring ws = L"車B1234 こんにちは";
std::wstring ws2 = L"新人邀约购物日";
custom_event_parameters = {
{"goodsName", AppsflyerLauncherModule()->to_utf8(ws)},
{"goodsName2", AppsflyerLauncherModule()->to_utf8(ws2)}
};
IsInstallOlderThanDate
This method receives a date string and returns true if the game exe modification date is older than the date string. The date string format is: "2023-January-01 23:12:34"
Firma de método
bool IsInstallOlderThanDate(std::string datestring)
Usage:
// the modification date in this example is "2023-January-23 08:30:00"
// will return false
bool dateBefore = AppsflyerLauncherModule()->IsInstallOlderThanDate("2023-January-01 23:12:34");
// will return true
bool dateAfter = AppsflyerLauncherModule()->IsInstallOlderThanDate("2023-April-10 23:12:34");
// example usage with skipFirst -
// skipping if the install date is NOT older than the given date
bool isInstallOlderThanDate = AppsflyerLauncherModule()->IsInstallOlderThanDate("2023-January-10 23:12:34");
AppsflyerLauncherModule()->Start(!isInstallOlderThanDate);
Ejecución de la aplicación de muestra
- Instala Visual Studio.
- Abre la solución.
- Abre la carpeta
AppsflyerSampleApp.cpp
file. - En la línea 112, reemplaza
DEV_KEY
andAPP_ID
con los detalles de tu aplicación. - Ejecuta la aplicación haciendo clic en Play (Reproducir) en la barra de herramientas superior (Depurador local de Windows). Asegúrate de que el modo esté configurado en Depurar.
- Después de 24 horas, el panel de control se actualiza y muestra las instalaciones orgánicas y no orgánicas y los eventos in-app.
Implementar AppsFlyer en tu aplicación C++
Setup
- Copia los archivos desde la carpeta
appsflyer-module
a tu proyecto C++ en Archivos de encabezado > AppsFlyer. - Importa el módulo:
#include "AppsflyerLauncherModule.h"
- Importar
nlohmann-json
:
#include <nlohmann/json.hpp>
using json = nlohmann::json;
- Inicializa e inicia la integración de AppsFlyer.
- Reporta los eventos in-app.
Resetting the attribution
Remove the registry data from SOFTWARE\Microsoft\Windows\CurrentVersion\Run
. The Registry keys are AF_counter_[APPID]
and AF_uuid_[APPID]
.
Actualizado hace aproximadamente 1 mes