앱 이벤트 시작하기(iOS)

이 가이드에서는 Facebook SDK를 통합한 다음 이러한 이벤트를 로깅하여 새로운 앱이나 기존 앱에 앱 이벤트를 추가하는 방법을 설명합니다.

Facebook iOS SDK가 변경되었습니다. 새로운 Facebook iOS SDK 버전으로 업그레이드하는 것이 좋습니다. 이 변경 사항에 대한 자세한 내용은 기기 동의 섹션을 참조하세요.

시작하기 전에

다음과 같은 항목이 필요합니다.

1단계: Facebook 앱 구성하기

앱 대시보드에서 내 앱을 클릭하고 앱이 없다면 새 앱을 만듭니다. 설정 > 기본에서 앱 ID, 앱 시크릿 코드 및 앱에 대한 기타 상세 정보가 있는 앱 상세 정보 패널을 확인합니다.

페이지 하단으로 스크롤한 다음, 플랫폼 추가를 클릭합니다. iOS를 선택하고 앱 상세 정보를 추가한 다음 변경 사항을 저장합니다.

다음 상세 정보를 추가해 광고에 맞게 앱을 설정하세요.

  • 앱 도메인 - 앱의 Apple App Store URL을 제공합니다.
  • 개인정보처리방침 URL - 개인정보처리방침 URL을 제공합니다. 앱을 전체 공개하려면 필수입니다.
  • 서비스 약관 URL - 서비스 약관 URL을 제공합니다.
  • 플랫폼 - 설정 패널의 하단으로 스크롤하여 iOS 플랫폼을 추가합니다.

아이콘 또는 카테고리와 같은 자세한 정보를 앱에 추가하는 방법은 앱 개발 문서를 참조하세요.

2단계: 광고와 비즈니스 계정 연결

광고를 게재하고 광고 관리자에서 설치를 측정하려면 하나 이상의 광고 계정과 하나의 비즈니스 계정을 앱과 연결합니다.

  1. 앱 대시보드에서 설정 > 고급을 클릭합니다.
  2. 승인된 광고 계정 ID에 광고 계정 ID를 추가합니다. 광고 계정 ID는 광고 관리자에서 가져올 수 있습니다.
  3. 광고 계정 패널에서 시작하기를 클릭하고 지침에 따라 앱과 비즈니스를 연결합니다.

3단계: 개발 환경 설정

다음 절차에서는 Swift Package Manager를 사용하여 XCode에서 개발 환경을 설정합니다.

  1. Xcode에서 파일 > 패키지 추가...를 클릭합니다.
  2. 표시되는 검색 필드에서 저장소 URL(https://github.com/facebook/facebook-ios-sdk)을 입력합니다.
  3. 종속성 규칙에서 다음 주 버전까지를 선택하고 최신 버전을 입력합니다. 최신 릴리스는 https://github.com/facebook/facebook-ios-sdk/releases/에 나와 있습니다.
  4. 사용하려는 라이브러리와 해당 라이브러리를 추가할 타겟을 선택합니다.
  5. 패키지 추가를 클릭하여 설정을 완료합니다.

4단계: Facebook에 앱 등록 및 구성

번들 식별자를 추가하고 앱의 SSO를 활성화합니다.

번들 식별자(번들 ID)는 아래의 상자에 표시됩니다. 상자가 비어 있다면 Xcode 프로젝트의 iOS 앱 타겟에서 번들 식별자를 찾아 아래 상자에 붙여넣으세요.
번들 ID
나중에 설정 페이지의 iOS 섹션을 통해 번들 식별자를 변경할 수 있습니다.
SSO(Single Sign On) 활성화
아래에서 SSO를 '예'로 설정하여 앱에서 SSO를 활성화하세요.
SSO iOS 알림에서 실행됩니다

5단계: 프로젝트 구성

앱에 대한 데이터가 포함된 XML 픽셀 코드로 Info.plist 파일을 구성하세요.

Facebook 로그인을 통합하고 나서 특정 앱 이벤트가 이벤트 관리자에 대해 자동으로 로깅 및 수집됩니다. 단, 자동 앱 이벤트 로깅을 비활성화한 경우는 예외입니다. 수집되는 정보 및 자동 앱 이벤트 로깅을 비활성화하는 방법에 대한 자세한 내용은 자동 앱 이벤트 로깅을 참조하세요.

  1. Info.plist를 마우스 오른쪽 버튼으로 클릭하고 소스 코드로 열기를 선택합니다.
  2. 다음 XML 픽셀 코드를 복사하여 파일의 본문(<dict>...</dict>)에 붙여넣습니다.
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>fbAPP-ID</string>
      </array>
      </dict>
    </array>
    <key>FacebookAppID</key>
    <string>APP-ID</string>
    <key>FacebookClientToken</key>
    <string>CLIENT-TOKEN</string>
    <key>FacebookDisplayName</key>
    <string>APP-NAME</string>
  3. [CFBundleURLSchemes] 키의 <array><string>에서 APP-ID를 앱 ID로 대체합니다.
  4. FacebookAppID 키의 <string>에서 APP-ID를 앱 ID로 대체합니다.
  5. FacebookClientToken 키의 <string>에서 CLIENT-TOKEN을 앱 대시보드의 설정 > 고급 > 클라이언트 토큰에 나와 있는 값으로 대체합니다.
  6. FacebookDisplayName 키의 <string>에서 APP-NAME을 앱 이름으로 대체합니다.
  7. Facebook 앱으로 앱 전환을 수행할 수 있는 Facebook 대화 상자(예: 로그인, 공유, 앱 초대 등)를 사용하려면 앱의 Info.plist에 다음 항목도 포함해야 합니다.
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

FacebookAutoLogAppEventsEnabledInfo.plist에서 키로 추가하면 앱 이벤트의 자동 수집을 'true' 또는 'false'로 직접 설정할 수 있습니다.

Mac Catalyst 앱에서 로그인이 작동하려면 프로젝트에 키체인 공유 기능을 포함해야 합니다.
  1. 앱 타겟을 구성할 때 서명 및 기능 탭에서 + 기능 버튼을 선택합니다.
  2. 키체인 공유 기능을 찾아서 선택합니다.
  3. 키체인 공유 기능이 타겟에 대해 등록되어 있는지 확인합니다.

6단계: 앱 델리게이트와 장면 델리게이트 연결

다음 코드를 사용하여 AppDelegate.swift 메서드의 코드를 대체합니다. 이 코드는 앱이 시작될 때 SDK를 초기화하며, 로그인이나 공유 작업을 수행할 때 SDK가 Facebook 네이티브 앱의 로그인과 공유를 처리하도록 합니다. 그렇지 않으면 사용자가 Facebook에 로그인한 상태에서만 앱 내 브라우저를 통해 로그인할 수 있습니다.
    
// AppDelegate.swift
import UIKit
import FacebookCore

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {    
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {          
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )

        return true
    }
          
    func application(
        _ app: UIApplication,
        open url: URL,
        options: [UIApplication.OpenURLOptionsKey : Any] = [:]
    ) -> Bool {
        ApplicationDelegate.shared.application(
            app,
            open: url,
            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
            annotation: options[UIApplication.OpenURLOptionsKey.annotation]
        )
    }  
}

iOS 13은 URL을 여는 기능을 SceneDelegate로 이동했습니다. iOS 13을 사용하는 경우 다음의 메서드를 SceneDelegate 에 추가하여 로그인이나 공유 등의 기능이 의도한 대로 작동하도록 하세요.
// SceneDelegate.swift
import FacebookCore
  ...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    guard let url = URLContexts.first?.url else {
        return
    }

    ApplicationDelegate.shared.application(
        UIApplication.shared,
        open: url,
        sourceApplication: nil,
        annotation: [UIApplication.OpenURLOptionsKey.annotation]
    )
}

7단계: 앱 이벤트 추가

앱에서 이벤트를 추적하는 방법은 세 가지가 있습니다.

iOS 14용 App Store Connect

앱이 수집하여 Facebook에 보내는 이벤트는 App Store Connect 질문에 이러한 데이터 유형을 공개해야 할 수 있습니다. 여러분은 앱의 개인정보처리방침에 해당 내용을 반영해야 할 책임이 있습니다. 공개해야 할 데이터 유형에 대해 자세히 알아보려면 Apple App Store 개인정보처리방침 상세 정보 문서를 참조하세요.

자동 로깅된 이벤트

Facebook SDK를 사용할 때 자동 이벤트 로깅을 비활성화하지 않으면 Facebook 이벤트 관리자를 위해 특정 앱 이벤트가 자동으로 기록되고 수집됩니다. 이러한 이벤트는 타게팅, 성과 측정, 최적화 등 모든 사용 사례와 밀접한 관련이 있으며,

자동 앱 이벤트 로깅의 일환으로 3가지 주요 이벤트인 앱 설치, 앱 실행과 구매 이벤트가 수집됩니다. 자동 로깅이 활성화되어 있으면 광고주는 로그인 노출 이벤트 등의 다른 Facebook 내부 이벤트 외에 이러한 이벤트도 비활성화할 수 있습니다. 그러나 자동 로깅을 비활성화했지만 특정 이벤트(예: 설치 또는 구매 이벤트)를 로깅하고 싶다면 앱에서 해당 이벤트에 대한 로깅을 수동으로 구현합니다.

이벤트상세 정보

앱 설치

새 사용자가 처음으로 앱을 활성화하거나 앱이 특정 기기에서 처음으로 시작된 경우.

앱 실행

사용자가 앱을 실행하면 Facebook SDK가 초기화되고 이벤트가 로깅됩니다. 그러나 첫 번째 앱 실행 이벤트 이후로 60초 이내에 두 번째로 앱 실행 이벤트가 발생하면 두 번째 이벤트가 로깅되지 않습니다.

앱 내 구매

Apple App Store 또는 Google Play에 의해 처리된 구매가 완료된 경우. 다른 결제 플랫폼을 사용하는 경우 수동으로 구매 이벤트 코드를 추가해야 합니다.

Facebook SDK 충돌 보고서

(Facebook 전용)

Facebook SDK로 인해 앱이 충돌할 경우 충돌 보고서가 생성되고 앱이 다시 시작되었을 때 Facebook으로 전송됩니다. 이 보고서에는 사용자 데이터가 포함되지 않으며 Facebook이 SDK의 품질과 안정성을 보장하는 데 도움이 됩니다. 이 이벤트 로깅을 옵트아웃하려면 자동 로깅된 이벤트를 비활성화하세요.

기기 동의받기

iOS 14.5부터 AdvertiserTrackingEnabled를 설정하고 Facebook과 데이터를 공유할 권한을 기기에 부여할 때마다 로깅해야 합니다.

기기에서 동의를 제공할 경우 Settings.shared.isAdvertiserTrackingEnabled = true를 설정합니다.

기기에서 추적을 허용하지 않을 경우 Settings.shared.isAdvertiserTrackingEnabled = false를 설정합니다.

자동 로깅된 이벤트 비활성화

자동 이벤트 로깅을 비활성화하려면 Xcode에서 앱의 .plist를 코드로 열고 다음 XML을 자산 사전에 추가합니다.

<key>FacebookAutoLogAppEventsEnabled</key>
<false/>

사용자 동의를 얻거나 법적 의무를 이행하는 등의 목적으로 자동 로깅된 이벤트의 수집을 비활성화하는 대신 지연하고 싶을 경우도 있습니다. 이 경우 최종 사용자에게 동의를 받은 후 Settings.shared.isAutoLogAppEventsEnabled = true를 설정하여 자동 로깅을 다시 활성화합니다.

어떤 이유로든 다시 수집 작업을 일시 차단하려면 Settings.shared.isAutoLogAppEventsEnabled = false로 설정합니다.

또한 앱 대시보드를 사용하여 자동 앱 내 구매 이벤트 로깅을 비활성화할 수 있습니다. 기본>설정iOS 카드로 이동하여 No로 바꿉니다.

광고주 ID 수집 비활성화

advertiser-id 수집을 비활성화하려면 앱의 .plist를 Xcode에서 코드로 열고 다음 XML을 자산 사전에 추가합니다.

<key>FacebookAdvertiserIDCollectionEnabled</key>
<false/>

사용자 동의를 얻거나 법적 의무를 이행하는 등의 목적으로 advertiser_id의 수집을 비활성화하는 대신 지연하고 싶을 경우도 있습니다. 이 경우 최종 사용자에게 동의를 받은 후 Settings.shared.isAdvertiserIDCollectionEnabled = true로 설정합니다.

어떤 이유로든 수집 작업을 일시 차단하려면 Settings.shared.isAdvertiserIDCollectionEnabled = false를 설정합니다.

이벤트 수동 로깅

맞춤 이벤트를 로깅하려면 이벤트 이름을 AppEvents.Name으로 전달하세요.

AppEvents.shared.logEvent(AppEvents.Name("battledAnOrc"))

이벤트 매개변수

Facebook에서는 표준 이벤트 또는 맞춤 이벤트를 포함하는 데 유용한 이벤트 매개변수 세트를 만들었습니다. 개발자가 직접 매개변수를 제공할 수도 있습니다.

이와 같이 미리 정의된 매개변수는 공통적인 로깅 패턴에 대한 지침을 제공하며 보고서와 기타 UI에서 더욱 읽기 쉽게 표시될 수 있습니다. 분석 데이터를 보고 싶은 매개변수 세트를 로깅하세요. 이러한 매개변수에 대한 권장 설명은 지침용으로만 제공됩니다. 이러한 매개변수를 앱에 적절한 용도로 사용할 수 있습니다.

매개변수는 사전을 통해 전달되며, 여기서 키는 매개변수 이름을 AppEvents.ParameterName으로 유지하고 값은 String 또는 숫자(예: Int, Double)여야 합니다.

8단계: 이벤트 테스트

앱 광고 지원 도구를 사용하면 앱이 Facebook에 이벤트를 보내도록 앱에서 앱 이벤트를 테스트할 수 있습니다.

  1. 앱 광고 지원 도구를 엽니다.
  2. 앱 선택에서 앱을 선택한 후 제출을 선택합니다.
  3. 하단으로 스크롤하여 이벤트 테스트를 선택합니다.
  4. 앱을 시작한 후 이벤트를 보냅니다. 그러면 이벤트가 페이지에 표시됩니다.

SKAdNetwork 캠페인에서 이벤트를 최적화/추적할 계획이라면 이벤트 우선순위(전환값이라고도 함)도 적절히 구성해야 Facebook이 전환을 올바르게 수신할 수 있습니다. 자세한 내용은 여기를 참조하세요.

더 알아보기

예시 앱

앱 이벤트를 사용하는 방법을 더 쉽게 확인할 수 있도록 Facebook에서는 다양한 앱별 예시를 작성했습니다. 각 예시 앱에서는 수집할 수 있는 여러 다른 이벤트와 매개변수의 화면별 분석 데이터를 제공합니다. 각 섹션의 끝에는 각 앱의 권장 이벤트와 매개변수가 나열된 표가 있습니다. 필요에 따라 고유 이벤트와 매개변수를 만들 수 있습니다.