#背景
QiitaにCarthage+GoogleAnalyticsの記事がなかったので、手順をまとめました
#環境
- Xcode 8.3.2
- Swift 3.1
#手順
##Carthageのインストール
Carthageのインストール手順は他の記事を参考にしてください
参考:Carthageについて
##Cartfileの編集とcarthage update
Cartfileの編集
vi Cartfile
Cartfile内に以下の記述を追加
github "akashivskyy/GoogleAnalytics-Framework"
carthageをupdate
carthage update --platform iOS
##Frameworkの追加
- General > Linked Frameworks and Libraries で + を選択
- Add Otherを選択
- Carthage > Build > iOS > GoogleAnalytics.frameworkを選択
- 以下のように追加されていればOK
##Run Scriptの追加
既にCarthageがはいっていればこの操作は必要ありません
- BuildPhasesを開き、+を選択
- New Run Script Phaseを選択
- Run Script Shellに以下を追加
/usr/local/bin/carthage copy-frameworks
Run ScriptのInput Filesに設定
以下を設定
$(SRCROOT)/Carthage/Build/iOS/GoogleAnalytics.framework
以下のようになっていればOK
設定ファイルを取得しプロジェクトにファイルを追加する
- 以下のリンク先の「設定ファイルを取得」ボタンから設定ファイルを作成する
- https://developers.google.com/analytics/devguides/collection/ios/v3/?ver=swift#get-config
- BundleIdや地域などを入力し、GoogleService-Info.plistをダウンロード
- プロジェクトのルートにファイルを追加
スクリーントラッキングやイベントトラッキングを設定
GoogleAnalyticsの初期化設定
AppDelegate.swift
import GoogleAnalytics
AppDelegate.swift
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
}
GATrackingManager.swiftを追加
以下のようなファイルを作成します。
GATrackingManager.swift
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])
}
}
}
スクリーントラッキング
任意のViewController
import UIKit
class ViewController:UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//GAスクリーントラッキング
GATrackingManager.sendScreenTracking(screenName: "画面名")
}
}
イベントトラッキング
@objc func btnTapped(sender:UIButton){
//GAイベントトラッキング
GATrackingManager.sendEventTracking(category: "カテゴリ名", action: "アクション名", label: "ラベル名")
}
##GoogleAnalyticsで確認
GoogleAnalyticsの画面から設定することはありません。楽ちんですね
トラッキングを仕込んだら、イベントが飛んでいるか、確認しましょう。