Flutter SDK - 구성 방법 참조

문서

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);