インストール
プロジェクトの Plugins フォルダに SDK プラグインを追加し、Unreal Engine プロジェクトで有効にすることで、Singular Unreal Engine SDK をインストールします。
SDK のインストール
以下の手順に従って、Singular SDK を Unreal Engine プロジェクトに統合してください。
- 上記のリンクから SDK アーカイブをダウンロードして解凍します。
- Project ルート フォルダに、Plugins フォルダが存在しない場合は作成します。
- アプリの「Plugins 」フォルダ内に「SingularSDK 」フォルダを作成します。
-
解凍したアーカイブ ファイルを、アプリのPluginsフォルダ内の "SingularSDK"フォルダにコピーします。
- アンリアル プロジェクトを開いている場合は閉じます。
-
プロジェクトを再度開きます。Missing Modules のプロンプトが表示されたら、Yes を選択して続行します。
-
メニューからSingularSDK Plugin を有効にします:"Edit>Plugins" を選択します。Singularを検索する。
-
アプリのBuild.cs ファイル (Source/ProjectName/<YOUR_APP>.Build.cs) のPublicDependencyModuleNames配列に、依存関係としてSingularSDK を追加します。
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "SingularSDK" });
インストールに関する既知の問題
最初のビルドで、Singularフレームワークのヘッダーファイルに関する致命的なエラーが発生することがあります。
既知の問題:最初のビルドで、以下の致命的なエラーが発生することがあります:
Plugins/SingularSDK/Source/SingularSDK/Private/SingularSDKBPLibrary.cpp:14:9: fatal error: 'Singular/Singular.h' file not found
この問題を回避するには、以下の手順に従ってください:
- Plugins/SingularSDK/Source/ThirdParty/iOS " からSingular.framework.zipファイルを展開してください。
- Singular.framework フォルダーを "/Users/Shared/Epic Games/UE_5.5/Engine/Intermediate/UnzippedFrameworks/Singular" に移動する。
SDKの初期化
アプリを起動するたびにSingular SDKを初期化し、アトリビューショントラッキング、セッション管理、イベントレポートを有効にします。
プライバシーの遵守Singular SDKを実装する際は、GDPR、CCPA、COPPAなど、お客様がビジネスを行う地域で制定されているプライバシーに関する法律を遵守することを忘れないでください。詳しくはSDKのオプトインとオプトアウトをご覧ください。
SDKを初期化する理由
SDKの初期化は、Singularのすべてのアトリビューション機能の前提条件です。 ユーザーのリテンションメトリックスを計算するために、Singularに送信される新しいセッションを作成します。
ベストプラクティスです:ゲームモードのコンストラクタなど、アプリのライフサイクルのできるだけ早い段階でSDKを初期化します。
初期化メソッド
USingularSDKBPLibrary::Initialize
Initialize メソッドをコールしてSingular SDKを起動し、ユーザーセッションをSingularサーバーに送信します。
メソッドのシグネチャ
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("")
);
実装例
ゲームモードのコンストラクタで、API認証情報と設定オプションを使用してSDKを初期化します。
// 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;
}
設定パラメータ
必須パラメータ
これらのパラメータはSDKの初期化に必要です。Singularダッシュボードから認証情報を取得してください。
- sdkKey:Singularアカウントの"Developer Tools > SDK Integration > SDK Keys"からSingular SDK Keyを取得します。
- sdkSecret:Singularアカウントの同じ場所からお客様のSingular SDK Secretを取得します。
重要:SDK認証情報は安全に保管し、公開バージョン管理リポジトリにコミットしないでください。
オプションのパラメータ
オプションの設定パラメータでSDKの動作をカスタマイズします。
- sessionTimeout(デフォルト: 60):カスタムセッションタイムアウトを秒単位で設定します。この非アクティブ時間が経過すると、ユーザーがアプリに戻ったときに新しいセッションが作成されます。
- customUserId(デフォルト:空):初期化時にカスタムユーザーIDを設定します。カスタムユーザーIDについてはこちらをご覧ください。
- skAdNetworkEnabled(デフォルト:true、iOSのみ):iOSアトリビューション用のSKAdNetworkサポートを有効にします。SingularのSKAdNetworkソリューションの紹介をご覧ください。
- manualSkanConversionManagement(デフォルト:false、iOSのみ):Singularが自動的にSKAdNetworkの変換値を処理するのではなく、手動で管理する場合はtrueに設定します。
- waitForTrackingAuthorizationWithTimeoutInterval(デフォルト:0、iOSのみ):ユーザーがATT(App Tracking Transparency)のプロンプトに応答するか、タイムアウトが経過するまで、Singularへのセッション/イベントの送信を遅らせます。ATTのサポートについてはこちらをご覧ください。
- oaidCollection(デフォルト:false、Androidのみ):AndroidデバイスでデバイスのOAID(Open Anonymous Device Identifier)を収集するには、trueに設定します。
- enableLogging(デフォルト:false):トラブルシューティングのためにSDKデバッグ・ロギングを有効にします。本番ビルドでは無効にする必要があります。
- logLevel(デフォルト: 0):ロギングの冗長性レベル(0-5)を設定。値を大きくすると、より詳細なログが出力されます。
- clipboardAttribution(Default:false、iOSのみ): ユニバーサルリンクの属性のためにクリップボードからの読み込みを有効にします。
- facebookAppId(デフォルト: 空):Facebookアトリビューション統合のためにFacebookアプリIDを設定します。
- customSdid(デフォルト:空):自動生成された識別子を使用する代わりに、カスタムSingular Device IDを設定します。