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.
Game attribution requires the game to communicate with AppsFlyer APIs over HTTPS and report user activities like first opens, consecutive sessions, and in-app events. For example, purchase events.
We recommend you use this sample app as a reference for integrating the code that reports user activities in your C++.
Note: The sample code that follows is currently only supported in a Windows environment.
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)
Argumentos
bool skipFirst
: Determines whether or not to skip first open events and send session events. The value is false by default. If true , first open events are skipped and session events are sent. See example
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_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)
Arguments:
std::string cuid
: Custom user id.
Usage:
AppsflyerLauncherModule()->Init(DEV_KEY, APP_ID);
AppsflyerLauncherModule()->SetCustomerUserId("Test-18-9-23");
AppsflyerLauncherModule()->Start();
SetSharingFilterForPartners
This method lets you configure which partners should the SDK exclude from data-sharing. Partners that are excluded with this method will not receive data through postbacks, APIs, raw data reports, or any other means.
Firma de método
void SetSharingFilterForPartners(std::string sharingFilter)
Arguments:
std::string sharingFilter
: a list of partners to filter. For example:std::string list = "[\"partner1\",\"partner2\"]"
.
Please use[\"all\"]
in order to not send the event to any source.
Usage:
AppsflyerLauncherModule()->Init(DEV_KEY, APP_ID);
// set the sharing filter for partners a, b & c. please use ["all"] in order to not send the event to any source.
AppsflyerLauncherModule()->SetCustomerUserId("[\"a\",\"b\",\"c\"]");
// start the SDK (send firstopen/session request)
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)
Arguments:
std::string datestring
: Date string inyyyy-mm-ddThh:mm:ss+hh:mm
format.
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]
.
Deleting AppsFlyer data on uninstall
When uninstalling your app, please make sure to remove the registry data from SOFTWARE\Microsoft\Windows\CurrentVersion\Run
. The Registry keys are AF_counter_[APPID]
and AF_uuid_[APPID]
.
Actualizado hace 5 meses