Instalação
Instale o Singular SDK do Unreal Engine adicionando o plug-in SDK à pasta Plugins do seu projeto e habilitando-o no seu projeto do Unreal Engine.
Instalar o SDK
Siga estas etapas para integrar o SDK do Singular ao seu projeto do Unreal Engine.
- Baixe e extraia o arquivo SDK do link fornecido acima.
- Na pasta raiz Project, crie uma pasta Plugins se ela não existir.
- Crie uma pasta "SingularSDK" na pasta "Plugins" do seu aplicativo.
-
Copie os ficheiros de arquivo extraídos para a pasta "SingularSDK"" na pasta " Plugins" da sua aplicação.
- Feche seu projeto Unreal se ele estiver aberto no momento.
-
Reabra seu projeto. Se for solicitado um prompt de Módulos ausentes, escolha Sim para continuar.
-
Habilite o SingularSDK Plugin no menu: "Edit>Plugins". Procure por Singular.
-
Adicione SingularSDK como uma dependência à matriz PublicDependencyModuleNamesno ficheiro Build.cs da sua aplicação (Source/ProjectName/<YOUR_APP>.Build.cs).
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "SingularSDK" });
Problema de instalação conhecido
Durante a primeira compilação, você pode encontrar um erro fatal em relação ao arquivo de cabeçalho do framework Singular.
PROBLEMA CONHECIDO: Durante a primeira compilação, pode ocorrer o seguinte erro fatal:
Plugins/SingularSDK/Source/SingularSDK/Private/SingularSDKBPLibrary.cpp:14:9: fatal error: 'Singular/Singular.h' file not found
Para contornar esse problema, siga estas etapas:
- Extraia o ficheiro Singular.framework.zipde "Plugins/SingularSDK/Source/ThirdParty/iOS"
- Mova a pasta Singular.frameworkpara "/Users/Shared/Epic Games/UE_5.5/Engine/Intermediate/UnzippedFrameworks/Singular"
Inicialização do SDK
Inicialize o SDK Singular sempre que seu aplicativo for iniciado para permitir o rastreamento de atribuição, o gerenciamento de sessão e o relatório de eventos.
Conformidade com a privacidade: Lembre-se de cumprir as leis de privacidade promulgadas nas regiões onde você faz negócios, incluindo GDPR, CCPA e COPPA ao implementar o SDK Singular. Para obter mais informações, consulte Práticas de aceitação e exclusão do SDK.
Por que inicializar o SDK
A inicialização do SDK é um pré-requisito para todas as funcionalidades de atribuição do Singular. Ela cria uma nova sessãoenviada ao Singular para calcular as métricas de retenção de usuários.
Melhores práticas: Inicialize o SDK o mais cedo possível no ciclo de vida do seu aplicativo, como no construtor do seu modo de jogo.
Método Inicializar
USingularSDKBPLibrary::Initialize
Chame o método Initialize para iniciar o SDK Singular e enviar uma sessão de usuário para os servidores Singular.
Assinatura do 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("")
);
Exemplo de implementação
Inicialize o SDK em seu construtor de modo de jogo com credenciais de API e opções de configuração.
// 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 configuração
Parâmetros necessários
Esses parâmetros são necessários para a inicialização do SDK. Obtenha suas credenciais no painel de controle do Singular.
- sdkKey: Sua chave do SDK do Singular em"Ferramentas do desenvolvedor > Integração do SDK > Chaves do SDK" na sua conta do Singular
- sdkSecret: Seu segredo do SDK do Singular a partir do mesmo local na sua conta do Singular
Importante: Mantenha as suas credenciais SDK seguras e não as submeta a repositórios públicos de controlo de versões.
Parâmetros opcionais
Personalize o comportamento do SDK com esses parâmetros de configuração opcionais.
- sessionTimeout (Padrão: 60): Define um tempo limite de sessão personalizado em segundos. Após este período de inatividade, é criada uma nova sessão quando o utilizador regressa à aplicação.
- customUserId (Predefinição: vazio): Definir um identificador de utilizador personalizado na inicialização. Saiba mais sobre IDs de utilizador personalizados.
- skAdNetworkEnabled (Padrão: true, somente iOS): Habilita o suporte de SKAdNetwork para atribuição de iOS. Consulte Introdução à solução SKAdNetwork da Singular.
- manualSkanConversionManagement (Padrão: false, somente iOS): Defina como true para gerenciar manualmente os valores de conversão da SKAdNetwork em vez de deixar que a Singular os manipule automaticamente.
- waitForTrackingAuthorizationWithTimeoutInterval(Padrão: 0, somente iOS): Atrasa o envio de sessões/eventos para a Singular até que o usuário responda ao prompt ATT (App Tracking Transparency) ou até que o tempo limite termine. Saiba mais sobre o suporte a ATT.
- oaidCollection (Padrão: false, somente Android): Defina como true para recolher o OAID (Open Anonymous Device Identifier) do dispositivo em dispositivos Android.
- enableLogging (Padrão: false): Habilita o registro de depuração do SDK para solução de problemas. Deve ser desativado em compilações de produção.
- logLevel (Padrão: 0): Define o nível de verbosidade do registro (0-5). Valores mais altos produzem logs mais detalhados.
- clipboardAttribution (Predefinição: false, apenas iOS): Ativar a leitura da área de transferência para atribuição de ligações universais.
- facebookAppId (Padrão: vazio): Defina seu ID do aplicativo do Facebook para integração de atribuição do Facebook.
- customSdid (Padrão: vazio): Definir um ID de dispositivo único personalizado em vez de usar o identificador gerado automaticamente.