実施前提
・FirebaseをAppleプロジェクトに追加済みであること
https://firebase.google.com/docs/ios/setup?hl=ja
・Firebaseのデフォルトのイベントでは足りず、カスタムしたイベントをロギングしたい方向け
目次
1.Firebaseでカスタム定義の設定
2.Appleプロジェクトにコード実装
3.Firebase DebugViewで確認する
1. Firebaseでカスタム定義の設定
-
Firebase -> 使ってみる ->プロジェクトを追加
https://firebase.google.com/?hl=ja -
Firebase Console -> Custom Difinitionsを開く
-
カスタムディメンションを作成を押下
-
ディメンション名:任意
-
範囲 ユーザーの場合:ユーザープロパティ ユーザの属性変更のタイミングで設定して以後のイベントで保持される項目に使用する。
-
範囲 イベントの場合:イベントパラメータでNSDictionaryのキーに設定する名称を記載 イベント毎に別個になる項目に使用する。
※イベント名は32文字以内のため注意
※カスタム定義が不要になった場合、カスタム定義一覧の「︙」から「アーカイブ」を選択で非表示になる
再設定するまで使われない
2. Appleプロジェクトにコード実装
①import文を追加
@import FirebaseAnalytics;
②ユーザープロパティまたはイベントパラメーターを実装
【ユーザープロパティ:Firebaseカスタム定義で「範囲 ユーザー」で設定した場合】
https://firebase.google.com/docs/analytics/user-properties?hl=ja&platform=ios#swift
- setUserProperty() メソッドを使用して、アプリのユーザー プロパティを設定する
例) Swift
food:設定する値が入っている変数
favorite_food:カスタム定義したユーザープロパティ
Analytics.setUserProperty(food, forName: "favorite_food")
例)Objective-C
[FIRAnalytics setUserPropertyString:food forName:@"favorite_food"];
【イベントパラメーター:Firebaseカスタム定義で「範囲 イベント」で設定した場合】
- https://firebase.google.com/docs/analytics/events?hl=ja&platform=ios
- logEvent() メソッドを使ってイベントをロギングする
例) Swift
Analytics.logEvent(AnalyticsEventSelectContent, parameters: [
AnalyticsParameterItemID: "id-\(title!)",
AnalyticsParameterItemName: title!,
AnalyticsParameterContentType: "cont",])
例)Objective-C
kFIREventSelectContent:カスタムログイベント名
parameters:@{@"パラメーター(NSDictionary)値" : @"カスタム定義したイベントパラメーター"}];
[FIRAnalytics logEventWithName:kFIREventSelectContent
parameters:@{
kFIRParameterItemID:[NSString stringWithFormat:@"id-%@", self.title],
kFIRParameterItemName:self.title,
kFIRParameterContentType:@"image"
}];
※NSDictionayはキー/値にnilが入るとアプリがクラッシュする可能性があるため、回避策として事前にnil判定を入れた変数を作成しておくと良い。
https://developer.apple.com/documentation/foundation/nsdictionary
例)
//FirebaseEvent Test
NSDateFormatter *df =[[NSDateFormatter alloc] init];
df.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[df setDateFormat:@"yyyyMMddHHmmss"];
NSDate *now = [NSDate date];
NSString *strNow = now != nil ? [df stringFromDate:now] : @"nil";
[FIRAnalytics logEventWithName:@"Login_button" parameters:@{ @"DateAndTime" : strNow }];
3. Firebase DebugViewで確認する
- Firebaseコンソール -> 分析 -> Debug
端末でアプリを操作し、実装したカスタムイベントが表示されることを確認する