Cordova SDK - 인앱 이벤트 추적


인앱 구매 추적

인앱 구매(IAP), 구독, 커스텀 구매원의 구매을 추적하여 캠페인 성과와 광고 투자 구매률(ROAS)을 측정할 수 있습니다.

구매 데이터는 세 가지 채널을 통해 전달됩니다:

  • 인터랙티브 보고서: Singular 대시보드에서 구매 지표를 볼 수 있습니다.
  • 로그 내보내기: 사용자 지정 분석을 위해 상세한 ETL 데이터에 액세스
  • 실시간 포스트백: 구매 이벤트를 외부 플랫폼으로 전송

왜 구매 이벤트를 추적해야 하나요?

  • 풍부한 분석: 상세한 거래 데이터를 캡처하여 Singular 리포트 강화
  • 사기 방지: 거래 영수증(예: 구글 플레이 또는 애플 앱스토어)을 포함시켜 구매를 검증하고 인앱 사기를 방지합니다.
  • 캠페인 최적화: 구매을 마케팅 활동과 연결하여 ROI 측정

모범 사례: 전체 구매 개체 전달

안드로이드(구글 플레이 청구) 또는 iOS(스토어키트)의 인앱 구매(IAP) 프로세스에서 반환된 구매 객체를 전달할 것을 강력히 권장합니다. 이렇게 하면 Singular가 다음과 같은 포괄적인 거래 세부 정보를 수신할 수 있습니다:

  • 제품 ID
  • 가격
  • 통화
  • 거래 ID
  • 영수증 데이터(유효성 검사용)

전체 구매 개체를 전달하면 더욱 풍부한 리포팅이 가능하며, 특히 구글 플레이 거래에 대한 Singular의 사기 탐지 기능을 활용할 수 있습니다.


인앱 구매 연동

IAP 구매 개체 캡처

Cordova IAP 플러그인을 사용하면 플랫폼 스토어에서 전체 거래 세부 정보가 포함된 구매 개체를 검색할 수 있습니다.


SingularIAP 생성자

플랫폼별 영수증 유효성 검사 및 사기 방지를 통해 구매을 추적하기 위한 인앱 구매 객체를 생성합니다.

생성자 서명 :

function SingularIAP(product: Object): SingularIAP

전체 생성자 참조는 SingularIAP 생성자 참조를 참조하세요.


전체 IAP 구현 예시

플랫폼별 구매 객체를 사용하여 IAP 이벤트를 캡처하고 이를 Singular로 전송하는 전체 구매 리스너를 구현합니다.

JavaScript
// Import Singular SDK and SingularIAP constructor
var Singular = cordova.plugins.SingularCordovaSdk;
var SingularIAP = cordova.require('singular-cordova-sdk.SingularIAP');

// iOS App Store purchase example
function handleiOSPurchase(purchase) {
  // Create iOS product object
  var iosProduct = {
    currency: 'USD',
    price: 4.99,
    id: 'com.app.premiumgems',
    transaction: {
      type: 'ios-appstore',
      appStoreReceipt: purchase.receipt, // Base64 receipt from StoreKit
      id: purchase.transactionId // Transaction identifier
    }
  };

  // Create SingularIAP object
  var iosIAP = new SingularIAP(iosProduct);

  // Track the purchase with Singular
  // The SingularIAP object is passed as additional args
  cordova.plugins.SingularCordovaSdk.eventWithArgs('iap_purchase', iosIAP);
}

// Android Play Store purchase example
function handleAndroidPurchase(purchase) {
  // Create Android product object
  var androidProduct = {
    currency: 'USD',
    price: 4.99,
    id: 'com.app.premiumgems',
    transaction: {
      type: 'android-playstore',
      receipt: purchase.receipt, // JSON receipt from Google Play
      signature: purchase.signature // Signature from Google Play
    }
  };

  // Create SingularIAP object
  var androidIAP = new SingularIAP(androidProduct);

  // Track the purchase with Singular
  cordova.plugins.SingularCordovaSdk.eventWithArgs('iap_purchase', androidIAP);
}

// Example integration with cordova-plugin-purchase
document.addEventListener('deviceready', function() {
  // Initialize the store
  store.register({
    id: 'com.app.premiumgems',
    type: store.CONSUMABLE
  });

  // Handle purchase approved
  store.when('com.app.premiumgems').approved(function(product) {
    // Determine platform and handle accordingly
    if (device.platform === 'iOS') {
      handleiOSPurchase(product.transaction);
    } else if (device.platform === 'Android') {
      handleAndroidPurchase(product.transaction);
    }

    // Finish the transaction
    product.finish();
  });

  // Refresh the store
  store.refresh();
});

핵심 포인트 :

  • SingularIAP 생성자는 iOS 및 Android 플랫폼 모두에 대해 구매 데이터 형식을 지정합니다.
  • eventWithArgs() 에서 결과 IAP 객체를 args 파라미터로 전달합니다.
  • IAP 객체에는 사기 방지를 위한 영수증 유효성 검사 데이터가 포함됩니다.
  • Singular는 자동으로 매출, 통화 및 제품 세부 정보를 추출합니다.

수동 구매 추적

구매 유효성 검사 없는 구매

구매 개체 없이 통화, 금액, 선택적 제품 세부 정보를 전달하여 구매을 추적합니다. 이 방법은 유효성 검사를 위한 거래 영수증을 제공하지 않습니다.

중요: 유효한 구매 개체 없이 구매 이벤트를 전송하는 경우 Singular는 거래의 유효성을 검사하지 않습니다. 가능하면 위에서 설명한 SingularIAP 생성자를 사용하는 것이 좋습니다.

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


구매 방법

지정된 통화와 금액으로 간단한 구매 이벤트를 추적합니다.

JavaScript
// Track revenue without product details
cordova.plugins.SingularCordovaSdk.revenue('USD', 4.99);

메소드 서명 :

revenue(currency: string, amount: number): void

전체 메소드 목록은 구매 메소드 참조를 참조하세요.


RevenueWithArgs 메서드

지정된 통화, 금액 및 추가 사용자 지정 속성을 사용하여 구매 이벤트를 추적합니다.

JavaScript
// Track revenue with attributes
cordova.plugins.SingularCordovaSdk.revenueWithArgs('USD', 9.98, {
  productSKU: 'coin_package_abc123',
  productName: 'Coin Pack 10',
  productCategory: 'Bundles',
  productQuantity: 2,
  productPrice: 4.99,
  transaction_id: 'T12345'
});

메소드 서명 :

revenueWithArgs(currency: string, amount: number, args: Object): void

전체 메소드 목록은 구매 메소드 참조를 참조하세요.


CustomRevenue 메서드

지정된 이벤트 이름, 통화 및 금액으로 사용자 지정 구매 이벤트를 추적합니다.

JavaScript
// Track custom revenue event
cordova.plugins.SingularCordovaSdk.customRevenue('PremiumUpgrade', 'USD', 9.99);

메서드 서명 :

customRevenue(eventName: string, currency: string, amount: number): void

전체 메소드 목록은 customRevenue 메소드 참조를 참조하세요.


CustomRevenueWithArgs 메서드

지정된 이벤트 이름, 통화, 금액 및 추가 사용자 지정 속성을 사용하여 사용자 지정 구매 이벤트를 추적합니다.

JavaScript
// Track custom revenue event with attributes
cordova.plugins.SingularCordovaSdk.customRevenueWithArgs('PremiumBundlePurchase', 'USD', 99.99, {
  productSKU: 'premium_bundle_xyz',
  productName: 'Premium Bundle',
  productCategory: 'Bundles',
  productQuantity: 1,
  productPrice: 99.99,
  discount_applied: true
});

메서드 서명 :

customRevenueWithArgs(eventName: string, currency: string, amount: number, args: Object): void

전체 메소드 목록은 customRevenueWithArgs 메소드 참조를 참조하세요.


구독 구매

구독 추적

Singular는 Singular SDK를 사용하여 구독 이벤트를 구현하는 방법에 대한 포괄적인 가이드를 제공합니다. 이 가이드는 다양한 플랫폼에서 인앱 구독 이벤트 추적을 다룹니다.


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

CDP 및 서드파티 연동 비호환성: SDID는 CDP(Segment, mParticle, RudderStack) 또는 서드파티 구독 제공업체(RevenueCat, Adapty)와 호환되지 않습니다. SDID가 활성화된 경우 이러한 플랫폼을 이벤트 전달에 병행하여 사용할 수 없으며, 이는 불완전하거나 손상된 어트리뷰션으로 이어집니다.

Singular는 최적의 어트리뷰션을 위해 앱에 연동된 Singular SDK를 통해 모든 이벤트와 구매을 전송할 것을 권장합니다. 하지만, 필요한 경우 Singular는 다른 소스에서 이벤트를 수집할 수 있습니다.

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

중요:

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

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

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

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

내부 서버에서 구매 데이터를 수집하여 캠페인 성과와 ROI를 분석하세요.

요구 사항

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

구매 제공업체에서 이벤트 보내기

RevenueCat 또는 어댑터와 같은 타사 구매 제공업체를 연동하여 구매 및 구독 구매을 Singular로 전송하세요.

지원되는 제공업체


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

세그먼트에 "클라우드 모드" 대상을 추가하여 세그먼트에서 이벤트를 Singular SDK와 병행하여 Singular로 전송할 수 있도록 설정하세요.

자세한 설정 지침은 구현 가이드 Singular-Segment 연동을 참조하세요.