SDK do Unreal Engine - Integração básica

Documento

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.

  1. Baixe e extraia o arquivo SDK do link fornecido acima.
  2. Na pasta raiz Project, crie uma pasta Plugins se ela não existir.
  3. Crie uma pasta "SingularSDK" na pasta "Plugins" do seu aplicativo.
  4. Copie os ficheiros de arquivo extraídos para a pasta "SingularSDK"" na pasta " Plugins" da sua aplicação.

    unreal_sdk_install.png

  5. Feche seu projeto Unreal se ele estiver aberto no momento.
  6. Reabra seu projeto. Se for solicitado um prompt de Módulos ausentes, escolha Sim para continuar.
    unrealModules.png
  7. Habilite o SingularSDK Plugin no menu: "Edit>Plugins". Procure por Singular.
    unreal_plugin_enabled.png
  8. Adicione SingularSDK como uma dependência à matriz PublicDependencyModuleNamesno ficheiro Build.cs da sua aplicação (Source/ProjectName/<YOUR_APP>.Build.cs).

    C++
    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"
framework.png

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

C++
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.

C++
// 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.