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 속성
안드로이드 기기에서 OAID(익명 디바이스 식별자)를 수집할 수 있도록 설정합니다. OAID는 주로 중국에서 사용되는 광고 식별자입니다.
서명
bool collectOAID
사용 예시
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.collectOAID = true;
전환값업데이트콜백
Singular 컨피규어 전환값 업데이트 콜백 속성
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');
};
전환값업데이트콜백
Singular컨피그.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';
customUserId
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
Singular 컨피규어 장치 어트리뷰션 콜백 속성
디바이스 어트리뷰션 데이터를 수신하는 콜백 함수를 설정합니다. 이 콜백은 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');
};
enableLogging
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 속성
페이스북 어트리뷰션 연동을 위한 페이스북 앱 ID를 설정합니다. 이를 통해 페이스북 광고 캠페인에 대한 적절한 어트리뷰션 추적이 가능합니다.
서명
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';
limitAdvertisingIdentifiers
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;
limitDataSharing
SingularConfig.limitDataSharing 속성
SDK 초기화 중 타사와의 데이터 공유를 제한합니다. 활성화하면 SDK가 애드 네트워크 및 기타 파트너와의 어트리뷰션 데이터 공유를 제한합니다.
서명
bool? limitDataSharing
사용 예시
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.limitDataSharing = true;
logLevel
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
manualSkanConversionManagement
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 속성
서버에서 SDID(Singular Device ID)를 수신하거나 로컬 스토리지에서 검색할 때 트리거되는 콜백 함수를 설정합니다.
서명
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
짧은 링크 해결 시간 초과
Singular 컨피규어 단축 링크 해결 시간 제한 속성
짧은 링크를 확인하기 위한 시간 초과 기간을 초 단위로 설정합니다. 이 값은 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
Singular 컨피규어 Singular링크 핸들러 속성
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
Singular컨피그.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에서 앱 추적 투명성(ATT) 승인을 기다리는 시간 제한 간격을 초 단위로 설정합니다. 사용자가 ATT 프롬프트에 응답하거나 타임아웃에 도달할 때까지 SDK는 초기화를 지연합니다.
서명
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'),
),
),
);
}
}