在 iOS 上将 Google Analytics 与 Swift 结合使用

Posted

技术标签:

【中文标题】在 iOS 上将 Google Analytics 与 Swift 结合使用【英文标题】:Using Google Analytics with Swift on iOS 【发布时间】:2014-11-07 10:48:58 【问题描述】:

我正在尝试将 GA 用于 Swift 项目。

我正确安装了 SDK,但由于找不到某些对象,我无法手动发送屏幕测量值。

这是谷歌给出的代码:

// May return nil if a tracker has not already been initialized with a
// property ID.
id tracker = [[GAI sharedInstance] defaultTracker];

// This screen name value will remain set on the tracker and sent with
// hits until it is set to a new value or to nil.
[tracker set:kGAIScreenName
   value:@"Home Screen"];

// New SDK versions
[tracker send:[[GAIDictionaryBuilder createScreenView] build]];

这是我的代码:

let tracker = GAI.sharedInstance()
tracker.setValue(kGai, forKey: "/index")
tracker.send(GAIDictionaryBuilder.createScreenView().build)

这是我得到的错误:

Use of unresolved identifier 'kGAIScreenName'
Use of unresolved identifier 'GAIDictionaryBuilder'

我在我的 BridingHeader 中导入了 GAI.h 并将框架添加到构建文件中,这方面没有错误。

谢谢!

【问题讨论】:

你在你的头文件和 GAI 文件中集成了 GAIDictionaryBuilder.h 您似乎忘记了第一行中的defaultTracker 部分。另外,您是否设置了桥接头? 【参考方案1】:

好的,所以我只是将 GAI.h 添加到我的桥接头中,但没有添加其他头文件。 感谢 DPLusV,我也没有正确地将 Obj-C 翻译成 Swift。

这是我的最终代码:

let tracker = GAI.sharedInstance().defaultTracker
tracker.set(kGAIScreenName, value: "/index")
tracker.send(GAIDictionaryBuilder.createScreenView().build())

[编辑] SWIFT 3

let tracker = GAI.sharedInstance().defaultTracker
tracker?.set(kGAIScreenName, value: "/index")
let build = (GAIDictionaryBuilder.createScreenView().build() as NSDictionary) as! [AnyHashable: Any]
tracker?.send(build)

【讨论】:

谢谢,这对我有用。希望谷歌为 swift 添加了一些文档 - 因为我不知道 ObjC 我所能做的就是猜测如何将它转换为 swift 语法...... 确保您#import "GAIFields.h" 以便使用kGAIScreenName @我在 Swift 1.2 中使用 Xcode 6.3beta 并收到以下错误:Cannot invoke 'send' with an argument list of type '(NSMutableDictionary!)' 这里有一个类似的问题:***.com/questions/29591930/… @JonathanEllis 还有 "#import "GAIDictionaryBuilder.h"【参考方案2】:

我按照

中的说明进行操作

https://developers.google.com/analytics/devguides/collection/ios/v3/?ver=swift

直到 pod 安装

我已经有一个 GoogleService-Info.plist 文件在那里我启用了谷歌分析

然后我做了一些hit and trial方法让它起作用

最后我找到了一些对我有用的东西

let googleAnalytics : GAITracker = GAI.sharedInstance().trackerWithTrackingId("UA-XXXXXXXX-X")
GAI.sharedInstance().trackUncaughtExceptions = true
googleAnalytics.set(kGAIScreenName, value: screenName)
let builder = GAIDictionaryBuilder.createScreenView()
googleAnalytics.send(builder.build() as [NSObject : AnyObject])

我将这段代码放在视图控制器中任何需要的地方。

希望这对某人有所帮助。谢谢

【讨论】:

从github.com/phanisai4u/sampleAppsSwift/tree/master/…获取示例应用

以上是关于在 iOS 上将 Google Analytics 与 Swift 结合使用的主要内容,如果未能解决你的问题,请参考以下文章

为 iOS 实施 Google Analytics

Google Analytics(分析)iOS和Alamofire以及cocoapods

iOS 上 Google/Analytics 的最新 pod 版本要我安装 Firebase

Google Analytics iOS - 打开 URL 挂起

为 Google Analytics(分析)iOS 实施用户 ID

Cordova google-analytics-plugin 导致 phonegap iOS 构建失败