Instalación
Instale el SDK de Singular Unreal Engine añadiendo el plugin del SDK a la carpeta Plugins de su proyecto y habilitándolo en su proyecto de Unreal Engine.
Instalación del SDK
Siga estos pasos para integrar el SDK de Singular en su proyecto de Unreal Engine.
- Descargue y extraiga el archivo del SDK desde el enlace anterior.
- En la carpeta raíz Project, cree una carpeta Plugins si no existe.
- Cree una carpeta "SingularSDK" en la carpeta "Plugins" de su aplicación.
-
Copie los archivos extraídos en la carpeta "SingularSDK"" de la carpeta " Plugins" de su aplicación.
- Cierre su proyecto Unreal si está abierto.
-
Vuelva a abrir su proyecto. Si se le pregunta si faltan módulos, elija Sí para continuar.
-
Habilite SingularSDK Plugin desde el Menú: "Edit>Plugins". Busque Singular.
-
Añada SingularSDK como dependencia de la matriz PublicDependencyModuleNamesen el archivo Build.cs de su aplicación (Source/ProjectName/<YOUR_APP>.Build.cs).
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "SingularSDK" });
Problema de instalación conocido
Durante la primera compilación, es posible que se produzca un error fatal en el archivo de cabecera de Singular framework.
PROBLEMA CONOCIDO: Durante la primera compilación, puede producirse el siguiente error fatal:
Plugins/SingularSDK/Source/SingularSDK/Private/SingularSDKBPLibrary.cpp:14:9: fatal error: 'Singular/Singular.h' file not found
Para solucionar este problema, siga estos pasos:
- Extraiga el archivo Singular.framework.zipde "Plugins/SingularSDK/Source/ThirdParty/iOS".
- Mueva la carpeta Singular.frameworka "/Users/Shared/Epic Games/UE_5.5/Engine/Intermediate/UnzippedFrameworks/Singular".
Inicialización del SDK
Inicialice el SDK de Singular cada vez que inicie su aplicación para habilitar el seguimiento de atribuciones, la gestión de sesiones y los informes de eventos.
Cumplimiento de la privacidad: Recuerde cumplir con las leyes de privacidad promulgadas en las regiones donde hace negocios, incluyendo GDPR, CCPA y COPPA al implementar Singular SDK. Para obtener más información, consulte Prácticas de inclusión y exclusión del SDK.
Por qué inicializar el SDK
La inicialización del SDK es un requisito previo para toda la funcionalidad de atribución de Singular. Crea una nueva sesiónenviada a Singular para calcular las métricas de retención de usuarios.
Práctica recomendada: Inicialice el SDK lo antes posible en el ciclo de vida de su aplicación, por ejemplo, en el constructor del modo de juego.
Método Initialize
USingularSDKBPLibrary::Inicializar
Llame al método Initialize para iniciar el SDK de Singular y enviar una sesión de usuario a los servidores de Singular.
Firma del método
static bool Initialize(
FString sdkKey,
FString sdkSecret,
int sessionTimeout = 60,
FString customUserId = TEXT(""),
bool skAdNetworkEnabled = true,
bool manualSkanConversionManagement = false,
int waitForTrackingAuthorizationWithTimeoutInterval = 0,
bool oaidCollection = false,
bool enableLogging = false,
int logLevel = 0,
bool clipboardAttribution = false,
FString facebookAppId = TEXT(""),
FString customSdid = TEXT("")
);
Ejemplo de implementación
Inicialice el SDK en su constructor de modo de juego con las credenciales de la API y las opciones de configuración.
// Copyright Epic Games, Inc. All Rights Reserved.
#include "MyProject2GameMode.h"
#include "MyProject2Character.h"
#include "UObject/ConstructorHelpers.h"
#include "SingularSDKBPLibrary.h"
#if PLATFORM_IOS
#include "IOS/IOSPlatformMisc.h"
#import <UIKit/UIKit.h>
#endif
AMyProject2GameMode::AMyProject2GameMode()
: Super()
{
#if PLATFORM_IOS
// Log IDFV for iOS testing
NSString *idfv = [[UIDevice currentDevice] identifierForVendor].UUIDString;
if (idfv)
{
FString IDFVString = FString(idfv);
UE_LOG(LogTemp, Log, TEXT("IDFV: %s"), *IDFVString);
}
else
{
UE_LOG(LogTemp, Warning, TEXT("Failed to retrieve IDFV"));
}
#endif
// Initialize Singular SDK
bool Success = USingularSDKBPLibrary::Initialize(
"YOUR_SDK_KEY", // API Key from Singular dashboard
"YOUR_SDK_SECRET", // Secret from Singular dashboard
60, // Session timeout in seconds
TEXT(""), // Custom user ID (optional)
true, // Enable SKAdNetwork for iOS
false, // Manual SKAdNetwork conversion management
30, // Wait 30 seconds for ATT prompt
false, // Disable OAID collection
true, // Enable logging for debugging
3, // Log level (0-5, higher = more verbose)
false, // Clipboard attribution
TEXT(""), // Facebook App ID (optional)
TEXT("") // Custom SDID (optional)
);
if (Success)
{
UE_LOG(LogTemp, Log, TEXT("Singular SDK initialized successfully"));
}
else
{
UE_LOG(LogTemp, Error, TEXT("Failed to initialize Singular SDK"));
}
// Set default pawn class
static ConstructorHelpers::FClassFinder<APawn> PlayerPawnClassFinder(
TEXT("/Game/FirstPerson/Blueprints/BP_FirstPersonCharacter")
);
DefaultPawnClass = PlayerPawnClassFinder.Class;
}
Parámetros de configuración
Parámetros requeridos
Estos parámetros son necesarios para la inicialización del SDK. Obtenga sus credenciales del panel de control de Singular.
- sdkKey: Su clave del SDK de Singular desde"Developer Tools > SDK Integration > SDK Keys" en su cuenta de Singular.
- sdkSecret: Su secreto del SDK de Singular desde la misma ubicación en su cuenta de Singular.
Importante: Mantenga sus credenciales SDK seguras y no las envíe a repositorios públicos de control de versiones.
Parámetros opcionales
Personalice el comportamiento del SDK con estos parámetros de configuración opcionales.
- sessionTimeout (predeterminado: 60): Establezca un tiempo de espera de sesión personalizado en segundos. Tras este periodo de inactividad, se crea una nueva sesión cuando el usuario vuelve a la aplicación.
- customUserId (Predeterminado: vacío): Establece un identificador de usuario personalizado en la inicialización. Más información sobre identificadores de usuario personalizados.
- skAdNetworkEnabled (Predeterminado: true, sólo iOS): Habilite la compatibilidad con SKAdNetwork para la atribución de iOS. Consulte Introducción a la solución SKAdNetwork de Singular.
- manualSkanConversionManagement (Predeterminado: false, sólo iOS): Establezca en true para gestionar manualmente los valores de conversión de SKAdNetwork en lugar de dejar que Singular los gestione automáticamente.
- waitForTrackingAuthorizationWithTimeoutInterval(Predeterminado: 0, sólo iOS): Retrasa el envío de sesiones/eventos a Singular hasta que el usuario responde a la solicitud de ATT (App Tracking Transparency) o transcurre el tiempo de espera. Más información sobre la compatibilidad con ATT.
- oaidCollection (Predeterminado: false, sólo Android): Establézcalo como true para recopilar el OAID (Open Anonymous Device Identifier) del dispositivo en dispositivos Android.
- enableLogging (Por defecto: false): Habilitar el registro de depuración SDK para la solución de problemas. Debe desactivarse en las versiones de producción.
- logLevel (Predeterminado: 0): Establece el nivel de detalle del registro (0-5). Los valores más altos producen registros más detallados.
- clipboardAttribution (Predeterminado: false, sólo iOS): activa la lectura del portapapeles para la atribución de enlaces universales.
- facebookAppId (por defecto: vacío): Establezca su ID de aplicación de Facebook para la integración de atribución de Facebook.
- customSdid (Predeterminado: vacío): Establezca un ID de dispositivo singular personalizado en lugar de utilizar el identificador generado automáticamente.