在iOS上使用Google Analytics和Swift

Sko*_*oua 20 google-analytics ios swift

我正在尝试将GA与Swift项目一起使用.

我正确安装了SDK,但我无法手动发送屏幕测量,因为找不到某些对象.

以下是Google提供的代码:

// 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]];
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

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

这是我得到的错误:

Use of unresolved identifier 'kGAIScreenName'
Use of unresolved identifier 'GAIDictionaryBuilder'
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Sko*_*oua 27

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

这是我的最终代码:

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

[编辑] 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)
Run Code Online (Sandbox Code Playgroud)

  • 确保你"#import"GAIFields.h"`以便使用`kGAIScreenName` (11认同)
  • @I使用Xcode 6.3beta和Swift 1.2并得到以下错误:无法使用类型'(NSMutableDictionary!)'的参数列表调用'send' (5认同)

bab*_*bly 5

我按照说明进行操作

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

直到吊舱安装

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

然后我做了一些命中和试用方法,使它工作

最后我发现了一些对我有用的东西

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])
Run Code Online (Sandbox Code Playgroud)

我将这段代码放在View Controller(s)中,只要它需要它.

希望这能有所帮助.谢谢