どうも。Reoです。 プロジェクトにGoogleAnalyticsを導入してよって頼まれたので、導入していこうと思うのですが、ググってみてもCocoaPodsでやっている記事ばかりなので、ついでにCarthageでの導入記事を書いていこうと思います。
Carthageの入れ方は割愛させていただきます。入れるときはこちらを参考にした気がします。 [Swift] CocoaPodsの代わりにCarthageを使って、RealmやReactiveCocoaなどを入れてみた。
GoogleAnalyticsをプロジェクトに導入しよう!
まずはGitHubより、GoogleAnalytics-Frameworkをインストールさせていただきます。 akashivskyy/GoogleAnalytics-Framework
既にCarthageがインストールされている前提で話を進めさせていただきますね。
vi Cartfile
または何かテキストエディタでプロジェクト内のCartifileを開いてその中に
github "akashivskyy/GoogleAnalytics-Framework"
と書いて保存。
そしてターミナルでcarthage updateをします。
carthage update --platform iOS
これが少し時間かかりますが、のんびり待ちます。
インストールが完了したらframeworkを
+を押して、AddOtherより
上記画像のように入ってればおkです。
次に
RunScriptのShellの下のところに
/usr/local/bin/carthage copy-frameworks
と追加し、さらにその下のInputFilesのところに
$(SRCROOT)/Carthage/Build/iOS/GoogleAnalytics.framework
と追加。
次は「iOS アプリにアナリティクスを追加する | iOS 向けアナリティクス | Google Developers」に従っていきます。
まずは
取得はアプリ名だったりBundleIDだったりを言われた通りに記入していけばおkのはずです。
無事取得できたらプロジェクトにぶち込みます。
これで導入はおkのはずですー!
GoogleAnalyticsの設定をしよう
ここからは「Swift環境でGoogleAnalyticsを設定する - Qiita」の記事を参考にさせていただきました。
コードはちょろっとだけSwift4に対応しているぐらいの違いです。。
アプリからアナリティクスにデータを送信できるようにするために、AppDelegate内にごにょごにょ書いていきます。
まずはAppDelegateでGoogleAnalyticsのフレームワークを使えるように
import GoogleAnalytics
を書いておきます。
そいでapplication(_:didFinishLaunchingWithOptions:)内に以下のように書きます。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// GoogleAnalyticsの設定
if let gai = GAI.sharedInstance() {
gai.trackUncaughtExceptions = true
if let path = Bundle.main.path(forResource: "GoogleService-Info", ofType: "plist") {
if let propertyList = NSDictionary(contentsOfFile: path) as? [String: AnyObject] {
let trackingID = propertyList["TRACKING_ID"] as! String
gai.tracker(withTrackingId: trackingID)
}
}
}
return true
}
これで初期化処理はおkです。
実際にトラッキングできる設定を、新しくファイルを作って書いていきます。
適当に「GATrackingManager.swift」というファイルを作ります。
GATrackingManager.swiftの中にGATrackingManagerというクラスを作って以下のように書きます。
import GoogleAnalytics
class GATrackingManager {
//スクリーントラッキング
class func sendScreenTracking(screenName: String) {
if let tracker = GAI.sharedInstance().defaultTracker {
tracker.set(kGAIScreenName, value: screenName)
tracker.send(GAIDictionaryBuilder.createScreenView().build() as [NSObject: AnyObject])
tracker.set(kGAIScreenName, value: nil)
}
}
//イベントトラッキング
class func sendEventTracking(category: String, action: String, label: String) {
if let tracker = GAI.sharedInstance().defaultTracker {
tracker.send(GAIDictionaryBuilder.createEvent(withCategory: category, action: action, label: label, value: nil).build() as [NSObject: AnyObject])
}
}
}
これであとは使いたいところに書くだけ!!!
スクリーントラッキング
スクリーントラッキングは画面が表示されたときにスクリーンの名前をアナリティクスに送信します。
先ほど作ったクラスの関数を使います。
import UIKit
class ViewController:UIViewController {
/** ~~ **/
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//GAスクリーントラッキング
GATrackingManager.sendScreenTracking(screenName: "画面名")
}
}
これを書いておくと、viewWillAppear(_:)が呼ばれるたびに画面名がGoogleAnalyticsに送信されます。
この送信された情報は、「GoogleAnalytics」を開いて、
すぐには反映されませんが、気長に待ちましょう。
イベントトラッキング
ユーザから何かアクションがあった際に情報を送信します。
例えばボタン押した時や、検索機能があれば検索ワードを送信する時等に書けばいいんじゃないかなと思います。
@objc func btnTapped(sender:UIButton){
//GoogleAnalytics送信
GATrackingManager.sendEventTracking(category: "カテゴリ名", action: "アクション名", label: "ラベル名")
}
イベントトラッキングで送信された情報は、「GoogleAnalytics」を開いて、
このカテゴリ名・アクション名・ラベル名はカテゴリ名 > アクション名 > ラベル名といった感じっぽいです。
どう使い分けするかはあなた次第(σ・∀・)σ
通常レポートだと反映されるのに時間がかかるので、とりあえず上手く行ってるかどうかはリアルタイムで確認しましょう!(ようやくリアルタイムに気づく・・・)
スクリーンショット貼ってたんですが、規約的によろしくないっぽいので外しました。
統計っていうかメニューのスクリーンショットとかなんだけどCHICKENなので。何かあったら嫌なのでわかりづらいですがお許しを〜〜。
ということで実際に導入がてら書いてみました。
自分のアプリには全然統計系は導入してないので、入れてみても良いかもなーって気持ちになりました。そんな難しいもんでもないし。面倒っちゃ面倒だけど。
それではでは〜
参考リンク
Additional Notes追記
1週間に1回統計見ればいい方・・・
コメントはありません。
現在コメントフォームは工事中です。