[iOS] Firebase Analyticsを追加する方法

# はじめに
iOSアプリにFirebase Analyticsを追加したので簡単にまとめました。


# 内容
以下のステップでサクッと導入していきたいと思います。

### 1. Firebaseプロジェクトの作成

https://console.firebase.google.com/?hl=ja

Firebaseコンソールにアクセスして、新しいプロジェクトを作成します。プロジェクト名を入力し、作成ボタンをクリックします。
<img width="300" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631585/0a7fc271-adb1-f468-1e95-a6a9e4d62b9f.png">

以降基本はインストラクション通り（設定ファイルのダウンロードなど）にやっていく


### 2. Firebase SDKのインストール
Swift Package Managerを使ってインストールします。

- Xcode でアプリのプロジェクトを開いた状態で、[File（ファイル）] > [Add Packages（パッケージの追加）] の順に移動
- プロンプトが表示されたら、次の Firebase iOS SDK リポジトリ URL を入力
`https://github.com/firebase/firebase-ios-sdk`


今回はIDFA収集機能が必要ないので　`FirebaseAnalyticsWithoutAdId`にします
> FirebaseAnalytics を追加してください。アナリティクスに IDFA 収集機能が必要ない場合は、代わりに FirebaseAnalyticsWithoutAdId を追加してください。


<img width="400" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631585/2b3b7317-6698-6100-6e61-a04613b4856c.png">

ちなみにIDFAとは
>IDFA (Identifier for Advertisers) は、Appleがユーザーの端末にランダムに割り当てるデバイスIDです。広告主はこのIDを使ってユーザーの広告エンゲージメント 、アプリ内のユーザー行動を計測することで、カスタマイズした広告を配信することができます。IDFAは（個人情報を明らかにすることなく）ユーザーの計測と識別に使用されます。
集約データは、ユーザーが行ったアプリ内イベントを特定するのに使用されます。IDFAを使ってユーザーの広告キャンペーンへのエンゲージメントを分析し、特定のユーザーが支払いやアトリビューションを目的として広告をクリックしたかどうかを確認できます。

##### Firebaseの初期化コードの追加

```diff_swift: AppDelegate
import UIKit
+ import FirebaseCore


@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?

  func application(_ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions:
      [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
+    FirebaseApp.configure()

    return true
  }
}
```

これで完了

<img width="400" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631585/0051ffde-23bf-e2de-4a92-f5a327c49e23.png">

### 3. Firebase Analyticsの設定
Google アナリティクスは、アプリの使用状況や動作に関するデータを収集します。この SDK は主に次の 2 種類の情報を記録します。
- イベント: ユーザーの操作、システム イベント、エラーなど、アプリで起こっていること
- ユーザー プロパティ: 言語や地理的位置など、ユーザー層を示す属性。自由に定義できます

Analyticsのトラッキングを開始するための手順に従って、アプリ内で必要なコードを実装します

##### イベント
https://firebase.google.com/docs/analytics/events?hl=ja&authuser=0&platform=ios#log_events_4

いくつか実装方法ありますが、今回はカスタムイベントを選択してアプリの起動部分を追加していこうと思います。

イベント名とパラメーターは好きにカスタマイズしてイベントログを取得するようにします

```swift
Analytics.logEvent("share_image", parameters: [
  "name": name as NSObject,
  "full_text": text as NSObject,
])
```

##### ユーザー プロパティ
https://firebase.google.com/docs/analytics/user-properties?hl=ja&authuser=0&platform=ios

注意点
- ユーザープロパティの設定はプロジェクトごとに最大25個まで
- ユーザープロパティ名では大文字と小文字が区別される
- Age、Gender、Interestは予約されているため使用できない

プロパティー名と値を設定しておく
```swift
Analytics.setUserProperty(food, forName: "favorite_food")
```

##### その他スクリーンを自動的に追跡

https://firebase.google.com/docs/analytics/screenviews?hl=ja&authuser=0#automatically_track_screens

これは自動的にログを取得してくれるようなので設定は不要です（カスタマイズしないなら）

> アナリティクスは、現在フォーカスされている UIViewController または Activity のクラス名など、アプリケーション内のスクリーンに関する一部の情報を自動的に追跡します。スクリーンの遷移が発生すると、新しいスクリーンを識別する screen_view イベントがロギングされます。


### 4. アプリのビルドとテスト
iOSアプリをビルドして、Firebase Analyticsが正しく設定されているかどうかをテストします。

https://firebase.google.com/docs/analytics/debugview?hl=ja&authuser=0

Edit Schemeから
<img width="400" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631585/32219037-a433-b8a7-77bc-0bdf01887093.png">

`-FIRDebugEnabled`を追加することで

<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631585/d59f033c-f327-4743-98c4-daeab0554d13.png">

コンソールのDebugViewからイベントが送られていることが確認できます
DebugViewは分析タブから確認できます
<img width="200" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631585/27ccde15-87e0-a582-60bd-8f8037a7a917.png">
<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/631585/87226a7d-7e82-c763-935f-7a0d26e04ffa.png">

これで設定完了🎉

# おわりに
インストラクション通りにやりサクッと簡単にできました🙌
リリースしてデータ分析少しずつやっていきたいと思います。


# 参考

https://dev.classmethod.jp/articles/ios-disable-firebase-analytics-idfa-collection/

https://firebase.google.com/docs/analytics/get-started?platform=ios&authuser=0&hl=ja

https://qiita.com/donuzium/items/cec53c07c2a69600fd90