このドキュメントが更新されました。
日本語への翻訳がまだ完了していません。
英語の最終更新: 8月19日

iOSのアプリイベントスタートガイド

このガイドでは、Facebook SDKを統合してアプリイベントを記録することにより、新規または既存のアプリにアプリイベントを追加する方法について説明します。

Facebook iOS SDKに変更が加えられました。Facebook iOS SDKを新しいバージョンにアップグレードすることをおすすめします。この変更について詳しくは、デバイスの同意の取得に関するセクションをご覧ください。

開始する前に

以下が必要です。

ステップ1: Facebookアプリを構成する

アプリをまだ作成していない場合は、アプリダッシュボードにアクセスし、[マイアプリ]をクリックしてアプリを新規作成します。[設定] > [基本]をクリックしてアプリの詳細パネルを開きます。ここには、アプリIDapp secret、アプリに関するその他の情報が表示されます。

ページの下部までスクロールして[プラットフォームを追加]をクリックします。[iOS]を選択し、アプリの詳細を追加して、変更を保存します。

広告用にアプリを設定するため、以下の詳細を設定します。

  • アプリドメイン - アプリのApple App Store URLを入力します。
  • プライバシーポリシーのURL - プライバシーポリシーのURLを入力します。アプリを公開するには入力必須です。
  • 利用規約のURL - 利用規約のURLを入力します。
  • プラットフォーム - 設定パネルの一番下までスクロールして、iOSプラットフォームを追加します。

アプリにアイコンやカテゴリなどの詳細を追加する方法について詳しくは、アプリ開発のドキュメントを参照してください。

ステップ2: 広告とビジネスポートフォリオをリンクする

広告を掲載して広告マネージャでインストール数を測定するには、1つ以上の広告アカウントと1つのビジネスポートフォリオをアプリに関連付けます。

  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に登録、設定する

アプリのバンドルIDを追加し、シングルサインオンを有効にします。

バンドルIDは、次のボックスに表示されます。ボックスが空白の場合は、Xcodeプロジェクトの[iOS Application Target]でバンドルIDを探し、下のボックスに貼り付けてください。
バンドルID
バンドルIDは、設定ページのiOSセクションで後から変更できます。
シングルサインオンを有効にする
次の[シングルサインオン]を[はい]に設定して、アプリのシングルサインオンを有効にします。
シングルサインオン iOSお知らせから起動します

ステップ5: プロジェクトを構成する

Info.plistファイルに、アプリに関するデータが含まれているXMLスニペットを挿入します。

Facebookログインを統合すると、特定のアプリイベントは、アプリイベントの自動記録を無効にしない限り、イベントマネージャのために自動的に記録、収集されます。これは、アプリコードで変更できます。また、アプリダッシュボードかイベントマネージャの[アプリイベント]の下のトグルで切り替えることもできます。AutoLogAppEventsEnabledのフラグとトグルとの間で値が競合している場合、「Facebook SDKの自動イベント記録」のトグル値が優先されることに注意してください。収集される情報やアプリイベントの自動記録を無効にする方法については、アプリイベントの自動記録をご覧ください。

  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>

Info.plistにキーとしてFacebookAutoLogAppEventsEnabledを追加することで、アプリイベントの自動収集をtrueまたはfalseに直接設定できるようになります。

Mac Catalystアプリでログインが機能するには、プロジェクトにキーチェーン共有機能を含める必要があります。
  1. アプリターゲットを設定する際に、[署名と機能]タブの[+ 機能]ボタンを選択します。
  2. キーチェーン共有機能を見つけて選択します。
  3. ターゲットとしてキーチェーン共有機能がリストされていることを確認します。

ステップ6: アプリデリゲートとシーンデリゲートを接続する

以下のコードで、 AppDelegate.swift 内のコードを置き換えます。このコードは、アプリの起動時にSDKを初期化し、ログインアクションやシェアアクションが実行されたときにネイティブFacebookアプリのログインとシェアリングをSDKが処理できるようにします。このコードを使用しない場合は、ユーザーは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: アプリイベントを追加する

アプリでイベントをトラッキングする方法は3とおりあります。

iOS 14のApp Store Connect

アプリが収集してFacebookに送信するイベントによっては、App Store Connect質問表でそのようなデータタイプを公開するよう求められる場合があります。アプリのプライバシーポリシーでこの点が反映されていることを確認するのは、開発者の責任です。公開する必要があるデータタイプの詳細については、Apple App Storeでのプライバシーに関する詳細情報の記事をご覧ください。

イベントの自動記録

Facebook SDKを使用すると、イベントの自動記録を無効にしない限り、アプリの特定のイベントは自動的に記録、収集され、Facebookイベントマネージャに使用されます。このようなイベントは、ターゲット設定、効果測定、最適化などあらゆるユースケースに関連します。

具体的には、アプリのインストール、アプリの起動、購入という3つの主要イベントが自動で記録されます。自動記録が有効である場合、広告主はこれらのイベントや、ログインインプレッションイベントなどほかのFacebook内部イベントを無効化できます。一方、自動記録を無効にした場合に、インストールや購入などの特定のイベントを記録するには、該当するイベントの記録をアプリ内で手動実装する必要があります。

イベント詳細

アプリのインストール

新しい利用者がアプリを初めてアクティベートしたとき、または特定のデバイスでアプリが初めて起動されたとき。

アプリの起動

利用者がアプリを起動し、Facebook SDKが初期化されてイベントがログに記録されたとき。ただし、最初のアプリの起動イベントから60秒以内に2回目のアプリの起動イベントが発生した場合、2回目のイベントはログ記録されません。

アプリ内購入

Apple App StoreまたはGoogle Playにより処理された購入が完了したとき。ほかの支払いプラットフォームを使用している場合、購入イベントコードを手動で追加する必要があります。

Facebook SDKクラッシュレポート

(Facebookの使用に限定。)

Facebook SDKが原因でアプリがクラッシュした場合、クラッシュレポートが生成されて、アプリの再起動時にFacebookに送られます。このレポートは、ユーザーデータを含んでおらず、FacebookがSDKの品質と安定性を確認する上で役立つものです。このイベントのログ記録をオプトアウトするには、自動でログ記録されるイベントを無効にしてください。

デバイスの同意を取得する

iOS 14.5以降では、isAdvertiserTrackingEnabledを設定し、Facebookとデータを共有するためのデバイスアクセス許可を与えるたびにログ記録する必要があります。

デバイスから同意が取得できたら、Settings.shared.isAdvertiserTrackingEnabled = trueを設定します。

デバイスがトラッキングを許可しなかった場合は、Settings.shared.isAdvertiserTrackingEnabled = falseを設定します。

自動で記録されるイベントを無効にする

イベントの自動記録を無効にするには、アプリケーションのInfo.plistをXcodeでコードとして開き、次の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または数値(IntDoubleなど)のいずれかでなければなりません。

ステップ8: イベントをテストする

アプリ広告ヘルパーを使用すると、アプリのアプリイベントをテストして、アプリがFacebookにイベントを送信していることを確認できます。

  1. [アプリ広告ヘルパー]を開きます。
  2. [アプリを選択]でアプリを選択し、[送信]を選択します。
  3. 下部にまでスクロールし、[イベントのテスト]を選択します。
  4. アプリを起動し、イベントを送信します。イベントがページに表示されるはずです。

SKAdNetworkキャンペーンのイベントの最適化やトラッキングを予定している場合、Facebookがスレッドを正しく受け取れるように、イベントの優先度(コンバージョン値)を適切に設定することも必要になります。詳しくはこちらをご覧ください。

詳細情報

アプリの例

さまざまな種類のアプリの例を示して、アプリイベントの使い方を簡単に理解できるようにします。それぞれのアプリの例では、収集可能なさまざまなイベントとパラメーターを画面ごとに詳細に説明しています。各セクションの終わりには、アプリごとに推奨されるイベントとパラメーターを示す表があります。必要に応じて、独自のイベントとパラメーターを作成することもできます。