Unreal Steam
Enlace al repositorio de
GitHub
Integración del SDK de AppsFlyer con Unreal Steam
AppsFlyer permite a los marketers de gaming tomar mejores decisiones al proporcionarles potentes herramientas para realizar atribuciones multiplataforma.
La atribución de un juego requiere que este integre el SDK de AppsFlyer, que registra los primeros inicios, las sesiones consecutivas y los eventos in-app. Por ejemplo, los eventos de compra.
Te recomendamos que uses esta aplicación de muestra como referencia para integrar el SDK de AppsFlyer en tu juego de Unreal Steam. Nota: El código de ejemplo que sigue actualmente solo se admite en un entorno Windows.
Requisitos previos:
- Unreal Engine 4.2x
- SDK de Steamworks integrado dentro de tu UE4 (generalmente está incluido dentro de los recursos de terceros de UE4 y no es necesario descargarlo).
- Cliente Steam instalado con un usuario activo.
AppsflyerSteamModule - Interfaz
AppsflyerSteamModule.h
, incluido en appsflyer-unreal-steam-sample-app/AppsflyerSteamIntegrationFiles/AppsflyerSteamModule
, 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:
AppsflyerSteamModule()->init("DEV_KEY", "STEAM_APP_ID");
Arguments:
STEAM_APP_ID
: se encuentra en SteamDB.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
AppsflyerSteamModule()->start();
// with the flag
bool skipFirst = [SOME_CONDITION];
AppsflyerSteamModule()->start(skipFirst);
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)
Usage:
//set event name
std::string event_name = "af_purchase";
//set json string
std::string event_values = "{\"af_currency\":\"USD\",\"af_price\":6.66,\"af_revenue\":24.12}";
AppsflyerSteamModule()->logEvent(event_name, event_values);
IsInstallOlderThanDate
Este método recibe una cadena de fecha y devuelve true si la fecha de modificación de la carpeta del juego es más antigua que la cadena de fecha. El formato de cadena de fecha es: "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 = AppsflyerSteamModule()->isInstallOlderThanDate("2023-January-01 23:12:34");
// will return true
bool dateAfter = AppsflyerSteamModule()->isInstallOlderThanDate("2023-April-10 23:12:34");
Ejecución de la aplicación de muestra
- Abre el motor de UE4.
- Elige New Project (Nuevo proyecto) > Games (Juegos) > First Person (Primera persona).
- Selecciona C++ (en lugar de Blueprints).
- Nombra el proyecto
AppsFlyerSample
y haz clic en Create project (Crear proyecto). - Sigue las instrucciones para implementar AppsFlyer en tu juego de Steam.
- Inicia la aplicación de muestra desde el editor del motor de UE4.
- 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.
Implementación de AppsFlyer en tu juego de Steam
Setup
- Asegúrate de que Steam esté en los recursos de terceros de UE4. Aprender más
- Agrega las siguientes definiciones a
Config/DefaultEngine.ini
. Como referencia, consulta el archivoappsflyer-unreal-steam-sample-app/AppsflyerSteamIntegrationFiles/DefaultEngine.ini
file.
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
DefaultPlatformService=Steam
bEnabled=true
SteamDevAppId=480 //replace "480" with your steam app id.
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
- En tu editor de Unreal, ve a Plugins, activa Online Subsystem Steam y reinicia el editor.
- Abre el proyecto en tu editor C++ preferido y en el archivo
[YOUR-APP-NAME].Build.cs
, y agregaOpenSSL
,OnlineSubsystem
yOnlineSubsystemSteam
to your dependencies andHTTP
as a private dependency:
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay", "OpenSSL", "OnlineSubsystem", "OnlineSubsystemSteam" });
PrivateDependencyModuleNames.Add("HTTP");
- En tus archivos de Unreal Project, bajo el directorio Source, crea un nuevo directorio llamado AppsflyerSteamModule.
- Copia los siguientes archivos desde
appsflyer-unreal-steam-sample-app/AppsflyerSteamIntegrationFiles/AppsflyerSteamModule
a la nueva carpeta:
- AppsflyerModule.cpp
- AppsflyerSteamModule.cpp
- AppsflyerSteamModule.h
- DeviceID.h
- RequestData.h
- Genera archivos de proyecto para agregar OpenSSL. Aprender más.
- En el
GameMode.h
, agrega laStartPlay() function
:
class AAppsFlyerSampleGameMode : public AGameModeBase
{
GENERATED_BODY()
public:
AAppsFlyerSampleGameMode();
virtual void StartPlay() override;
};
- Abre la carpeta
Source/AppsFlyerSample/AppsFlyerSampleGameMode.cpp
y agrega el siguiente include a tu archivoGameMode.cpp
file:
#include "AppsflyerSteamModule/AppsflyerSteamModule.cpp"
- Agrega la siguiente función, asegurándote de reemplazar el
DEV_KEY
andSTEAM_APP_ID
in theinit
: con los detalles de tu aplicación:
void AAppsFlyerSampleGameMode::StartPlay()
{
Super::StartPlay();
if (SteamAPI_Init()) {
// init the AF module
AppsflyerSteamModule()->init("DEV_KEY", "STEAM_APP_ID")
// check whether the install date was not older than 2023-January-02 23:12:34
bool isInstallOlderThanDate = AppsflyerSteamModule()->isInstallOlderThanDate("2023-January-02 23:12:34");
// send the firstOpen/session event (if the install date is not older than the given date, the AF module will skip the first-open event)
AppsflyerSteamModule()->start(!isInstallOlderThanDate);
// Use the following code to send in-app event
// set event name
std::string event_name = "af_purchase";
// set json string
std::string event_values = "{\"af_currency\":\"USD\",\"af_price\":6.66,\"af_revenue\":24.12}";
AppsflyerSteamModule()->logEvent(event_name, event_values);
}
}
- Inicializa e inicia la integración de AppsFlyer.
- Reporta los eventos in-app.
Eliminación de Steam Cloud Saves (restablecer la atribución)
Actualizado hace 11 días