Flutter용 Singular SDK 연동

 

Singular SDK는 Flutter의 플러그인 형태로 제공됩니다. 아래 지침은 Singular를 Flutter 앱에 연동하는 방법을 보여줍니다.

전제 조건

  • 이 글에서는 정상적으로 작동하는 Flutter 앱이 있다고 가정합니다.
  • SDK를 초기화하려면 Singular SDK 키와 SDK 시크릿이 필요합니다. 싱귤러 플랫폼의 "개발자 도구 > SDK 통합 > SDK 키"에서 얻을 수 있습니다.

New: 비디오 가이드

이 동영상을 통해 연동 과정을 자세히 살펴보세요. 동영상과 아래의 서면 가이드를 모두 사용하는 것이 좋습니다.

Singular 플러그인 통합하기

Flutter 앱에 Singular 플러그인을 추가하려면 pubspec.yaml 파일에 다음 줄을 추가합니다:

dependencies:
  singular_flutter_sdk: ^1.4.0

그런 다음 터미널에서 프로젝트로 이동하여 다음을 실행합니다:

flutter packages get

안드로이드용 추가 단계

종속성 추가

Android 앱의 경우, 다음과 같이 app/build.gradle의 종속성 목록에 Singular 라이브러리를 추가해야 합니다:

dependencies {  
  implementation fileTree(dir: 'libs', include: ['*.jar'])
  implementation 'com.android.support:appcompat-v7:28.0.0'
  //...
}

Singular SDK에는 Google Play 서비스 API 17.0.0+의 일부인 Google 모바일 광고 API가 필요합니다. 이미 구글 플레이 서비스를 앱에 통합했다면 요구 사항이 충족된 것입니다. 아직 통합하지 않은 경우 앱의 build.gradle에 다음 종속성을 포함하여 Google 모바일 광고를 개별적으로 통합할 수 있습니다:

implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'

단수 SDK에 대한 전이 종속성을 비활성화한 경우 앱의 build.gradle에 다음을 추가하세요.

implementation 'com.android.installreferrer:installreferrer:2.2'
implementation 'com.google.android.gms:play-services-appset:16.0.2'

참고: 빌드 시 중복 클래스 오류가 표시되는 경우 이미 구글 플레이 서비스가 있을 수 있으며, 종속성을 주석 처리할 수 있습니다.

권한 추가

AndroidManifest.xml 파일의 <manifest> 태그 아래에 이러한 권한을 추가합니다:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="BIND_GET_INSTALL_REFERRER_SERVICE" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />

앱 빌드가 안드로이드 12/API 레벨 31 이상을 타겟팅하는 경우, 구글 광고 ID에 액세스할 수 있는 권한을 추가합니다:

<uses-permission android:name="com.google.android.gms.permission.AD_ID" />

참고: 키즈 SDK를 통합하는 경우 이 권한을 추가하지 마세요.

주의: 앱에 android.permission.GET_TASKS 권한이 있는 경우, 사용자가 앱을 실제로 열기 전에 앱이 초기화될 수 있습니다. 이로 인해 싱글 SDK가 초기화되어 설치 시간이 불일치할 수 있습니다. 이 문제를 방지하려면 필요하지 않은 경우 권한을 제거하거나 코드의 다른 곳으로 Singular SDK 초기화 호출을 이동하여 사용자가 앱을 처음 연 후에만 호출되도록 하세요.

iOS용 추가 단계

Singular 플러그인을 사용하려면 애드서비스 프레임워크를 추가해야 합니다.

Singular SDK 초기화

앱을 열 때마다 Singular SDK 초기화 코드를 호출해야 합니다. 이는 모든 Singular 어트리뷰션 기능의 전제 조건이며, 새 사용자 세션을 Singular로 전송합니다(세션은 사용자 리텐션을 계산하는 데 사용됨).

초기화 코드는 앱이 열릴 때 가장 먼저 로드되는 메인 앱 위젯(예: main.dart)에 들어갑니다. 이 위젯은 상태 저장 방식이어야 하며, 위젯의 initState() 메서드에 코드를 추가해야 합니다.

  1. 먼저 SingularConfig 객체를 생성해야 합니다. 이 객체에는 Singular SDK 키와 시크릿이 포함되어 있습니다.
  2. 선택적으로 다양한 SDK 기능을 활성화하는 설정을 추가할 수 있습니다. 전체 옵션 목록을 참조하세요.
  3. 메타 인스톨 리퍼러 어트리뷰션 지원

    '메타 인스톨 리퍼러' 어트리뷰션을 활성화하는 데 필요한 SDK 구성입니다:

    1. 싱귤러 구성 개체에서 페이스북 앱 ID를 입력합니다.
      // META 설치 리퍼러를 활성화하려면
        config.facebookAppId = "여기에 Facebook 앱 ID를 입력하세요.";
    앱의 Facebook 앱 ID는 어디에서 찾을 수있나요?

예시:

import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_config.dart';
//...
class MyHomePage extends StatefulWidget { 
//... } class _MyHomePageState extends State<MyHomePage> {
//... @override  void initState() { super.initState();
//... SingularConfig config = new SingularConfig('SDK KEY', 'SDK SECRET'); // 가능한 경우 해시된 사용자 ID를 설정하세요.
config.customUserId = "b642b4217b34b1e8d3bd915fc65c4452";

// iOS의 경우(ATT 프롬프트를 표시하지 않는 경우 이를 제거하세요)!
config.waitForTrackingAuthorizationWithTimeoutInterval = 300;

// META 설치 리퍼러를 활성화하려면
config.facebookAppId = "여기에 Facebook 앱 ID를 입력하세요.";

// SkAdNetwork 지원을 활성화하려면
config.skAdNetworkEnabled = true;

/* (선택 사항) Singular Global Properties 기능을 사용하여 제3자 식별자를 캡처합니다. Singular SDK 이전에 해당 SDK를 초기화해야 합니다. CleverTapID 전달의 예.*/
// var cleverTapId = CleverTapPlugin.getCleverTapID();
// config.withGlobalProperty("CLEVERTAPID", cleverTapId, true);
Singular.start(config); }

싱귤러에 사용자 ID 보내기(선택 사항)

싱귤러 SDK 방법을 사용하여 내부 사용자 ID를 싱귤러에 전송할 수 있습니다.

참고: 싱귤러의 크로스 디바이스 솔루션을 사용하는 경우, 모든 플랫폼에서 사용자 ID를 수집해야 합니다.

  • 사용자 ID는 모든 식별자가 될 수 있으며 PII(개인 식별 정보)를 노출해서는 안 됩니다. 예를 들어 사용자의 이메일 주소, 사용자 이름 또는 전화번호를 사용해서는 안 됩니다. 싱귤러는 퍼스트 파티 데이터에만 고유한 해시값을 사용할 것을 권장합니다.
  • 또한 Singular에 전달되는 사용자 ID 값은 모든 플랫폼(웹/모바일/PC/콘솔/오프라인)에서 캡처한 내부 사용자 ID와 동일해야 합니다.
  • Singular는 사용자 수준 내보내기, ETL 및 내부 BI 포스트백(구성된 경우)에 사용자 ID를 포함합니다. 사용자 ID는 퍼스트 파티 데이터이며, Singular는 이를 다른 당사자와 공유하지 않습니다.
  • 싱귤러 SDK 메서드로 설정한 사용자 ID 값은 unsetCustomUserId 메서드를 사용하여 설정 해제하거나 앱을 제거할 때까지 지속됩니다. 앱을 닫거나 다시 시작해도 사용자 ID는 설정이 해제되지 않습니다.

사용자 ID를 설정하려면 setCustomUserId 메서드를 사용합니다. 설정을 해제하려면(예: 사용자가 계정에서 '로그아웃'하는 경우) unsetCustomUserId 으로 전화하세요.

참고: 여러 사용자가 하나의 디바이스를 사용하는 경우 로그인 및 로그아웃할 때마다 사용자 ID를 설정하고 설정 해제하는 로그아웃 플로우를 구현하는 것이 좋습니다.

앱이 열릴 때 사용자 ID를 이미 알고 있는 경우 Singular SDK를 초기화하기 전에 setCustomUserId 으로 전화하세요. 이렇게 하면 싱귤러가 첫 번째 세션부터 사용자 ID를 가질 수 있습니다. 그러나 일반적으로 사용자가 등록하거나 로그인을 수행할 때까지 사용자 ID를 사용할 수 없습니다. 이 경우 등록 흐름이 완료된 후 setCustomUserId 으로 호출하세요.

Singular.setCustomUserID 메서드
설명 사용자 ID를 Singular로 보냅니다.
서명 static void setCustomUserId(String customUserId)
사용 예제
Singular.setCustomUserId("custom_user_id");
Singular.unsetCustomUserID 메서드
설명 Singular로 전송된 사용자 ID를 설정 해제합니다.
서명 static void unsetCustomUserId()
사용 예시
Singular.unsetCustomUserId();

선택 사항입니다: 커스텀 사용자 ID 장치 매핑

중요: 이 고급 엔터프라이즈 기능은 예외적인 경우에만 사용할 수 있습니다.이 기능을 구현하기 전에 싱귤러의 솔루션 엔지니어와 상담하세요.

싱귤러는 서버 간 연동을 통해 추가 모바일 이벤트 추적 데이터를 수신할 수 있습니다. 이 기능을 활용하려면 사용자 ID를 Singular의 모바일 디바이스 추적 식별자에 매핑해야 합니다.

참고: 이 메서드는 싱귤러 SDK를 초기화한 후 또는 사용자 ID를 확보한 후 가능한 한 빨리 호출하세요.

Singular.setDeviceCustomUserId 메서드
설명 사용자 지정 사용자 ID를 로그인과 동일하게 설정하고 Singular의 추적 식별자에 매핑합니다.
서명 static void setDeviceCustomUserId(String customUserId)
사용 예시
Singular.setDeviceCustomUserId("custom_user_id");

딥링크 구현하기

딥링크는 사용자의 휴대폰에서 앱을 열고 사용자를 앱의 기본 위젯이 아닌 특정 페이지나 사용자 경험으로 바로 이동시키는 링크입니다. 딥링크는 일반적으로 휴대폰에 이미 앱이 설치되어 있지만 한동안 앱을 사용하지 않은 사용자를 대상으로 하는 리타게팅 캠페인에 사용됩니다. Singular는 Singular 링크를 통한 딥링크를 지원합니다.

Singular 링크 활성화

iOS와 Android에서 Singular 링크를 활성화하려면 Singular 링크 전제조건을 참조하세요.

Android를 지원하려면 프로젝트의 MainActivity.java 파일에 다음 코드를 추가하세요:

자바 코틀린
import com.singular.flutter_sdk.SingularBridge;
import android.content.Intent;

@Override protected void onNewIntent(@NonNull Intent intent) {   super.onNewIntent(intent);   SingularBridge.onNewIntent(intent); }

iOS 지원의 경우 프로젝트의 AppDelegate.m에 다음을 추가합니다:

 

Objective-C Swift
// Top of AppDelegate.m
            
#import "SingularAppDelegate.h"

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    [GeneratedPluginRegistrant registerWithRegistry:self];    [SingularAppDelegate shared].launchOptions = launchOptions; return [super application:application
didFinishLaunchingWithOptions:launchOptions]; }
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>>
*restorableObjects))restorationHandler {    [[SingularAppDelegate shared] continueUserActivity:userActivity
restorationHandler:restorationHandler];    return [super application:application continueUserActivity:userActivity
restorationHandler:restorationHandler ]; }
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {     [[SingularAppDelegate shared] handleOpenUrl:url options:options];      return [super application:app openURL:url options: options]; }

단수 링크 처리

Singular의 핸들러 메커니즘을 사용하여 앱이 열리게 된 추적 링크의 세부 정보를 읽습니다.

예를 들어

SingularConfig config = new SingularConfig('<SDK KEY>', '<SDK SECRET>');

config.singularLinksHandler = (SingularLinkParams params) { String deeplink = params.deeplink; String passthrough = params.passthrough; bool isDeferred = params.isDeferred; // 딥 링크를 처리하려면 여기에 코드를 추가하세요. }; Singular.init(config);

이벤트 추적(비수익)

Singular는 인앱 이벤트에 대한 데이터를 수집하여 캠페인의 성과를 분석하고 KPI를 측정하는 데 도움을 줄 수 있습니다. 예를 들어, 게임 앱에서 사용자 로그인, 등록, 튜토리얼 완료 또는 레벨 업에 대한 데이터를 수집하고자 할 수 있습니다.

Singular는 다양한 표준 이벤트를 지원합니다. 일반적으로 사용되는 이러한 이벤트는 보고 및 최적화를 위해 애드 네트워크에서 지원하는 경우가 많습니다. 또 다른 장점은 표준 이벤트 이름을 사용하면 수동으로 정의할 필요 없이 Singular가 자동으로 인식하여 이벤트 목록에 추가한다는 것입니다. 가능하면 표준 이벤트를 사용하는 것이 좋습니다.

Singular로 전송되는 이벤트 목록(함께 제공되는 속성 포함)은 UA/마케팅/비즈니스 팀에서 조직의 마케팅 KPI를 기반으로 작성해야 합니다. 비즈니스 팀은 인앱 이벤트 추적 방법의 가이드를 따를 수 있습니다: 싱귤러 어트리뷰션 고객을 위한 가이드.

추적하는 각 이벤트마다 다양한 어트리뷰트를 전달할 수 있습니다. 이벤트별 권장 표준 어트리뷰트를 참조하세요.

코드에서 이벤트 또는 eventWithArgs 메서드를 사용하여 싱귤러에 이벤트를 전송합니다.

참고: 표준 이벤트의 경우, Flutter SDK 표준 이벤트 및 속성 목록에 표시된 대로 이벤트의 Flutter 이름을 사용하십시오(예: sngLogin).

사용자 지정 이벤트의 경우, 조직에서 측정하고자 하는 이벤트 중 Singular의 표준 이벤트와 일치하지 않는 이벤트는 사용자 지정 이름 (최대 32자)을 사용합니다. 최적화를 위해 Singular에서 이벤트를 수신할 수 있는 애드 네트워크 파트너와의 호환성을 위해 영어로 된 이름을 사용하는 것이 좋습니다.

예시:

Singular.event(Events.sngLogin);
Singular.eventWithArgs(eventName, {attributeName:attributeValue});
Map<String, Object> map = HashMap<String, Object>();
map ['name'] = 'John Doe';
map ['age'] = 30;
map ['isStudent'] = false;
Singular.eventWithArgs('event_Name', map);

구매 추적

IAP 이벤트 전송

앱이 얼마나 많은 수익을 창출하고 있는지 Singular가 추적할 수 있도록 하려면, Singular에 IAP 이벤트를 보내세요. IAP 이벤트를 보내면 Singular가 이벤트 확인 데이터를 확인하고 부정 행위가 없는지 확인할 수 있습니다.

다음 예시를 참조하세요.

참고: 이 코드 스니펫을 사용하려면 Flutter IAP 패키지( https://pub.dev/packages/in_app_purchase)가 필요합니다.

import 'package:singular_flutter_sdk/singular_iap.dart';
import 'dart:io' show Platform;
            
if (Platform.isIOS) {
  singularPurchase = new SingularIOSIAP(
    product.rawPrice.toStringAsFixed(2),
    product.currencyCode,
    purchase.productID,
    purchase.purchaseID,
    purchase.verificationData.serverVerificationData
  );
}
            
else if (Platform.isAndroid) {
  singularPurchase = new SingularAndroidIAP(
    product.rawPrice.toStringAsFixed(2),
    product.currencyCode,
    purchase.verificationData.serverVerificationData,
    purchase.verificationData.localVerificationData
  );
}
            
Singular.inAppPurchase(eventName, singularPurchase);

참고: 통화를 세 글자 ISO 4217 통화 코드로 전달하세요(예: "USD", "EUR", "INR").

대체 방법: 사용자 지정 수익 이벤트 보내기

Singular에서는 이름과 수익 금액이 포함된 사용자 지정 수익 이벤트를 전송하여수익을 보고하는 옵션도 제공합니다. 이 방법은 구매 영수증을 Singular와 공유하지 않으므로 Singular에서 합법적인 이벤트인지 확인할 수 없다는점에 유의하세요.

예를 들어

Singular.customRevenue("MyCustomRevenue", "USD", 5.50);
Map<String, Object> map = HashMap<String, Object>();
map ['name'] = 'John Doe';
map ['age'] = 30;
map ['isStudent'] =false;
Singular.customRevenueWithAttributes('MyCustomRevenue','USD', 20, map);

참고: 통화를 세 글자로 된 ISO 4217 통화 코드(예: 'USD', 'EUR', 'INR')로 전달합니다.

하이브리드 이벤트 추적(고급)

싱귤러는 앱에 연동된 싱귤러 SDK를 통해 모든 이벤트와 구매을 전송할 것을 권장합니다. 그러나 Singular는 다른 소스에서 이벤트와 구매을 수집할 수 있습니다.

싱귤러 SDK에서 전송되지 않은 모든 이벤트는 싱귤러의 서버 간 이벤트 문서 요구사항을준수해야 하며, 이벤트의 정확한 어트리뷰션을 위해 일치하는 기기 식별자를 제공해야 합니다.

중요:

서버 간 이벤트 요청에 사용된 디바이스 식별자가 Singular에서 일치하는 디바이스 식별자가 없는 경우 불일치가 발생할 수 있습니다. 다음과 같은 가능성에 유의하세요:

  • 이벤트 요청이 앱 세션에서 싱귤러 SDK가 디바이스 식별자를 기록하기 '전에 ' 수신된 경우, 이벤트 요청은 알 수 없는 디바이스에 대한 '첫 번째 세션'으로 간주되며, 싱귤러는 해당 디바이스를 오가닉 어트리뷰션으로 어트리뷰션합니다.
  • 싱귤러 SDK가 디바이스 식별자를 기록했지만, 싱귤러 SDK 식별자가 서버 간 이벤트 요청에 지정된 디바이스 식별자와 다른 경우, 이벤트는 잘못 어트리뷰션됩니다.

하이브리드 이벤트 추적 가이드

내부 서버에서 이벤트 보내기

싱귤러는 서버에서 수익에 대한 데이터를 수집하여 캠페인의 성과와 ROI를 분석하는 데 도움을 줄 수 있습니다.

요구사항:

  • 인앱 등록 또는 로그인 이벤트에서 디바이스 식별자를 캡처하여 전달하고 이 데이터를 서버의 사용자 ID와 함께 저장하세요. 디바이스 식별자는 사용자에 따라 변경될 수 있으므로 사용자가 앱 세션을 생성할 때 식별자를 업데이트해야 합니다. 이렇게 하면 서버 측 이벤트가 올바른 디바이스에 어트리뷰션되도록 보장할 수 있습니다.
  • 서버 측 이벤트는 플랫폼별로 다르므로 디바이스 플랫폼과 일치하는 디바이스 식별자(예: iOS 디바이스의 경우 IDFA 또는 IDFV)로만 전송해야 합니다.
  • 싱귤러 내부 BI 포스트백 메커니즘을 사용하여 이벤트를 내부 엔드포인트로 실시간으로 푸시하여 서버 측의 데이터 집합을 업데이트할 수 있습니다. 내부 BI 포스트백 FAQ를 참조하세요.
  • 자세한 내용은 서버 간 통합 가이드의 "수익 추적 " 섹션을 검토하세요.
수익 제공업체에서 이벤트 보내기
RevenueCat 또는 adapty와 같은 타사 제공업체는 구매 및 구독 수익을 Singular에 제공할 수 있습니다.

이러한 파트너를 활성화하는 방법에 대한 자세한 내용은 아래 링크를 참조하세요.

세그먼트에서 이벤트 보내기

세그먼트에서 싱귤러 SDK와 병행하여 싱귤러에 이벤트를 보내려면 세그먼트에 "클라우드 모드" 대상을 추가해야 합니다. 여기에서 가이드를 따르세요.

광고 수익 어트리뷰션 지원 추가

Singular SDK를 통해 광고 수익 어트리뷰션을 설정할 수 있습니다.

Flutter SDK를 사용하여 광고 수익 어트리뷰션 지원을 추가하려면 다음과 같이 하세요:

  1. 광고 수익 데이터에 사용하는 미디에이션 플랫폼에서 광고 수익 정보를 가져올 수 있도록 적절한 코드 조각을 추가합니다.

    안드로이드 SDK 문서에서 코드 스니펫을 참조하세요.

참고: 통화를 3글자 ISO 4217 통화 코드(예: 'USD', 'EUR', 'INR')로 전달합니다.

다음 코드를 사용하여 광고 구매 이벤트를 Singular에 보고합니다.
  1. 관련 데이터로 SingularAdData 객체를 초기화합니다.
  2. 싱귤러에 데이터를 보고합니다.
Dart
SingularAdData adData = SingularAdData(
"YOUR_AD_PLATFORM",
"커런시 코드",
0.05) Singular.adRevenue(adData)

SKAdNetwork 지원 추가

앱에 SKAdNetwork 추적을 사용하려면 Singular를 초기화하기 전에 skAdNetworkEnabled 구성 옵션을 활성화합니다.

관리 모드(권장)

관리 모드에서는 Singular 플랫폼에서 설정할 수 있는 전환 모델에 따라, Singular가 자동으로 SKAdNetwork 전환 값을 관리합니다.

자세한 내용은 싱귤러의 전환 가치 관리 이해SKAdNetwork 모델 구성 FAQ를 참조하세요. Singular와 함께 SKAdNetwork를 사용하는 단계별 가이드는 SKAdNetwork 시작하기 방법을 참조하세요.

참고: 위의 초기화 코드 스니펫에서 SKAN 관리 모드는 이미 활성화되어 있습니다. 이러한 구성 항목이 설정되어있는지 확인하세요.

관리 모드에서 SKAdNetwork를 활성화하려면 다음 코드를 사용합니다:

SingularConfig config = new SingularConfig('<SDK KEY>', '<SDK SECRET>');
config.skAdNetworkEnabled = true;
config.waitForTrackingAuthorizationWithTimeoutInterval = 300; Singular.init(config);

수동 모드

이미 자체 전략과 도구를 사용하여 SKAdNetwork 전환 가치를 관리하고 있다면, 수동 모드에서 SKAdNetwork를 활성화할 수 있습니다.

SingularConfig config = new SingularConfig('SDK KEY', 'SDK SECRET');
config.skAdNetworkEnabled = true;
config.manualSkanConversionManagement = true;
config.waitForTrackingAuthorizationWithTimeoutInterval = 300; Singular.init(config);

그런 다음 전환 값을 업데이트하려면 다음 코드를 사용합니다:

ingular.skanUpdateConversionValue(conversionValue)

전환 값이 변경되는 시점을 추적하려면 다음 콜백 함수를 사용합니다:

config.conversionValueUpdatedCallback = (int conversionValue) {
  print('Received conversionValueUpdatedCallback: ' + conversionValue.toString());
};

현재 전환 값을 검색하려면 다음 코드를 사용합니다:

Singular.skanGetConversionValue().then((conversionValue) {
  print('conversion value: ' + conversionValue.toString());
});

기타 옵션

추적 제거

Singular가 앱 제거를 추적하도록 하려면 다음 예시와 같이 Singular에 APNS/FCM 토큰을 제공하세요:

// iOS
Singular.registerDeviceTokenForUninstall(apnsToken);
            
// Android
Singular.registerDeviceTokenForUninstall(fcmToken);

데이터 개인정보 보호법 준수

Singular는 개인정보 보호 기능을 제공하여 GDPR 및 CCPA(캘리포니아 소비자 개인정보 보호법)와 같은 소비자 개인정보 보호법을 준수하는 파트너와 협력할 수 있도록 지원합니다. 이러한 파트너는 최종 사용자가 개인 정보 공유에 동의했는지 여부를 통보받기를 원합니다.

사용자에게 정보 공유에 대한 동의를 요청하는 방법을 구현한 경우, limitDataSharing 메서드를 사용하여 사용자의 선택 사항을 Singular에 알려주세요:

사용자가 정보 공유에 동의(옵트인)했음을 표시하려면 Singular.limitDataSharing(false )를 사용합니다.

사용자가 동의하지 않은 경우 Singular.limitDataSharing(true )를 사용합니다.

Singular는'사용자 개인정보 포스트백'에서 제한데이터공유를 사용할 뿐만 아니라 관련 규정을 준수하기 위해 이 정보를 필요로 하는 파트너에게 전달합니다. 자세한 내용은"사용자 개인정보 및 데이터 공유 제한"을 참조하세요.

참고: 이 방법의 사용은 선택 사항이지만, 사용자가 옵트인했음을 구체적으로 고지한 경우에만 파트너가 Singular와 공유하는 어트리뷰션 정보가 있을 수 있습니다.

Singular.limit데이터 공유 방법
서명 Singular.limitDataSharing(booleanshouldLimitDataSharing)
설명 개인 데이터 공유에 대한 사용자 동의(옵트인)를 Singular에 알립니다.
사용 예시
// 사용자가 데이터 공유에 동의했습니다.
Singular.limitDataSharing(false);

GDPR 준수를 위한 추가 방법

Singular SDK는 GDPR 정책을 준수하고 추적에 대한 사용자 동의 또는 비동의를 Singular에 알리는 데 도움이 되는 몇 가지 메서드를 제공합니다.

Singular.trackingOptIn 메서드
설명 추적에 대한 사용자 동의(옵트인)를 Singular에 알립니다.
사용 예시
Singular.trackingOptIn();
Singular.stopAllTracking 메서드
설명

이 앱에서 이 사용자에 대한 모든 추적 활동을 중지합니다.

참고: 이 메서드를 호출하면 앱이 재시작된 후에도 SDK가 효과적으로 비활성화됩니다(상태는 지속됨). 추적을 다시 활성화하는 유일한 방법은 resumeAllTracking()을 호출하는 것입니다.
사용 예시
Singular.stopAllTracking();
Singular.resumeAllTracking 메서드
설명 이 앱에서 이 사용자에 대한 추적을 재개합니다.
사용 예시
Singular.resumeAllTracking();
Singular.isAllTrackingStopped 메서드
설명 이 앱에서 이 사용자의 추적 상태를 확인합니다. StopAllTracking()을 사용하여 추적을 중지하고 다시 시작하지 않은 경우 true를 반환합니다.
사용 예시
Singular.isAllTrackingStopped();