인앱 이벤트 추적

문서

인앱 이벤트 추적

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

표준 이벤트 및 속성

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

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

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

이벤트 전송

코드에서 eventJSON 또는 이벤트 메서드를 사용하여 이벤트를 Singular로 전송합니다(가독성을 위해 eventJSON을 권장합니다).

사용자 지정 이벤트 제한:

  • 타사 파트너 및 분석 솔루션과의 호환성을 보장하기 위해이벤트 이름과 속성을 영어로 전달할 것을 적극 권장합니다.
  • 이벤트 이름은 32개의 ASCII 문자로 제한됩니다. ASCII가 아닌 문자로 된 문자열은 UTF-8로 변환한 후 32바이트 미만이어야 합니다.
  • 속성과 값은 500자로 제한됩니다.

Singular.eventJSON 메서드

사용자 이벤트를 JSONObject 형식의 추가 정보와 함께 Singular에 보고합니다.

서명

Singular.eventJSON(String name, JSONObject args)
참고: 'args'는 하나 이상의 키-값 쌍을 포함하는 JSONObject입니다. 키는 문자열이며 값은 JSONObject 값으로 허용되는 모든 유형이 될 수 있습니다.

사용 예시

JavaKotlin
// Example 1:

// Send the standard event sng_tutorial_complete with the

// recommended standard attributes


JSONObject att = new JSONObject();
try {
    att.put(Attributes.sngAttrContent.toString(), "Telugu");
    att.put(Attributes.sngAttrContentId.toString(), 32);
    att.put(Attributes.sngAttrContentType.toString(), "video");
    att.put(Attributes.sngAttrSuccess.toString(), 92);
} catch (JSONException e) {
    e.printStackTrace(); // Or log the exception


}
Singular.eventJSON(Events.sngTutorialComplete.toString(), att);

// Example 2:

// Send a custom event named "bonus_points_earned" with custom attributes

JSONObject att = new JSONObject();
try {
    att.put("Points", 500);
    att.put("score", 650);
} catch (JSONException e) {
    e.printStackTrace(); // Or log the exception


}
Singular.eventJSON("Bonus Points Earned", att);

Singular.event 메서드

추가 정보를 포함하거나 포함하지 않고 사용자 이벤트를 Singular에 보고합니다.

시그니처

Singular.event(String eventName)
Singular.event(String eventName, Object... args)

참고: 'args'는 하나 이상의 키-값 쌍입니다(아래 예시 참조). 키는 문자열이고 값은 JSONObject 값으로 허용되는 모든 유형(예: JSONObject, JSONArray, 문자열, 부울, 정수, 롱, 더블 또는 NULL)이 될 수 있습니다.

'args' 목록에는 짝수 개의 요소가 포함되어야 하며, 그렇지 않으면 이벤트가 Singular에 의해 거부됩니다.

사용 예시

JavaKotlin
// Example 1:

// Send the standard event "Subscribe" (sng_subscribe) without any attributes

Singular.event(Events.sngSubscribe.toString());

// Example 2:

// Send the standard event "sng_tutorial_complete" with the 

//recommended standard attributes
Singular.event(Events.sngTutorialComplete.toString(),
    Attributes.sngAttrContent.toString(), "Spanish",
    Attributes.sngAttrContentId.toString(), 52,
    Attributes.sngAttrContentType.toString(), "video",
    Attributes.sngAttrSuccess.toString(), 46
);

// Example 3:

// Send a custom event named "SignUp" without any custom attributes

Singular.event("SignUp");

// Example 4:

// Send a custom event named "bonus_points_earned" with a custom attribute

Singular.event("Bonus Points Earned", "Points", 500);

인앱 구매 추적

Singular는 인앱 구매(IAP), 구독, 커스텀 구매 에서 구매 이벤트를 캡처하여 캠페인 성과와 광고 비용 대비 구매률(ROAS)을 측정합니다. 구매 데이터는 세 가지 주요 채널을 통해 제공됩니다:

  • Singular 대시보드의 대화형 보고서
  • 사용자 지정 분석을 위한 상세 내보내기 로그 및 ETL 데이터 대상
  • 외부 플랫폼에 대한 실시간 포스트백

이러한 포괄적인 구매 추적 기능을 통해 마케팅 비용 및 캠페인 최적화에 대한 데이터 기반 의사결정을 내릴 수 있으며, 데이터 소비 및 분석 방식에 유연성을 제공합니다.

구매 이벤트 제한
  • 사용자 지정 구매 이벤트 이름을 사용하는 경우 사용자 지정 구매 이벤트 이름은 32개의 ASCII 문자로 제한됩니다. ASCII가 아닌 문자의 경우 UTF-8로 변환하면 32바이트로 제한됩니다.
  • 이벤트 속성 이름과 속성 값은 500자로 제한됩니다.
  • 통화 코드는 모두 대문자이어야 하며 3글자로 구성된 ISO 4217 통화 코드를 준수해야 합니다:

    USD, EUR, INR

모범 사례

  • Singular는 Singular의 표준 이벤트 및 어트리뷰트 명명 규칙을 사용하여 이벤트를 전달할 것을 권장합니다.
  • 맞춤 구매 이벤트 이름을 사용하는 경우, 애드 네트워크 포스트백과의 호환성을 높이기 위해 영문으로 전송해야 합니다.
  • 구매 이벤트는 구매 금액이 0보다 크거나 작은 경우에만 Singular에 전송해야 합니다.

비구독 인앱 구매

구매 이벤트를 Singular에 보고하려면 Google 청구 라이브러리에서 받은 구매 개체를 revenue 또는 customRevenue SDK 메서드에 전달하세요. 여기에는 두 가지 장점이 있습니다:

  • Singular는 거래의 모든 세부 정보를 가져와서 Singular 보고서를 더욱 풍부하게 만듭니다.
  • Singular는 인앱 사기 방지와 관련하여 거래의 유효성을 검사하는 데 사용할 수 있는 거래 영수증을 Google로부터 받습니다.

참고:

  • customRevenue를 사용하면 사용자 지정 이벤트 이름을 전달할 수 있으므로 Singular 보고서에서 다양한 유형의 구매 이벤트별로 세분화된 구매을 볼 수 있습니다.
  • 다른 통화로 보고된 구매은 Singular 계정에 설정된 대로 조직의 기본 통화로 자동 변환됩니다.

구매 방법

구매 개체를 사용하여 Singular에 구매 이벤트를 보냅니다.

서명

Singular.revenue(String currency, double amount, Object purchase)

사용 예시

JavaKotlin
Singular.revenue("USD", 5.50, purchase);

customRevenue 메서드

사용자 지정 이벤트 이름과 구매 개체를 사용하여 구매 이벤트를 Singular로 보냅니다.

서명

Singular.customRevenue(String eventName, String currency, double amount, Object purchase)

사용 예시

JavaKotlin
Singular.customRevenue("MyCustomRevenue", "USD", 5.50, purchase);

구독 구매

구독 추적:

Singular를 사용하면 앱 내에서 구독과 갱신을 추적하여 사용자 행동과 구매 창출에 대한 인사이트를 얻을 수 있습니다. Singular SDK를 사용하여 구독 이벤트를 구현하는 방법에 대한 종합 가이드를 살펴보세요.[구독 이벤트 기술 구현 가이드] 보기


구매 검증 없는 맞춤 구매

위에서 설명한 방식으로 구매 이벤트를 보고하는 것을 적극 권장하지만, 구매 개체를 전달하지 않고 구매customRevenue를 사용할 수도 있습니다. 대신 거래의 통화와 금액, 선택적 제품 세부 정보를 전달하면 됩니다.

customRevenue 메서드를 사용하면 사용자 지정 이벤트 이름을 전달할 수도 있습니다.

이러한 메서드를 사용하는 경우 Singular는 거래 영수증을 가져오지 않으며 거래의 유효성을 검사할 수 없다는 점에 유의하세요.

구매 메서드

구매 금액, 통화 및 선택적 세부 정보가 포함된 구매 이벤트를 Singular로 전송합니다.

서명

Singular.revenue(String currency, double amount)
Singular.revenue(String currency, double amount, String productSKU, String productName, String productCategory, int productQuantity, double productPrice)
Singular.revenue(String currency, double amount, Map<String, Object> attributes)

사용 예시

JavaKotin

제품 세부 정보 없이

Singular.revenue("USD", 5.50);

제품 세부 정보 포함

Singular.revenue("EUR", 5.00, "SKU1928375", "Reservation Fee", "Fee" , 1, 5.00);

속성 맵에 제품 세부 정보 포함

Map<string, object="Object"> attributes = new HashMap<>();
attributes.put("product_id", "com.app.premium");
attributes.put("transaction_id", "T12345");
attributes.put("quantity", 1);
attributes.put("is_trial", false);

// Call the revenue method

Singular.revenue("USD", 9.99, attributes);

사용자 지정 구매 방법

이벤트 이름, 구매 금액, 통화 코드 및 추가 거래 속성을 지정하여 사용자 지정 구매 이벤트를 Singular로 전송합니다. Singular는 이러한 이벤트를 처리하여 인앱 구매을 추적합니다.

서명

Singular.customRevenue(String eventName, String currency, double amount)
Singular.customRevenue(String eventName, String currency, double amount, String productSKU, String productName, String productCategory, int productQuantity, double productPrice)
Singular.customRevenue(String eventName, String currency, double amount, Map<String, Object> attributes)

사용 예시

JavaKotin

제품 세부 정보 없이

Singular.customRevenue("MyCustomRevenue", "USD", 5.50);

제품 세부 정보 포함

Singular.customRevenue("MyCustomRevenue", "EUR", 5.00, "SKU1928375", "Reservation Fee", "Fee" , 1, 5.00);

속성 맵에 제품 세부 정보 포함

Map<string, object="Object"> attributes = new HashMap<>();
attributes.put("product_id", "com.app.premium");
attributes.put("transaction_id", "T12345");
attributes.put("quantity", 1);
attributes.put("is_trial", false);

// Call the revenue method

Singular.customRevenue("MyCustomRevenue", "USD", 9.99, attributes);

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

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로 보내려면 세그먼트에 "클라우드 모드" 대상을 추가해야 합니다. 여기에서 가이드를 따르세요.