이 가이드에서는 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에 의해 처리된 구매가 완료된 경우. 다른 결제 플랫폼을 사용하는 경우 수동으로 구매 이벤트 코드를 추가합니다. 앱 내 구매 로깅은 v4.39를 설치했거나 v4.39로 업그레이드한 앱에서 자동으로 활성화됩니다. 이전 버전에서 실행되는 앱은 앱 대시보드의 기본 > Android 카드 설정에서 앱 내 구매 이벤트를 활성화하거나 구매 이벤트 코드를 수동으로 추가하세요. Android용 SDK는 현재 Google Play Billing 라이브러리 v2 및 v3을 지원합니다. Google Play Billing 라이브러리 v4의 경우 앱 내 구매 이벤트를 수동으로 로깅해야 합니다. |
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달러로 합산되어 보고됩니다.
참고: valueToSum
과 parameters
는 모두 선택 사항입니다.
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
에 대한 경고를 로깅합니다.
일반적으로 표준 이벤트와 사용하는 매개변수는 표준 이벤트 매개변수 참조 가이드를 참조하세요. 그러나 이러한 매개변수는 참고용일 뿐이며, 자체적인 매개변수를 제공할 수도 있습니다. 앱은 인사이트에 대한 분석 데이터를 보고자 하는 매개변수를 로깅해야 합니다.
'이벤트'를 매개변수의 이름으로 사용하지 마세요. '이벤트'라는 이름의 맞춤 매개변수는 로깅되지 않습니다. 다른 이름을 사용하거나 my_custom_event
와 같이 접두사 또는 접미사를 이름에 추가하세요.
앱 광고 지원 도구를 사용하면 앱이 Facebook에 이벤트를 보내도록 앱에서 앱 이벤트를 테스트할 수 있습니다.
디버그 로그를 활성화하여 클라이언트 측에서 앱 이벤트 사용을 확인합니다. 디버그 로그에는 자세한 요청과 JSON 응답이 포함되어 있습니다. Android용 Facebook SDK를 초기화한 후 다음과 같은 코드를 추가하여 디버그 로그를 활성화하세요.
FacebookSdk.setIsDebugEnabled(true); FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);
이 작업을 디버깅 목적으로만 수행합니다. 앱을 배포하기 전에 디버그 로그를 비활성화하세요.
앱 이벤트에 대한 자세한 내용과 유용한 힌트는 다음을 참조하세요.
앱 이벤트를 사용하는 방법을 확인할 수 있도록 Facebook에서는 다양한 앱별 예시를 작성했습니다. 각 예시 앱에서는 서로 다른 이벤트의 화면별 분석 데이터와 코드 예시를 제공합니다. 이러한 예시는 앱의 기초 참고 자료로 제공되며 여러분의 필요에 맞게 활용해야 합니다.