2014年10月28日 星期二

IOS with Swift + Google Analytics

使用swift建立的專案加入Google Analytics

這篇是官網的介紹:
https://developers.google.com/analytics/devguides/collection/ios/v3/

做完後我發現不能用,有些問題產生,因此我將自己成功的方式記錄下來


首先申請Google Analytic的使用:
http://www.google.com/intl/zh-TW/analytics/



如果已經有了的話就不用了,不過請知道User-ID (UA-XXXXXX-X)

爾後抓取 google analytic IOS SDK:
https://developers.google.com/analytics/devguides/collection/ios/resources

下載完之後把Library的檔案匯到你的專案之中:

GAI.h
GAIDictionaryBuilder.h
GAIEcommerceFields.h
GAIEcommerceProduct.h
GAIEcommerceProductAction.h
GAIEcommercePromotion.h
GAIFields.h
GAILogger.h
GAITrackedViewController.h
GAITracker.h

在Bridging-Header.h中import這些.h檔
PS:如果你看官方文件會要你import libGoogleAnalyticsServices.a,那不用..匯了反而錯

完成之後把最外層的libGoogleAnalyticsServices.a匯到專案中
然後去 Linked Frameworks and Library加入:
CoreData.framework
SystemConfigurate.framework
libz.dylib
libGoogleAnalyticsServieces.a
AdSupport.framework

完成之後到Build Settings的other linker Flags加入加入"-ObjC"
(因為GA原本是obj-C,所以用swift本來就有些問題,因此告訴專案要用obj-C的東西)

然後,如果你有這個東西:libGoogleAnalyticsServices.a
請把它從 Linked Frameworks and Library 中移除
不然會遇到一些看起來像是cpu x86 not find的error

以上是環境設定,完成之後就可以開始寫code了,相信寫code基本就沒啥問題了

1.再AppDelegate didFinishLaunchingWithOptions中:

        GAI.sharedInstance().trackUncaughtExceptions = true;
        GAI.sharedInstance().dispatchInterval = 20;
        GAI.sharedInstance().logger.logLevel = GAILogLevel.Verbose;
        var tracker = GAI.sharedInstance().trackerWithTrackingId("UA-xxxxxxx-x"); 

        GAI.sharedInstance().defaultTracker.allowIDFACollection = true;

2.再你要追蹤的UIViewController中把UIViewController取代為GAITrackedViewController
接著在viewDidAppear中:
self.screenName = "your srcreen";

        super.viewDidAppear(animated);


如此就可以了,你可以在你的報表的即時中看到剛剛的記錄拉~
至於詳細的其實就看google官方的文件照樣做就可以了,try it.


---------------------------------


















3 則留言:

  1. Dear 作者你好:
    先感謝你提供這個文章,幫助我很多,但是我想請問一個問題,文章中提到Linked Frameworks and Library加入:SystemConfigurate.framework,但是我在實作的過程中到不到這個framework,我只有看到Systemconfiguration.framework,請問是否能幫我解答呢?

    回覆刪除
    回覆
    1. 看起來這兩個framework應該是同一個,你可以試著匯入看看是否能成功

      刪除
    2. 謝謝你的回覆,但我目前有一個問題,我想在裡面做廣告點擊,你知道google分析這一塊是如何處理嗎?

      刪除