Flutter SDK - 구성 방법 레퍼런스
이 문서는 Flutter 애플리케이션용 Singular SDK에서 사용할 수 있는 모든 구성 옵션에 대한 포괄적인 참조를 제공합니다. SingularConfig 객체를 사용하면 추적 설정, 어트리뷰션 옵션, 개인정보 보호 제어 등을 포함하여 SDK의 동작을 사용자 정의할 수 있습니다. 각 구성 방법은 설명, 서명 및 실제 사용 예제와 함께 제공됩니다.
클립보드 어트리뷰션
SingularConfig.clipboardAttribution 속성
SDK에 클립보드 어트리뷰션을 활성화합니다. 활성화하면 SDK가 초기화 중에 디바이스 클립보드에서 어트리뷰션 링크를 확인합니다.
서명
bool clipboardAttribution = false;
사용 예시
// Enable clipboard attribution
config.clipboardAttribution = true;
collectOAID
SingularConfig.collectOAID 속성
지원되는 안드로이드 기기에서 OAID(익명 디바이스 식별자)를 수집할 수 있도록 설정합니다. 이는 일부 지역, 특히 중국에서 사용되는 대체 식별자입니다.
서명
bool collectOAID = false;
사용 예
// Enable OAID collection
config.collectOAID = true;
전환값업데이트콜백
Singular 컨피규어 전환값 업데이트 콜백 속성
SKAdNetwork 전환 값이 업데이트될 때 호출할 콜백 함수를 설정합니다. 이는 iOS에만 적용되며 전환 값 변경에 대응할 수 있습니다.
서명
ConversionValueUpdatedCallback? conversionValueUpdatedCallback;
사용 예시
// Set conversion value updated callback
config.conversionValueUpdatedCallback = (int conversionValue) {
print("Conversion value updated to: $conversionValue");
// Update UI or take other actions based on the new conversion value
};
conversionValuesUpdatedCallback
Singular 컨피그.conversionValuesUpdatedCallback 속성
SKAdNetwork 4.0 전환 값이 업데이트될 때 호출할 콜백 함수를 설정합니다. 이는 iOS 16.1 이상에만 해당되며 미세, 거친, 잠금 값의 변경에 반응할 수 있습니다.
서명
ConversionValuesUpdatedCallback? conversionValuesUpdatedCallback;
사용 예시
// Set conversion values updated callback for SKAdNetwork 4.0
config.conversionValuesUpdatedCallback = (int conversionValue, int coarse, bool lock) {
print("Conversion values updated - Fine: $conversionValue, Coarse: $coarse, Lock: $lock");
// Update UI or take other actions based on the new conversion values
};
customSdid
SingularConfig.customSdid 속성
엔터프라이즈 기능: 사용자 지정 SDID(Singular 디바이스 ID)를 설정합니다. 이를 통해 Singular에서 생성된 장치 식별자를 사용하는 대신 고유한 장치 식별자를 제공할 수 있습니다.
서명
String? customSdid;
사용 예
// Set custom SDID
config.customSdid = "custom-device-id-12345";
customUserId
SingularConfig.customUserId 속성
SDK 초기화 중에 사용자 지정 사용자 ID를 설정합니다. 이를 통해 Singular 데이터를 처음부터 자체 사용자 식별 시스템과 연결할 수 있습니다.
서명
String? customUserId;
사용 예시
// Set custom user ID
config.customUserId = "user_123456";
deviceAttributionCallback
Singular 컨피규어 디바이스 어트리뷰션 콜백 속성
베타 기능: 디바이스 어트리뷰션 데이터를 사용할 수 있을 때 호출할 콜백 함수를 설정합니다. 이를 통해 어트리뷰션 데이터를 사용할 수 있게 되는 즉시 데이터에 액세스할 수 있습니다.
서명
DeviceAttributionCallback? deviceAttributionCallback;
사용 예시
// Set device attribution callback
config.deviceAttributionCallback = (Map attributionData) {
print("Attribution data received: $attributionData");
// Access specific attribution parameters
final campaign = attributionData["campaign"];
final source = attributionData["source"];
final adSet = attributionData["adSet"];
// Update UI or take actions based on attribution data
if (campaign != null) {
showCampaignSpecificContent(campaign);
}
};
didSetSdidCallback
SingularConfig.didSetSdidCallback 속성
엔터프라이즈 기능: SDID(Singular 장치 ID)가 설정될 때 호출할 콜백 함수를 설정합니다. 이를 통해 사용자 지정 SDID가 성공적으로 설정되면 알림을 받을 수 있습니다.
서명
SdidAccessorCallback? didSetSdidCallback;
사용 예
// Set custom SDID
config.customSdid = "custom-device-id-12345";
// Set callback for when SDID is set
config.didSetSdidCallback = (String sdid) {
print("SDID was set: $sdid");
// Perform any actions needed after SDID is set
};
enableLogging
SingularConfig.enableLogging 속성
SDK에 대한 상세 로깅을 활성화합니다. 활성화하면 SDK는 디버깅에 도움이 될 수 있는 상세 로그를 출력합니다.
서명
bool enableLogging = false;
사용 예시
// Enable logging for debugging
config.enableLogging = true;
espDomains
SingularConfig.espDomains 속성
이메일 어트리뷰션에 사용할 ESP(이메일 서비스 제공업체) 도메인을 설정합니다. 이를 통해 어트리뷰션에 고려할 이메일 도메인을 지정할 수 있습니다.
서명
List espDomains = [];
사용 예시
// Set ESP domains for email attribution
config.espDomains = [
"mailchimp.com",
"sendgrid.net",
"campaign-monitor.com"
];
facebookAppId
SingularConfig.facebookAppId 속성
페이스북 어트리뷰션에 대한 페이스북 앱 ID를 설정합니다. 이를 통해 SDK는 페이스북 캠페인의 인스톨과 이벤트를 어트리뷰션할 수 있습니다.
서명
String? facebookAppId;
사용 예시
// Set Facebook App ID for attribution
config.facebookAppId = "123456789012345";
imei
SingularConfig.imei 속성
디바이스의 IMEI(국제 모바일 장비 식별자)를 설정합니다. 이는 일반적으로 IMEI가 어트리뷰션의 공통 식별자인 시장에서 사용됩니다.
서명
String? imei;
사용 예시
// Set IMEI (only if you have proper permission to access it)
config.imei = "123456789012345";
limitDataSharing
SingularConfig.limitDataSharing 속성
SDK 초기화 중 데이터 공유 제한 상태를 설정합니다. 이 속성을 사용하여 사용자 동의 또는 개인정보 보호 요구 사항에 따라 데이터 공유를 제한할 수 있습니다.
서명
bool? limitDataSharing;
사용 예
// Get user consent status
bool hasUserConsent = getUserConsentStatus();
// Set data sharing limitation based on consent
config.limitDataSharing = !hasUserConsent;
제한된 식별자 사용
SingularConfig.limitedIdentifiersEnabled 속성
제한된 식별자 사용을 활성화 또는 비활성화합니다. 이 옵션은 SDK가 추적 및 어트리뷰션을 위해 디바이스 식별자를 수집하고 사용하는 방식에 영향을 줍니다.
서명
bool limitedIdentifiersEnabled = false;
사용 예
// Enable limited identifiers mode
config.limitedIdentifiersEnabled = true;
로그 레벨
SingularConfig.logLevel 속성
SDK의 로그 수준을 설정합니다. SDK에서 생성되는 로그의 상세도를 제어합니다. 기본값은 -1(로깅 없음)입니다. 일반적인 값은 다음과 같습니다: 0(오류), 1(중요), 2(정보), 3(디버그), 4(상세).
서명
int logLevel = -1;
사용 예시
// Set log level to debug
config.logLevel = 3;
manualSkanConversionManagement
SingularConfig.manualSkanConversionManagement 속성
SKAdNetwork 전환 값의 수동 관리를 활성화합니다. 활성화하면 SDK가 전환 값을 자동으로 업데이트하지 않으므로 수동으로 제어할 수 있습니다.
서명
bool manualSkanConversionManagement = false;
사용 예시
// Enable manual SKAdNetwork conversion management
config.manualSkanConversionManagement = true;
푸시 알림 링크 경로
SingularConfig.pushNotificationsLinkPaths 속성
푸시 알림 페이로드에서 딥링크를 찾을 경로를 설정합니다. 이를 통해 SDK가 푸시 알림에서 어트리뷰션 링크를 찾아 처리하는 데 도움이 됩니다.
서명
List<List<String>> pushNotificationsLinkPaths = [[]];
사용 예시
// Set push notification link paths
config.pushNotificationsLinkPaths = [
["data", "deeplink"],
["notification", "data", "url"],
["custom", "link"]
];
sdidReceivedCallback
SingularConfig.sdidReceivedCallback 속성
엔터프라이즈 기능: SDID(Singular 장치 ID)를 수신할 때 호출할 콜백 함수를 설정합니다. 이를 통해 SDID를 사용할 수 있게 되는 즉시 액세스할 수 있습니다.
서명
SdidAccessorCallback? sdidReceivedCallback;
사용 예
// Set callback for when SDID is received
config.sdidReceivedCallback = (String sdid) {
print("SDID received: $sdid");
// Store or use the SDID as needed
storeDeviceIdentifier(sdid);
};
세션타임아웃
SingularConfig.sessionTimeout 속성
세션 타임아웃을 초 단위로 설정합니다. 앱이 백그라운드로 전환된 후 사용자 세션이 지속되는 시간을 결정합니다. 기본값은 -1로, SDK의 기본 시간 제한(60초)을 사용합니다.
서명
double sessionTimeout = -1;
사용 예시
// Set session timeout to 2 minutes
config.sessionTimeout = 120;
짧은 링크 해결 시간 제한
Singular 컨피규어 단축 링크 해결 시간 제한 속성
짧은 링크를 확인하는 데 걸리는 시간 제한을 초 단위로 설정합니다. 이 값은 SDK가 초기화를 계속하기 전에 짧은 링크가 해결될 때까지 기다리는 시간을 결정합니다. 기본값은 10초입니다.
서명
double shortLinkResolveTimeOut = 10.0;
사용 예시
// Set short link resolve timeout to 15 seconds
config.shortLinkResolveTimeOut = 15.0;
singularLinksHandler
Singular 컨피규어 Singular링크 핸들러 속성
Singular가 처리하는 딥링크를 처리할 콜백 함수를 설정합니다. 이를 통해 앱이 어트리뷰션에 사용된 딥링크에 응답할 수 있습니다.
시그니처
SingularLinksHandler? singularLinksHandler;
사용 예시
// Set singular links handler
config.singularLinksHandler = (SingularLinkParams params) {
// Check if we have a deep link
if (params.deeplink != null) {
print("Deep link received: ${params.deeplink}");
// Navigate based on the deep link
navigateToScreen(params.deeplink!);
}
// Check if this is a deferred deep link
if (params.isDeferred == true) {
print("This is a deferred deep link");
}
// Access passthrough parameters
if (params.passthrough != null) {
print("Passthrough data: ${params.passthrough}");
}
// Access all URL parameters from the OpenURL/Deeplink. Does not work with Deferred Deep Links.
if (params.urlParameters != null) {
print("URL parameters: ${params.urlParameters}");
}
};
skAdNetworkEnabled
Singular컨피그.skAdNetworkEnabled 속성
SKAdNetwork 지원을 활성화 또는 비활성화합니다. 이 프로퍼티는 iOS에만 해당되며, SDK가 어트리뷰션에 Apple의 SKAdNetwork를 사용할지 여부를 제어합니다. 기본값은 true입니다.
서명
bool skAdNetworkEnabled = true;
사용 예시
// Disable SKAdNetwork support if needed
config.skAdNetworkEnabled = false;
waitForTrackingAuthorizationWithTimeoutInterval
SingularConfig.waitForTrackingAuthorizationWithTimeoutInterval 속성
iOS 14+에서 사용자의 추적 권한 부여 응답을 기다리는 시간 초과 간격을 초 단위로 설정합니다. 이 프로퍼티는 초기화를 계속하기 전에 SDK가 ATT 프롬프트 응답을 기다리는 시간을 결정합니다. 기본값은 0이며, 이는 SDK가 ATT 프롬프트 응답을 기다리지 않음을 의미합니다.
서명
int waitForTrackingAuthorizationWithTimeoutInterval = 0;
사용 예
// Wait up to 5 seconds for ATT prompt response
config.waitForTrackingAuthorizationWithTimeoutInterval = 5;
withGlobalProperty
SingularConfig.withGlobalProperty 메서드
SDK 초기화 중에 전역 프로퍼티를 설정합니다. 이 프로퍼티는 SDK에서 추적하는 모든 이벤트와 함께 전송됩니다. 프로퍼티가 아닌 메서드이므로 연쇄 구성이 가능합니다.
서명
void withGlobalProperty(String key, String value, bool overrideExisting)
사용 예시
// Add global properties
config.withGlobalProperty("app_version", "1.2.3", true);
config.withGlobalProperty("user_type", "free", true);
전체 구성 예시
포괄적인 SDK 구성
다음 예시는 여러 구성 프로퍼티와 메서드를 함께 설정하여 포괄적인 구성을 만드는 방법을 보여줍니다.
전체 예제
SingularConfig config = new SingularConfig('SDK KEY', 'SDK SECRET');
config.waitForTrackingAuthorizationWithTimeoutInterval = 60;
config.customUserId = "user_123456"; // Set a custom user ID for tracking
config.withGlobalProperty("key1", "value1", true);
config.limitDataSharing = false; // Allow data sharing (set to true for compliance if needed)
config.facebookAppId = "123456789012345"; // Optional: For Facebook integration
config.singularLinksHandler = (SingularLinkParams params) {
print('Received deferred deeplink: ');
deeplinkParams['deeplink'] = params.deeplink;
deeplinkParams['passthrough'] = params.passthrough;
deeplinkParams['isDeferred'] = params.isDeferred;
};
Singular.start(config);