Singular SDK는 Cordova용 플러그인으로 사용할 수 있습니다. 아래 지침 는 Singular를 Cordova 앱에 연동하는 방법을 보여줍니다.
전제 조건
- 이 문서에서는 제대로 작동하는 Cordova 앱이 있다고 가정합니다.
- SDK를 초기화하려면 Singular SDK 키와 SDK 시크릿이 필요합니다. Singular 플랫폼의 "개발자 도구 > SDK 연동 > SDK 키"에서 얻을 수 있습니다.
Singular 플러그인 추가하기
코드바 프로젝트에 Singular 플러그인을 추가하려면 다음을 실행하세요:
cordova plugin add singular_cordova_sdk
Ionic
Ionic을 사용하는 경우
-
Singular SDK 플러그인을 설치합니다:
$ ionic cordova plugin add singular_cordova_sdk
-
메인 ts 파일에서 창 변수를 선언합니다:
declare var cordova;
-
이제 Cordova에서 바로 Singular 플러그인을 사용할 수 있습니다:
import {Component} from '@angular/core'; import {Platform} from '@ionic/angular'; declare var cordova; ... export class HomePage { constructor(public platform: Platform) { this.platform.ready().then(() => { // 여기에 Singular SDK를 초기화하는 코드를 추가하세요. }); }}
SDK 초기화하기(필수)
앱을 열 때마다 Singular SDK 초기화 코드를 호출해야 합니다. 이는 모든 Singular 어트리뷰션 기능의 전제 조건입니다. 또한 새 사용자 세션을 Singular로 전송합니다(세션은 사용자 리텐션을 계산하는 데사용됩니다).
Singular SDK를 초기화하려면 다음과 같이 하세요:
- SingularConfig 객체를 생성합니다. 이 객체에는 Singular SDK 키와 시크릿이 포함됩니다.
- 앱이 딥링크 및/또는 SKAdNetwork를 지원하도록 하려면 선택적 설정을 구성합니다(아래 딥링킹 지원 추가하기 및 SKAdNetwork 지원 추가하기 참조).
- 메타 인스톨 리퍼러 어트리뷰션 지원
'메타 인스톨 리퍼러' 어트리뷰션을 활성화하는 데 필요한 SDK 구성입니다:
- Singular 구성 개체에서 페이스북 앱 ID를 입력합니다.
// META 설치 리퍼러를 활성화하려면 singularConfig.withFacebookAppId("여기에 Facebook 앱 ID를 입력하세요.");
- Singular 구성 개체에서 페이스북 앱 ID를 입력합니다.
- SingularConfig 객체를 사용하여 SDK를 초기화합니다.
코드 예시(선택적 설정은 주석 처리됨):
// 구성 개체 만들기
var singularConfig = new
cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>");
/*
// 선택 사항: 딥 링크 활성화(추가 설정 단계 필요, 가이드 참조)
var linkHandler = function(data){
var deeplink = data.deeplink;
var passthrough = data.passthrough;
var isDeferred = data.isDeferred;
// 여기에 링크 처리 로직을 추가하세요.
}
singularConfig.withSingularLink(linkHandler);
*/
/*
// META 설치 리퍼러를 활성화하려면
singularConfig.withFacebookAppId("여기에 Facebook 앱 ID를 입력하세요.");
*/
/*
// 선택 사항: SKAdNetwork 활성화(관리 모드에서 추가 옵션은 가이드 참조)
singularConfig.withSkAdNetworkEnabled(true);
*/
// Singular형 초기화
cordova.plugins.SingularCordovaSdk.init(singularConfig);
사용자 ID를 Singular로 보내기(선택 사항)
Singular SDK 메서드를 사용하여 내부 사용자 ID를 Singular로 보낼 수 있습니다.
참고: Singular의 크로스 디바이스 솔루션을 사용하는 경우 모든 플랫폼에서 사용자 ID를 수집해야 합니다.
- 사용자 ID는 모든 식별자가 될 수 있으며 PII(개인 식별 정보)를 노출해서는 안 됩니다. 예를 들어 사용자의 이메일 주소, 사용자 이름 또는 전화번호를 사용해서는 안 됩니다. Singular는 퍼스트 파티 데이터에만 고유한 해시값을 사용할 것을 권장합니다.
- 또한 Singular에 전달되는 사용자 ID 값은 모든 플랫폼(웹/모바일/PC/콘솔/오프라인)에서 캡처한 내부 사용자 ID와 동일해야 합니다.
- Singular는 사용자 수준 내보내기, ETL 및 내부 BI 포스트백(구성된 경우)에 사용자 ID를 포함합니다. 사용자 ID는 퍼스트 파티 데이터이며, Singular는 이를 다른 당사자와 공유하지 않습니다.
- Singular SDK 메서드로 설정한 사용자 ID 값은 unsetCustomUserId 메서드를 사용하여 설정 해제하거나 앱을 제거할 때까지 지속됩니다. 앱을 닫거나 다시 시작해도 사용자 ID는 설정이 해제되지 않습니다.
사용자 ID를 설정하려면 setCustomUserId 메서드를 사용합니다. 설정을 해제하려면(예: 사용자가 계정에서 '로그아웃'하는 경우) unsetCustomUserId 으로 전화하세요.
참고: 여러 사용자가 하나의 디바이스를 사용하는 경우 로그인 및 로그아웃할 때마다 사용자 ID를 설정하고 설정 해제하는 로그아웃 플로우를 구현하는 것이 좋습니다.
앱이 열릴 때 사용자 ID를 이미 알고 있는 경우 Singular SDK를 초기화하기 전에 setCustomUserId 으로 전화하세요. 이렇게 하면 Singular가 첫 번째 세션부터 사용자 ID를 가질 수 있습니다. 그러나 일반적으로 사용자가 등록하거나 로그인을 수행할 때까지 사용자 ID를 사용할 수 없습니다. 이 경우 등록 절차가 완료된 후 setCustomUserId 으로 전화하세요.
Singular코드바에스디케이.설정 사용자 아이디 메서드 | |
---|---|
설명 | Singular에 사용자 ID를 보냅니다. |
서명 | SingularCordovaSdk.setCustomUserId(String customUserId) |
사용 예시 |
|
SingularCordovaSdk.unsetCustomUserID 메서드 | |
설명 | Singular로 전송된 사용자 ID를 설정 해제합니다. |
서명 | SingularCordovaSdk.unsetCustomUserId() |
사용 예시 |
|
중요: 이 고급 엔터프라이즈 기능은 예외적인 경우에만 사용할 수 있습니다.이 기능을 구현하기 전에 Singular의 솔루션 엔지니어와 상담하세요.
Singular는 서버 간 연동을 통해 추가 모바일 이벤트 추적 데이터를 수신할 수 있습니다. 이 기능을 활용하려면 사용자 ID를 Singular의 모바일 디바이스 추적 식별자에 매핑해야 합니다.
참고: 이 메서드는 Singular SDK를 초기화한 후 또는 사용자 ID를 확보한 후 가능한 한 빨리 호출하세요.
Singular 코드바에스디케이.set디바이스커스텀유저아이디 메서드 | |
---|---|
설명 | 사용자 정의 사용자 ID를 로그인과 동일하게 설정하고 Singular의 추적 식별자에 매핑합니다. |
서명 | SingularCordovaSdk.setDeviceCustomUserId(String customUserId) |
사용 예시 |
|
이벤트 추적(비구매)
SDK 초기화를 통해 사용자 세션을 Singular로 전송하는 것 외에도 사용자 이벤트를 전송할 수 있습니다. 인앱 이벤트에 대한 데이터는 Singular가 사용자 확보 캠페인의 성과를 분석하고 KPI를 측정하는 데 도움이됩니다.
예를 들어, 게임 앱에서 사용자 로그인, 등록, 튜토리얼 완료 또는 레벨 업에 대한 데이터를 수집하고 싶을 수 있습니다.
Singular로 이벤트를 보내려면 eventWithArgs 메서드를 사용합니다. 이벤트에 이름을 지정하고 추적할 속성을 추가합니다.
// 예: 이벤트 속성이 있는 제품 보기라는 이벤트 보고
cordova.plugins.SingularCordovaSdk.eventWithArgs(
'ViewProduct', // 이벤트 이름
{
// 이벤트 속성
productID:"123",
productCategory:"Outerwear"
}
)
구매 추적
앱이 인앱 구매를 통해 얼마나 많은 구매을 창출했는지 Singular가 추적할 수 있도록 하려면, IAP 이벤트를 Singular에 보고하세요.
이벤트 어트리뷰트로 eventWithArgs 메서드를 사용하여 IAP 객체를 전달할 것을 권장합니다. Singular는 IAP 객체를 사용하여 구매의 유효성을 검사하고 사기성 구매를 감지하여 구매 지표가 왜곡되지 않도록 합니다( 인앱 구매 유효성 검사 FAQ 참조).
https://github.com/j3k0/cordova-plugin-purchase 라이브러리를사용하는 경우 다음 코드를 사용할 수 있습니다:
store.when('product123 verified', onProductVerified);
product.verify();
function onProductVerified(product){
const iap = new cordova.plugins.SingularCordovaSdk.SingularIAP(product);
cordova.plugins.SingularCordovaSdk.eventWithArgs('IAP_EVENT', iap)
}
사용자 지정 구매 전송
IAP 객체를 Singular로 보낼 수 없는 경우 이벤트 이름, 통화 코드 및 구매 금액을 허용하는 customRevenue 메서드를 사용하는 것도 대안이 될 수 있습니다.
예시:
cordova.plugins.SingularCordovaSdk.customRevenue(
customEventName, // 예 "purchase"
currencyCode, // 예 "USD"
purchaseAmount // 예 3.2
);
참고: 통화를 3글자 ISO 4217 통화 코드(예: 'USD', 'EUR', 'INR')로 전달합니다.
하이브리드 이벤트 추적(고급)
Singular는 앱에 연동된 Singular SDK를 통해 모든 이벤트와 구매을 전송할 것을 권장합니다. 그러나 Singular는 다른 소스에서 이벤트와 구매을 수집할 수 있습니다.
Singular SDK에서 전송되지 않은 모든 이벤트는 Singular의 서버 간 이벤트 문서 요구사항을준수해야 하며, 이벤트의 정확한 어트리뷰션을 위해 일치하는 기기 식별자를 제공해야 합니다.
중요:
서버 간 이벤트 요청에 사용된 디바이스 식별자가 Singular에서 일치하는 디바이스 식별자가 없는 경우 불일치가 발생할 수 있습니다. 다음과 같은 가능성에 유의하세요:
- 이벤트 요청이 앱 세션에서 Singular SDK가 디바이스 식별자를 기록하기 '전에 ' 수신된 경우, 이벤트 요청은 알 수 없는 디바이스에 대한 '첫 번째 세션'으로 간주되며, Singular는 해당 디바이스를 오가닉 어트리뷰션으로 어트리뷰션합니다.
- Singular SDK가 디바이스 식별자를 기록했지만, Singular SDK 식별자가 서버 간 이벤트 요청에 지정된 디바이스 식별자와 다른 경우, 이벤트는 잘못 어트리뷰션됩니다.
하이브리드 이벤트 추적 가이드
Singular는 서버에서 구매에 대한 데이터를 수집하여 캠페인의 성과와 ROI를 분석하는 데 도움을 줄 수 있습니다.
요구사항:
- 인앱 등록 또는 로그인 이벤트에서 디바이스 식별자를 캡처하여 전달하고 이 데이터를 서버의 사용자 ID와 함께 저장하세요. 디바이스 식별자는 사용자에 따라 변경될 수 있으므로 사용자가 앱 세션을 생성할 때 식별자를 업데이트해야 합니다. 이렇게 하면 서버 측 이벤트가 올바른 디바이스에 어트리뷰션되도록 보장할 수 있습니다.
- 서버 측 이벤트는 플랫폼별로 다르므로 디바이스 플랫폼과 일치하는 디바이스 식별자(예: iOS 디바이스의 경우 IDFA 또는 IDFV)로만 전송해야 합니다.
- Singular 내부 BI 포스트백 메커니즘을 사용하여 이벤트를 내부 엔드포인트로 실시간으로 푸시하여 서버 측의 데이터 집합을 업데이트할 수 있습니다. 내부 BI 포스트백 FAQ를 참조하세요.
- 자세한 내용은 서버 간 연동 가이드의 "구매 추적 " 섹션을 검토하세요.
이러한 파트너를 활성화하는 방법에 대한 자세한 내용은 아래 링크를 참조하세요.
광고 구매 어트리뷰션 추적
Singular는 광고 구매 어트리뷰션을 위해 구글 애드몹, 앱러빈, 유니티 레벨플레이(아이언소스), 트레이드플러스와 같은 미디에이션 플랫폼과 연동되어 있습니다. 또한 Singular는 일반 광고 구매 SDK 연동을 통해 다른 미디에이션 플랫폼도 지원합니다.
Singular SDK 연동 코드 스니펫을 추가하여 미디에이션 플랫폼에서 광고 구매 어트리뷰션 데이터를 가져올 수 있습니다. 이를 통해 SKAdNetwork 캠페인에 대한 광고 구매 데이터도 얻을 수 있습니다.
미디에이션 플랫폼에서 사용자 수준의 광고 구매을 확보하면 Singular는 이 데이터를 수락할 수 있는 미디어 소스에 어트리뷰션 광고 구매을 다시 전송하여 AdROAS 캠페인을 실행할 수 있습니다.
SDK 구현을 위한 지침 및 코드 스니펫 보기 [여기].
딥링킹 지원 추가
딥링크는 사용자의 휴대폰에서 앱을 열어 앱의 기본 위젯이 아닌 특정 페이지나 사용자 경험으로 사용자를 직접 보내는 링크입니다.
딥링크는 일반적으로 휴대폰에 이미 앱이 설치되어 있지만 한동안 앱을 사용하지 않은 사용자를 대상으로 하는 리타게팅 캠페인에 사용됩니다.
Singular는 Singular 링크를 통한 딥링크를 지원합니다(Singular 링크 FAQ 참조).
앱에서 Singular 링크를 사용하려면 다음과 같이 하세요:
- Singular 링크 전제 조건의 지침을 따릅니다.
-
Android의 경우 이 코드를 기본 활동에 추가합니다:
import singular_cordova_sdk.SingularCordovaSdk; @Override public void onNewIntent(Intent intent) { SingularCordovaSdk.handleNewIntent(intent); }
iOS의 경우, 이 코드를 앱 델리게이트에 추가합니다:
#import "SingularCordovaSdk.h" - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { self.viewController = [[MainViewController alloc] init]; [SingularCordovaSdk setLaunchOptions: launchOptions]; return [super application:application didFinishLaunchingWithOptions:launchOptions]; } - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id> * _Nullable))restorationHandler{ [SingularCordovaSdk startSessionWithUserActivity:userActivity]; return YES; }
-
코드에서 Singular SDK를 초기화하기 전에, Singular 구성 개체에 .withSingularLink를 추가하고 링크 핸들러 함수를 지정하세요:
var singularConfig = new cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>"); var linkHandler = function(data){ var deeplink = data.deeplink; var passthrough = data.passthrough; var isDeferred = data.isDeferred; // 여기에 링크 처리 로직을 추가하세요. } singularConfig.withSingularLink(linkHandler); cordova.plugins.SingularCordovaSdk.init(singularConfig);
SKAdNetwork 지원 추가하기
Singular 플러그인은 SKAdNetwork 프레임워크를 지원합니다. 아래 구성 옵션을 사용하여 앱에 대한 SKAdNetwork 추적을 활성화할 수 있습니다.
관리 모드 (권장)
관리 모드에서는 Singular 플랫폼에서 설정할 수 있는 전환 모델에 따라, Singular가 자동으로 SKAdNetwork 전환 값을 관리합니다.
자세한 내용은 Singular의 전환 가치 관리 이해및 SKAdNetwork 모델 구성 FAQ를 참조하세요. Singular와 함께 SKAdNetwork를 사용하는 단계별 가이드는 SKAdNetwork 시작하기 방법을 참조하세요.
관리 모드에서 SKAdNetwork를 활성화하려면 다음 코드를 사용합니다:
var singularConfig = new
cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>");
// SKAdNetwork 활성화(기본적으로 관리 모드)
singularConfig.withSkAdNetworkEnabled(true);
cordova.plugins.SingularCordovaSdk.init(singularConfig);
수동 모드
이미 자체 전략과 도구로 SKAdNetwork 전환 가치를 관리하고 있는 경우, 수동 모드에서 SKAdNetwork를 사용할 수 있습니다.
수동 모드에서 SKAdNetwork를 활성화하려면 다음 코드를 사용합니다:
var singularConfig = new
cordova.plugins.SingularCordovaSdk.SingularConfig("<SDK KEY>", "<SDK SECRET>");
// SKAdNetwork 활성화
singularConfig.withSkAdNetworkEnabled(true);
// SKAdNetwork 수동 모드 선택
singularConfig.withManualSkanConversionManagement();
// 선택사항: 전환 가치의 변경사항을 추적하는 핸들러 정의
var conversionHandler = function(updatedConversionValue){
// updateConversionValue로 작업 수행
}
singularConfig.withConversionValueUpdatedHandler(conversionHandler);
// Singular SDK 초기화
cordova.plugins.SingularCordovaSdk.init(singularConfig);
전환 값을 업데이트하려면 다음 코드를 사용합니다:
cordova.plugins.SingularCordovaSdk.skanUpdateConversionValue(
newConversionValue,
function(isSuccess){
// isSuccess == 업데이트가 성공한 경우 true
}
)
현재 전환 값을 검색하려면 다음 코드를 사용합니다:
cordova.plugins.SingularCordovaSdk.skanGetConversionValue(
function(conversionValue){
// ConversionValue로 작업 수행
}
)
기타 옵션
추적 제거
Singular가 앱 제거를 추적하도록 하려면, 다음 코드를 사용하여 APNS/FCM 토큰을 Singular로 전송하세요:
안드로이드
cordova.plugins.SingularCordovaSdk.setUninstallToken(fcmToken)
iOS:
cordova.plugins.SingularCordovaSdk.setUninstallToken(apnsToken)
짧은 리퍼러 링크 생성
짧은 링크를 사용하면 매개변수로 가득 찬 긴 Singular 링크를 공유하기에 편리한 더 짧고 안전한 링크로 변환할수 있습니다.
일반적으로 앱 사용자가 친구와 공유하여 앱을 사용하도록 초대할 수 있도록 짧은 링크를 동적으로 생성하는 것이 좋습니다.
짧은 링크를 만들려면 다음이 필요합니다:
- 앱 다운로드로 연결되는 Singular 링크 ( Singular 링크 FAQ 참조).
- 링크에 동적으로 추가하려는 모든 매개변수 (옵션 목록은 링크 매개변수 추적참조).
- 링크를 공유한 사용자의 새 앱 설치를 추적할 수 있도록 하려는 경우 추천 사용자의 이름과 ID.
짧은 링크를 만들려면 다음 코드를 사용합니다:
cordova.plugins.SingularCordovaSdk.createReferrerShortLink(
longLinkURL,
referrerName,
referrerID,
{
// 짧은 링크에 추가할 추적 링크 매개변수(예: "channel":"sms"
param1: value1,
param2: value2,
...
},
{
onSuccess: function (shortLinkURL) {
// shortLinkURL로 작업하기
},
onError: function (error) {
// 오류 처리
}
}
)
데이터 개인정보 보호법 준수
Singular는 개인정보 보호 기능을 제공하여 GDPR 및 CCPA(캘리포니아 소비자 개인정보 보호법)와 같은 소비자 개인정보 보호법을 준수하는 파트너와 협력할 수 있도록 지원합니다. 이러한 파트너는 최종 사용자가 개인 정보 공유에 동의했는지 여부를 알림을 받기를 원합니다.
사용자에게 정보 공유에 대한 동의를 요청하는 방법을 구현한 경우, limitDataSharing 메서드를 사용하여 사용자의 선택 사항을 Singular에 알려주세요:
사용자가 정보 공유에 동의(옵트인)했음을 표시하려면 SingularCordovaSdk.limitDataSharing(false )를 사용하세요.
사용자가 동의하지 않은 경우 SingularCordovaSdk.limitDataSharing(true)를 사용합니다.
Singular는"사용자 개인정보 포스트백"에서 제한데이터공유를 사용할 뿐만 아니라 관련 규정을 준수하기 위해 이 정보를 필요로 하는 파트너에게 전달합니다. 자세한 내용은"사용자 개인정보 및 데이터 공유 제한"을 참조하세요.
참고: 이 방법의 사용은 선택 사항이지만, 사용자가 옵트인했음을 구체적으로 고지한 경우에만 파트너가 Singular와 공유하는 어트리뷰션 정보가 있을 수 있습니다.
SingularCordovaSdk.limitDataSharing 메서드 | |
---|---|
서명 | SingularCordovaSdk.limitDataSharing(booleanshouldLimitDataSharing) |
설명 | 개인 데이터 공유에 대한 사용자 동의(옵트인)를 Singular로 알립니다. 데이터 공유 제한 방법을 사용하면 앱에서 제3자에게 사용자 데이터를 전송할지 여부를 제어할 수 있는 옵션이 제공됩니다. 이 방법은 사용자 기본 설정 또는 개인정보 보호 요구 사항에 따라 데이터 공유를 제한하려는 경우에 유용합니다. |
사용 예시 |
|
GDPR 준수를 위한 추가 방법
Singular SDK는 GDPR 정책을 준수하고 추적에 대한 사용자 동의 또는 비동의를 Singular에 알리는 데 도움이 되는 몇 가지 방법을 제공합니다.
SingularCordovaSdk.trackingOptIn 메서드 | |
---|---|
설명 | 추적에 대한 사용자 동의(옵트인)를 Singular에 알립니다. TrackingOptIn() 메서드는 Singular 서버에 “gdpr” 이벤트를 전송하는 데 사용됩니다. 이 메서드를 호출하지 않으면 앱은 사용자가 동의한 것처럼 계속 추적하지만, 사용자에게 특별히 GDPR 옵트인 표시를 하지는 않습니다. 앱이 GDPR(일반 데이터 보호 규정)을 준수해야 하는 경우 이 함수를 호출하여 사용자 동의가 제대로 기록되었는지 확인해야 합니다. |
사용 예시 |
|
SingularCordovaSdk.stopAllTracking 메서드 | |
설명 |
이 앱에서 이 사용자에 대한 모든 추적 활동을 중지합니다.
참고: 이 메서드를 호출하면 앱이 재시작된 후에도 SDK가 효과적으로 비활성화됩니다(상태는 지속됨). 추적을 다시 활성화하는 유일한 방법은 resumeAllTracking()을 호출하는 것입니다.
|
사용 예시 |
|
SingularCordovaSdk.resumeAllTracking 메서드 | |
설명 | 이 앱에서 이 사용자에 대한 추적을 재개합니다. |
사용 예시 |
|
SingularCordovaSdk.isAllTrackingStopped 메서드 | |
설명 | 이 앱에서 이 사용자의 추적 상태를 확인합니다. StopAllTracking()을 사용하여 추적을 중지하고 다시 시작하지 않은 경우 true를 반환합니다. |
사용 예시 |
|