iOS版GoogleAnalyticsを利用
iOSアプリで簡単にトラッキングを行おうと考えた時に利用するツールの選択肢の一つとして、GoogleAnalyticsがある。その導入時のメモ。
環境
- Xcode7.2
- GoogleAnalytics (iOS) v3.14.0
導入
インストール
CocoaPodsに対応しているので、そちらを利用する。
アナリティクスに限らず、GoogleのiOS版SDKはCocoaPodsに対応しているようだ。
Install a Google SDK using CocoaPods | Google APIs for iOS | Google Developers
Podfile
に記述。
platform :ios, '8.0'
use_frameworks!
pod 'GoogleAnalytics'
pod install
してビルド、import GoogleAnalytics
して使おうと思ったらうまく呼び出せず。。原因が解明できなかったので、Bridging-Header を作成して対応。
#ifndef App_Bridging_Header_h
#define App_Bridging_Header_h
#import <GoogleAnalytics/GAI.h>
#import <GoogleAnalytics/GAIFields.h>
#import <GoogleAnalytics/GAILogger.h>
#import <GoogleAnalytics/GAITracker.h>
#import <GoogleAnalytics/GAIDictionaryBuilder.h>
#endif /* App_Bridging_Header_h */
とりあえずこれでG/Aのライブラリを呼び出せるようになった。
設定ファイルの取得
↑上記URLの記載に従い、設定ファイルを取得。前もって、GoogleAnalytics上でのプロジェクトを作成しておく。
情報を入力すると、GoogleService-Info.plist
というplistがDLできるので、それをXcodeでプロジェクトに追加しておく。いくつかキーが記載されているが、その中の TRACKING_ID というキーには、アナリティクス上でのID (UA-xxxxxxxx-1 みたいなやつ)が格納されているのが分かる。
利用
初期化
まずはアプリ内でGoogleAnalticsを利用できるよう、AppDelegate.swift
で初期化設定。
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// G/A初期設定
let gai = GAI.sharedInstance()
gai.trackUncaughtExceptions = true
if let path = NSBundle.mainBundle().pathForResource("GoogleService-Info", ofType: "plist") {
if let propertyList = NSDictionary(contentsOfFile: path) as? [String: AnyObject] {
let trackingId = propertyList["TRACKING_ID"] as! String
gai.trackerWithTrackingId(trackingId)
}
}
(略)
}
end
基本的にはGAI
というシングルトンを利用して実装していく。
trackUncaughtExceptions
をtrue
にしておくことで、補足できなかった例外(主にクラッシュ)をアナリティクスに送信することができる。
さらに、先ほどのplistファイルからトラッキングIDを読み込み、トラッカーに設定。これでアプリ内の各viewからアナリティクスにデータを送信する準備が整った。
トラッキング
GATrackingManager
というクラスを作成し、GoogleAnalyticsでアプリ内の遷移を実際にトラッキングできるようにしてみる。
import Foundation
class GATrackingManager {
class func sendScreenTracking(screenName: String) {
let tracker = GAI.sharedInstance().defaultTracker
tracker.set(kGAIScreenName, value: screenName)
tracker.send(GAIDictionaryBuilder.createScreenView().build() as [NSObject: AnyObject])
tracker.set(kGAIScreenName, value: nil)
}
}
引数にスクリーン名(どのviewか識別するための名前)をセットして利用。
スクリーン名をset
メソッドで指定、send
メソッドでデータ送信ということをしているだけ。GAI
はシングルトンなので、最後にセット済のスクリーン名をnil
に戻している。
このクラスメソッドを、以下の例のように各ViewControllerで呼び出すことで、Google Analyticsにデータが送信される。
import UIKit
class ViewController: UIViewController {
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
GATrackingManager.sendScreenTracking("スクリーン名")
}
end
実装にミスがなければ、Google Analyticsのサイトでデータが送信されていることが確認できる。
以上でメモ終わり。簡単なトラッキングをするだけなら非常に楽だった。
Author And Source
この問題について(iOS版GoogleAnalyticsを利用), 我々は、より多くの情報をここで見つけました https://qiita.com/ysk_1031/items/245ff929ea76f0eda11d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .