Google Analytics SDK for iOS version 1.2

先前介紹過兩篇關於 Google Analytics for iOS 介紹,分別為 Google Analytics SDK for iOSGoogle Analytics SDK for iOS Getting Started。那時後官網 Google Analytics for Mobile 推出的是 Version 1.1 ,可以用來記錄追蹤 Page view、custom variables 和 event tracking。但是經過這陣子使用下來,發現在使用上障礙非常的大,問題來自兩大部分:
  1. 當程式在呼叫送出 Custom variables 之後,會出現 EXC_BAD_ACCESS message sent to dealloc instance 的 error,相對的 iPhone app 就直接 crash 掉。
  2. 當程式按下到背景,過一陣子再回來原來的 iPhone app,他也直接 crash 掉。
上網查了些問題發現到 custom variable 問題 google analytics sdk for iOS bug with setCustomVariableAtIndex。各個開發者在使用 track event 和 track page view 都沒有問題,但是在呼叫 custom variable at index 就直接 EXC_BAD_ACCESS。

因次整個 iPhone app 在導入 Google Analytics for iOS 是暫告失敗。

直到最近再次發現到 Google Analytics for Mobile 推出 1.2 版了,這版新增了支援 Ecommerce hits、debug flag、dray run flag 和 SQLite3 使用上錯誤描述更清楚。而改善方面修正了 custom variables crash 和使用 custom variables 的 memory leaks。

於是最大的問題獲得改善了,將 1.2 版重新導回了 iPhone app 專案裡頭,反覆測試與修正,最後讓整個系統不但支援這些數據收集,也讓系統的不 crash 穩定性提升了。
在使用這邊最重要要注意的是 AppDelegate 的生命週期與 Google Analytics 的 GANTracker 搭配要正確。

當系統完成 Launch 時候,搭配 GANTracker 初始化

當系統到背景準備要停止活動時候,要將 GANTracker 停止。

當系統恢復正常運作,要將 GANTracker 註冊

當系統決定釋放結束,也要將 GANTracker 關閉

另外如果在 GANTrackerDelegate 搭配 Alert message 來秀出傳遞了多少成功訊息記錄作為 DEBUG 觀察,是個不錯的方式。

以上在整個 App 生命週期的各個活動點搭配 GANTracker 該做的正確搭配,才能正常的使用與搜集傳遞數據。後來在收集與統計和系統本身的運作穩定度才能算是上軌道,還需要再觀察一陣子。如果您在整合 GANTracker 也和我碰到一樣的遭遇,歡迎不吝跟我指教與交流。

Comments