このガイドでは、Facebook SDKを統合してアプリイベントを記録することにより、新規または既存のアプリにアプリイベントを追加する方法について説明します。
Facebook iOS SDKに変更が加えられました。Facebook iOS SDKを新しいバージョンにアップグレードすることをおすすめします。この変更について詳しくは、デバイスの同意の取得に関するセクションをご覧ください。
アプリをまだ作成していない場合は、アプリダッシュボードにアクセスし、[マイアプリ]をクリックしてアプリを新規作成します。[設定] > [基本]をクリックしてアプリの詳細パネルを開きます。ここには、アプリID、app secret、アプリに関するその他の情報が表示されます。
ページの下部までスクロールして[プラットフォームを追加]をクリックします。[iOS]を選択し、アプリの詳細を追加して、変更を保存します。
広告用にアプリを設定するため、以下の詳細を設定します。
アプリにアイコンやカテゴリなどの詳細を追加する方法について詳しくは、アプリ開発のドキュメントを参照してください。
広告を掲載して広告マネージャでインストール数を測定するには、1つ以上の広告アカウントと1つのビジネスポートフォリオをアプリに関連付けます。
以下の手順では、Swift Package Managerを使用してXcodeの開発環境を設定します。
アプリのバンドルIDを追加し、シングルサインオンを有効にします。
シングルサインオン iOSお知らせから起動します |
Info.plist
ファイルに、アプリに関するデータが含まれているXMLスニペットを挿入します。 Facebookログインを統合すると、特定のアプリイベントは、アプリイベントの自動記録を無効にしない限り、イベントマネージャのために自動的に記録、収集されます。これは、アプリコードで変更できます。また、アプリダッシュボードかイベントマネージャの[アプリイベント]の下のトグルで切り替えることもできます。AutoLogAppEventsEnabled
のフラグとトグルとの間で値が競合している場合、「Facebook SDKの自動イベント記録」のトグル値が優先されることに注意してください。収集される情報やアプリイベントの自動記録を無効にする方法については、アプリイベントの自動記録をご覧ください。
Info.plist
を右クリックし、[プログラムで開く]▸[ソースコード]を選択します。 <dict>...</dict>
)に貼り付けます。 [CFBundleURLSchemes]
の<array><string>
にあるAPP-IDは、自身のアプリIDに置き換えてください。FacebookAppID
の<string>
にあるAPP-IDは、自身のアプリIDに置き換えてください。FacebookClientToken
の<string>
にあるCLIENT-TOKENは、アプリダッシュボードの[設定 > 高度 > クライアントトークン]にある値に置き換えてください。FacebookDisplayName
の<string>
にあるAPP-NAMEは、実際のアプリ名に置き換えてください。Info.plist
に以下を含める必要があります。 Info.plist
にキーとしてFacebookAutoLogAppEventsEnabled
を追加することで、アプリイベントの自動収集をtrueまたはfalseに直接設定できるようになります。
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] ) } }
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] ) }
アプリでイベントをトラッキングする方法は3とおりあります。
アプリが収集して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]に切り替えます。
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
など)のいずれかでなければなりません。
アプリ広告ヘルパーを使用すると、アプリのアプリイベントをテストして、アプリがFacebookにイベントを送信していることを確認できます。
SKAdNetworkキャンペーンのイベントの最適化やトラッキングを予定している場合、Facebookがスレッドを正しく受け取れるように、イベントの優先度(コンバージョン値)を適切に設定することも必要になります。詳しくはこちらをご覧ください。
さまざまな種類のアプリの例を示して、アプリイベントの使い方を簡単に理解できるようにします。それぞれのアプリの例では、収集可能なさまざまなイベントとパラメーターを画面ごとに詳細に説明しています。各セクションの終わりには、アプリごとに推奨されるイベントとパラメーターを示す表があります。必要に応じて、独自のイベントとパラメーターを作成することもできます。