이 가이드에서는 Facebook SDK를 통합한 다음 이러한 이벤트를 로깅하여 새로운 앱이나 기존 앱에 앱 이벤트를 추가하는 방법을 설명합니다.
Facebook SDK를 통합하고 나서 특정 앱 이벤트가 이벤트 관리자에 대해 자동으로 로깅 및 수집됩니다. 단, 자동 앱 이벤트 로깅을 비활성화한 경우는 예외입니다. 앱 코드에서 이를 변경하거나 앱 대시보드나 이벤트 관리자의 앱 이벤트에서 토글을 통해 변경할 수 있습니다. AutoLogAppEventsEnabled 플래그와 토글의 값이 상충하는 경우, 'Facebook SDK 자동 이벤트 로깅’ 토글의 값을 따릅니다. 수집되는 정보 및 자동 앱 이벤트 로깅을 비활성화하는 방법에 대한 자세한 내용은 자동 앱 이벤트 로깅을 참조하세요.
앱에서 이벤트를 추적하는 방법은 세 가지가 있습니다.
Facebook SDK를 사용할 때 자동 이벤트 로깅을 비활성화하지 않으면 Facebook에 대해 특정 앱 이벤트가 자동으로 수집되고 기록됩니다. 이러한 이벤트는 타게팅, 성과 측정, 최적화 등 모든 사용 사례와 밀접한 관련이 있으며, 자동 앱 이벤트 로깅의 일환으로 3가지 주요 이벤트인 앱 설치, 앱 실행과 구매 이벤트가 수집됩니다. 자동 로깅이 활성화되어 있으면 광고주는 로그인 노출 이벤트 등의 다른 Facebook 내부 이벤트 외에 이러한 이벤트도 비활성화할 수 있습니다. 그러나 자동 로깅을 비활성화했지만 특정 이벤트(예: 설치 또는 구매 이벤트)를 로깅하고 싶다면 앱에서 해당 이벤트에 대한 로깅을 수동으로 구현합니다.
| 이벤트 | 상세 정보 |
|---|---|
앱 설치 | 새로운 사용자가 앱을 처음으로 활성화하거나 앱이 특정 기기에서 처음으로 시작된 경우. |
앱 실행 | 사용자가 앱을 실행하면 Facebook SDK가 초기화되고 이벤트가 로깅됩니다. 그러나 첫 번째 앱 실행 이벤트 이후 60초 이내에 두 번째 앱 실행 이벤트가 발생하면 두 번째 이벤트가 로깅되지 않습니다. Android용 Facebook SDK v4.18 이전 버전의 경우 SDK 초기화는 이 문서에서 설명된 수동 이벤트 로깅 프로세스와는 다른 수동 프로세스입니다. 최신 SDK 버전으로 업그레이드하거나 기존 SDK 초기화 섹션으로 스크롤하여 수동으로 이벤트를 추가하세요. |
앱 내 구매 | Google Play에서 처리한 구매가 완료되면 자동으로 로깅합니다. 다른 결제 플랫폼을 사용하는 경우 수동으로 구매 이벤트 코드를 추가합니다. 앱 내 구매 이벤트가 자동으로 로깅되는지 확인하려면 앱 대시보드의 기본 > Android 카드 설정으로 이동하세요. Android용 SDK는 현재 Google Play Billing 라이브러리 v2~v7을 지원합니다. 참고: 앱 내 구매를 사용하여 다이내믹 광고 전환을 측정하고자 하는 경우 Apple App Store 또는 Google Play 스토어의 제품 ID를 관련 다이내믹 광고에서 사용된 제품 ID와 동일하게 설정하세요. |
앱 내 구독 및 체험판 시작 | Google Play에서 처리한 구독(또는 체험판 시작 이벤트)이 구매되면 자동으로 로깅합니다. 앱 내 구독/체험판 시작 자동 로깅은 Google Play Billing 라이브러리 v5~v7을 지원합니다. 이 기능을 활성화하려면 (위의) 앱 내 구매를 활성화하고 이 지침을 따라야 합니다. |
Facebook SDK 충돌 보고서 (Facebook 전용) | Facebook SDK로 인해 앱이 충돌한 경우 충돌 보고서가 생성되고 앱이 다시 시작되었을 때 Facebook으로 전송됩니다. 이 보고서에는 사용자 데이터가 포함되지 않으며 Facebook이 SDK의 품질과 안정성을 보장하는 데 도움이 됩니다. 이 이벤트 로깅을 옵트아웃하려면 자동 로깅된 이벤트를 비활성화하세요. |
Facebook SDK ANR 보고서 (Facebook 전용) | Facebook SDK로 인해 앱에 ANR(앱이 응답하지 않음)이 발생한 경우 ANR 보고서가 생성되고 앱이 다시 시작되었을 때 Facebook으로 전송됩니다. 이 보고서에는 사용자 데이터가 포함되지 않으며 Facebook이 SDK의 품질과 안정성을 보장하는 데 도움이 됩니다. 이 이벤트 로깅을 옵트아웃하려면 자동 로깅된 이벤트를 비활성화하세요. |
로깅된 이벤트를 자동으로 비활성화하려면 다음 내용을 AndroidManifest.xml 파일에 추가합니다.
<application>
...
<meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
android:value="false"/>
...
</application>사용자 동의를 얻거나 법적 의무를 이행하는 등의 목적으로 자동 로깅된 이벤트의 수집을 비활성화하는 대신 지연하고 싶을 경우도 있습니다. 이 경우에는 최종 사용자에게 동의를 얻은 후 FacebookSDK 클래스의 setAutoLogAppEventsEnabled() 메서드를 호출하고 true로 설정하여 이벤트 로깅을 다시 활성화합니다.
setAutoLogAppEventsEnabled(true);
어떤 이유로든 다시 로깅을 일시 차단하려면 setAutoLogAppEventsEnabled() 메서드를 false로 설정합니다.
setAutoLogAppEventsEnabled(false);
또한 앱 대시보드를 사용해서 자동 앱 내 구매 이벤트 로깅을 비활성화할 수 있습니다. 기본 > 설정의 Android 카드로 이동해서 No로 바꿉니다.
자동 SDK 초기화를 비활성화하려면 다음 내용을 AndroidManifest.xml 파일에 추가합니다.
<application>
...
<meta-data android:name="com.facebook.sdk.AutoInitEnabled"
android:value="false"/>
...
</application>사용자 동의를 얻거나 법적 의무를 이행하는 등의 목적으로 SDK 초기화를 비활성화하는 대신 지연하고 싶을 경우도 있습니다. 이 경우 최종 사용자에게 동의를 얻은 후 setAutoInitEnabled 클래스 메서드를 호출하고 true로 설정하여 SDK를 수동으로 초기화합니다.
FacebookSdk.setAutoInitEnabled(true) FacebookSdk.fullyInitialize()
advertiser-id의 컬렉션을 비활성화하려면 다음 내용을 AndroidManifest.xml 파일에 추가합니다.
<application>
...
<meta-data android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled"
android:value="false"/>
...
</application>사용자 동의를 얻거나 법적 의무를 이행하는 등의 목적으로 advertiser_id의 수집을 비활성화하는 대신 지연하고 싶을 경우도 있습니다. 이 경우 최종 사용자에게 동의를 얻은 후 FacebookSDK 클래스의 setAdvertiserIDCollectionEnabled() 메서드를 호출하고 true로 설정하여 advertiser_id 수집을 다시 활성화합니다.
setAdvertiserIDCollectionEnabled(true);
어떤 이유로든 수집을 일시 차단하려면 setAdvertiserIDCollectionEnabled() 메서드를 false로 설정합니다.
setAdvertiserIDCollectionEnabled(false);
도우미 메서드를 사용하여 AppEventsLogger 개체를 생성하고 이벤트를 로깅합니다. 여기서 this는 메서드가 있는 Activity입니다.
AppEventsLogger logger = AppEventsLogger.newLogger(this);
그런 다음, 이벤트를 logger로 로깅할 수 있습니다. 여기에서 AppEventConstants.EVENT_NAME_X는 표준 이벤트 테이블에 표시된 상수 또는 코드 생성기 코드의 상수입니다.
logger.logEvent(AppEventsConstants.EVENT_NAME_X);
임의 값(예: 가격 또는 수량)을 나타낼 수 있는 임의 수인 Bundle 및 valueToSum 속성에 매개변수 세트도 지정할 수 있습니다. 보고 시 모든 valueToSum 속성은 합산됩니다. 예를 들어 10명의 사용자가 각각 10달러짜리 품목을 하나씩 구매(및 valueToSum으로 전달)하면 100달러로 합산되어 보고됩니다.
Bundle params = new Bundle();
params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT, "[{\"id\": \"1234\", \"quantity\": 2}, {\"id\": \"5678\", \"quantity\": 1}]");
logger.logEvent(AppEventsConstants.EVENT_NAME_PURCHASE,
54.23,
params);
Bundle params = new Bundle();
params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, "HDFU-8452");
logger.logEvent(AppEventsConstants.EVENT_NAME_ADDED_TO_CART,
54.23,
params);맞춤 이벤트를 로깅하려면 이벤트 이름을 문자열로 전달하면 됩니다. 이 함수는 로거가 AppEventsLogger의 인스턴스이고 AppEventsLogger.newLogger() 호출을 사용하여 생성되었다고 가정합니다.
public void logBattleTheMonsterEvent () {
logger.logEvent("BattleTheMonster");
}각 이벤트는 valueToSum 및 매개변수 세트(최대 25개)로 로깅할 수 있습니다. 이는 매개변수 이름과 값이 String 또는 int 키에 보유되는 Bundle을 통해 전달됩니다. 이와 다른 유형의 값(예: boolean)을 전달하면 SDK가 LogginBehavior.APP_EVENT에 대한 경고를 로깅합니다.
일반적으로 표준 이벤트와 사용하는 매개변수는 표준 이벤트 매개변수 참조 가이드를 참조하세요. 그러나 이러한 매개변수는 참고용일 뿐이며, 자체적인 매개변수를 제공할 수도 있습니다.
앱 이벤트를 사용하여 다이내믹 광고 전환을 측정하려면 fb_content_id 매개변수가 관련 다이내믹 광고에서 사용된 제품 ID 값이 되도록 설정하세요.
'이벤트'를 매개변수의 이름으로 사용하지 마세요. '이벤트'라는 이름의 맞춤 매개변수는 로깅되지 않습니다. 다른 이름을 사용하거나 my_custom_event와 같이 접두사 또는 접미사를 이름에 추가하세요.
앱 광고 지원 도구를 사용하면 앱이 Facebook에 이벤트를 보내도록 앱에서 앱 이벤트를 테스트할 수 있습니다.
디버그 로그를 활성화하여 클라이언트 측에서 앱 이벤트 사용을 확인합니다. 디버그 로그에는 자세한 요청과 JSON 응답이 포함되어 있습니다. Android용 Facebook SDK를 초기화한 후 다음과 같은 코드를 추가하여 디버그 로그를 활성화하세요.
FacebookSdk.setIsDebugEnabled(true); FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);
이 작업을 디버깅 목적으로만 수행합니다. 앱을 배포하기 전에 디버그 로그를 비활성화하세요.
앱 이벤트에 대한 자세한 내용과 유용한 힌트는 다음을 참조하세요.
앱 이벤트를 사용하는 방법을 확인할 수 있도록 Facebook에서는 다양한 앱별 예시를 작성했습니다. 각 예시 앱에서는 서로 다른 이벤트의 화면별 분석 데이터와 코드 예시를 제공합니다. 이러한 예시는 앱의 기초 참고 자료로 제공되며 여러분의 필요에 맞게 활용해야 합니다.