Flutter SDK - 設定リファレンス
このドキュメントはFlutterアプリケーション用のSingular SDKで利用可能なすべての設定オプションに関する包括的なリファレンスを提供します。SingularConfigオブジェクトによって、トラッキング設定、アトリビューションオプション、プライバシーコントロールなどを含むSDKの動作をカスタマイズすることができます。各設定プロパティは説明、署名、実際の使用例とともに紹介されています。
クリップボード属性
SingularConfig.clipboardAttribution プロパティ
デバイスのクリップボードにコピーされたディープリンクをトラッキングするために、クリップボード帰属を有効にします。有効にすると、SDKはアプリ起動時にSingularリンクのクリップボードをチェックします。
シグネチャ
bool clipboardAttribution
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.clipboardAttribution = true;
collectOAID
SingularConfig.collectOAIDプロパティ
AndroidデバイスのOpen Anonymous Device Identifier(OAID)の収集を有効にします。OAIDは、主に中国で使用されている広告識別子です。
シグネチャ
bool collectOAID
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.collectOAID = true;
コンバージョン値更新コールバック
SingularConfig.conversionValueUpdatedCallbackプロパティ
SKAdNetworkのコンバージョン値が更新されたときにトリガーされるコールバック関数を設定します(iOSのみ)。このコールバックは新しいコンバージョン値をパラメータとして受け取ります。
シグネチャ
ConversionValueUpdatedCallback? conversionValueUpdatedCallback
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.conversionValueUpdatedCallback = (int conversionValue) {
print('SKAdNetwork conversion value updated: $conversionValue');
};
conversionValuesUpdatedCallback
SingularConfig.conversionValuesUpdatedCallbackプロパティ
SKAdNetwork 4.0+のコンバージョン値のコールバック関数を設定します(iOS 16.1+のみ)。このコールバックは、細かい変換値、粗い変換値、ロックステータスを受け取ります。
シグネチャ
ConversionValuesUpdatedCallback? conversionValuesUpdatedCallback
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.conversionValuesUpdatedCallback = (int conversionValue, int coarse, bool lock) {
print('Fine: $conversionValue, Coarse: $coarse, Locked: $lock');
};
customSdid
SingularConfig.customSdidプロパティ
カスタムSingularデバイスID(SDID)を設定します。これにより、SDKが生成したものを使用する代わりに、独自のデバイス識別子を提供することができます。
署名
String? customSdid
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.customSdid = 'my_custom_device_id_123';
カスタムユーザーID
SingularConfig.customUserIdプロパティ
SDK初期化時にカスタムユーザー識別子を設定します。これにより、すべてのイベントは最初からアプリケーションのユーザーIDに関連付けられます。
シグネチャ
String? customUserId
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.customUserId = 'user_12345';
deviceAttributionCallback
SingularConfig.deviceAttributionCallbackプロパティ
デバイス属性データを受け取るコールバック関数を設定します。このコールバックは、属性情報がSingularサーバーから利用可能になったときにトリガーされます。
シグネチャ
DeviceAttributionCallback? deviceAttributionCallback
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.deviceAttributionCallback = (Map<String, dynamic> attributes) {
print('Attribution data received:');
attributes.forEach((key, value) {
print(' $key: $value');
});
};
didSetSdidCallback
SingularConfig.didSetSdidCallbackプロパティ
SDKによってSingularデバイスID(SDID)が設定された後にトリガーされるコールバック関数を設定します。
シグネチャ
SdidAccessorCallback? didSetSdidCallback
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.didSetSdidCallback = (String sdid) {
print('SDID has been set: $sdid');
};
イネーブルロギング
SingularConfig.enableLoggingプロパティ
Singular SDKのデバッグロギングを有効にします。有効にすると、SDKはデバッグやトラブルシューティングに役立つ詳細なログを出力します。
シグネチャ
bool enableLogging
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.enableLogging = true;
enableOdmWithTimeoutInterval
SingularConfig.enableOdmWithTimeoutIntervalプロパティ
指定したタイムアウト間隔(秒)でオンデバイスマッチング(ODM)を有効にします。ODMは、データをSingularサーバーに送信する前に、デバイス識別子をローカルでマッチングすることにより、帰属の精度を向上させます。
シグネチャ
int enableOdmWithTimeoutInterval
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.enableOdmWithTimeoutInterval = 5; // 5 seconds timeout
facebookAppId
SingularConfig.facebookAppId プロパティ
Facebookアトリビューション統合用のFacebookアプリIDを設定します。これにより、Facebook広告キャンペーンの適切なアトリビューション追跡が可能になります。
署名
String? facebookAppId
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.facebookAppId = '1234567890123456';
グローバルプロパティ
SingularConfig.globalProperties プロパティ
SDK初期化時にグローバルプロパティのリストを設定します。これらのプロパティは、SDKによって追跡されるすべてのイベントに自動的に含まれます。
シグネチャー
List<SingularGlobalProperty> globalProperties
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
import 'package:singular_flutter_sdk/singular_global_property.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.globalProperties = [
SingularGlobalProperty('app_version', '2.5.0', true),
SingularGlobalProperty('user_tier', 'premium', false)
];
imei
SingularConfig.imeiプロパティ
トラッキング用のデバイスIMEI(国際移動体識別番号)を設定します。 これは主に、IMEIが一般的なデバイス識別子である特定のアジア市場で使用されます。
署名
String? imei
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.imei = '123456789012345';
リミット広告識別子
SingularConfig.limitAdvertisingIdentifiersプロパティ
SDKの初期化中に広告識別子(iOSではIDFA、AndroidではGAID)の収集を制限します。有効にすると、SDKは広告IDを収集または送信しません。
署名
bool limitAdvertisingIdentifiers
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.limitAdvertisingIdentifiers = true;
リミットデータ共有
SingularConfig.limitDataSharingプロパティ
SDK初期化時に第三者とのデータ共有を制限します。有効にすると、SDKは広告ネットワークやその他のパートナーとのアトリビューションデータの共有を制限します。
シグネチャ
bool? limitDataSharing
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.limitDataSharing = true;
ログレベル
SingularConfig.logLevelプロパティ
SDKのロギングレベルを設定します。より高い値は、デバッグ目的のためのより詳細なロギング出力を提供します。
利用可能なレベルは以下のとおりです:
-
NONE = -1
-
VERBOSE = Log.VERBOSE(Android定数、数値2)
-
DEBUG = Log.DEBUG (3)
-
INFO = Log.INFO (4)
-
WARNING = Log.WARN (5)
-
ERROR = Log.ERROR (6)
署名
int logLevel
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.logLevel = 5; // Maximum logging detail
マニュアルスキャンコンバージョン管理
SingularConfig.manualSkanConversionManagementプロパティ
手動でのSKAdNetworkコンバージョン値管理を有効にします(iOSのみ)。有効にすると、SDKは自動的にコンバージョン値を更新しないので、コンバージョン値がいつ、どのように設定されるかを完全にコントロールできるようになります。
シグネチャ
bool manualSkanConversionManagement
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.manualSkanConversionManagement = true;
sdidReceivedCallback
SingularConfig.sdidReceivedCallbackプロパティ
Singular Device ID (SDID)がサーバーから受信されたとき、またはローカルストレージから取得されたときにトリガーされるコールバック関数を設定します。
シグネチャ
SdidAccessorCallback? sdidReceivedCallback
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.sdidReceivedCallback = (String sdid) {
print('SDID received: $sdid');
};
セッションタイムアウト
SingularConfig.sessionTimeout プロパティ
セッションタイムアウト時間を秒単位で設定します。この非アクティブ期間が経過すると、SDKはアプリが再び開かれたときに新しいセッションとみなします。
シグネチャ
double sessionTimeout
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.sessionTimeout = 60.0; // 60 seconds
shortLinkResolveTimeOut
SingularConfig.shortLinkResolveTimeOutプロパティ
ショートリンクを解決するタイムアウト時間を秒単位で設定します。これは、SDKがタイムアウトする前にショートリンクが解決するのを待つ時間を決定します。
シグネチャ
double shortLinkResolveTimeOut
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.shortLinkResolveTimeOut = 10.0; // 10 seconds
singularLinksHandler
SingularConfig.singularLinksHandler プロパティ
Singularリンク(ディープリンク)のコールバックハンドラーを設定します。このコールバックは、ユーザーがSingularショートリンクまたはディファードディープリンク経由でアプリを開いたときにトリガーされます。
シグネチャ
SingularLinksHandler? singularLinksHandler
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
import 'package:singular_flutter_sdk/singular_link_params.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.singularLinksHandler = (SingularLinkParams params) {
print('Deep link received:');
print(' Deep link: ${params.deeplink}');
print(' Passthrough: ${params.passthrough}');
print(' Is deferred: ${params.isDeferred}');
};
skAdNetworkEnabled
SingularConfig.skAdNetworkEnabled プロパティ
SKAdNetworkの統合を有効または無効にします(iOSのみ)。有効な場合、SDKは自動的にSKAdNetworkのアトリビューションとコンバージョン値の更新を処理します。
シグネチャ
bool skAdNetworkEnabled
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.skAdNetworkEnabled = true;
waitForTrackingAuthorizationWithTimeoutInterval
SingularConfig.waitForTrackingAuthorizationWithTimeoutIntervalプロパティ
iOSのApp Tracking Transparency(ATT)認可を待機するタイムアウト間隔を秒単位で設定します。SDKは、ユーザーがATTプロンプトに応答するか、タイムアウトに達するまで初期化を遅らせます。
シグネチャ
int waitForTrackingAuthorizationWithTimeoutInterval
使用例
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.waitForTrackingAuthorizationWithTimeoutInterval = 30; // 30 seconds
完全な構成例
以下は、Flutterアプリケーション用に複数のオプションを使用してSingular SDKを設定する方法を示す包括的な例です。
import 'package:flutter/material.dart';
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_config.dart';
import 'package:singular_flutter_sdk/singular_link_params.dart';
import 'package:singular_flutter_sdk/singular_global_property.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
initSingularSDK();
}
void initSingularSDK() {
// Create configuration object
SingularConfig config = SingularConfig(
'YOUR_API_KEY',
'YOUR_SECRET_KEY'
);
// Enable logging for debugging
config.enableLogging = true;
config.logLevel = 4;
// Set custom user ID if available
config.customUserId = 'user_12345';
// Configure session timeout
config.sessionTimeout = 60.0;
// Enable clipboard attribution
config.clipboardAttribution = true;
// Configure SKAdNetwork (iOS)
config.skAdNetworkEnabled = true;
config.manualSkanConversionManagement = false;
config.waitForTrackingAuthorizationWithTimeoutInterval = 30;
// Set conversion value callbacks (iOS)
config.conversionValueUpdatedCallback = (int conversionValue) {
print('SKAdNetwork conversion value updated: $conversionValue');
};
config.conversionValuesUpdatedCallback = (int cv, int coarse, bool lock) {
print('SKAdNetwork values - Fine: $cv, Coarse: $coarse, Lock: $lock');
};
// Configure deep link handling
config.singularLinksHandler = (SingularLinkParams params) {
print('Singular Link detected');
print('Deep link: ${params.deeplink}');
print('Passthrough params: ${params.passthrough}');
print('Is deferred: ${params.isDeferred}');
// Handle deep link navigation
if (params.deeplink != null) {
// Navigate to appropriate screen based on deep link
}
};
// Set short link timeout
config.shortLinkResolveTimeOut = 10.0;
// Configure attribution callback
config.deviceAttributionCallback = (Map<String, dynamic> attributes) {
print('Attribution data received:');
attributes.forEach((key, value) {
print(' $key: $value');
});
};
// Configure SDID callbacks
config.sdidReceivedCallback = (String sdid) {
print('SDID received: $sdid');
};
config.didSetSdidCallback = (String sdid) {
print('SDID has been set: $sdid');
};
// Set global properties
config.globalProperties = [
SingularGlobalProperty('app_version', '2.5.0', true),
SingularGlobalProperty('user_tier', 'premium', false),
SingularGlobalProperty('environment', 'production', true)
];
// Configure Facebook integration
config.facebookAppId = '1234567890123456';
// Privacy settings
config.limitDataSharing = false;
config.limitAdvertisingIdentifiers = false;
// Android-specific settings
config.collectOAID = true;
// Enable On-Device Matching
config.enableOdmWithTimeoutInterval = 5;
// Start the SDK
Singular.start(config);
print('Singular SDK initialized successfully');
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Singular Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Singular SDK Demo'),
),
body: Center(
child: Text('Singular SDK Initialized'),
),
),
);
}
}