UIButton 事件跟踪 Google 分析 (Swift)
UIButton Event Tracking Google Analytics (Swift)
我想使用 Google Analytics 跟踪用户点击 UIButton 时的事件。我有下面的代码,但显示错误。我哪里错了?谢谢
代码:
@IBAction func startGame1(sender: AnyObject) {
var tracker = GAI.sharedInstance().defaultTracker
tracker.send(GAIDictionaryBuilder.createEventWithCategory("Game 1", action: "Start Pressed", label: "Start Timer One", value: nil).build())
}
错误:
Cannot invoke 'send' with an argument list of type'(NSMutableDictionarry)'
自从Swift 1.2发布,你必须将GAIDictionaryBuilder
转换为[NSObject : AnyObject]
在 Whosebug
上查看此 post
您的问题有解决方案
@IBAction func startGame1(sender: AnyObject) {
var tracker = GAI.sharedInstance().defaultTracker
tracker.send(GAIDictionaryBuilder.createEventWithCategory("Game 1", action: "Start Pressed", label: "Start Timer One", value: nil).build() as [NSObject : AnyObject])
}
希望对您有所帮助!
对于Swift 5.
1.You 应在您的项目中添加 GoogleService-Info.plist 文件(请参阅 Google 文档)。
2.You 应将此 属性 添加到您的 Info.plist 文件中:
<key>GoogleAnalytics</key>
<dict>
<key>TRACKING_ID</key>
<string>"put_your_tracking_id_here"</string>
</dict>
3.InAppDelegateclass,在didFinishLaunchingWithOptions方法中:
// GAI
if let gai = GAI.sharedInstance(),
let gaConfigValues = Bundle.main.infoDictionary?["GoogleAnalytics"] as? [String: String],
let trackingId = gaConfigValues["TRACKING_ID"]
{
gai.logger.logLevel = .error
gai.trackUncaughtExceptions = false
gai.tracker(withTrackingId: trackingId)
} else {
assertionFailure("Google Analytics not configured correctly")
}
4.In 你的 ViewController, 在 viewDidLoad 方法中(例如):
// GAI
let tracker = GAI.sharedInstance().defaultTracker
tracker?.set(kGAIScreenName, value: "Your_mark_name")
let eventTracker: NSObject = GAIDictionaryBuilder.createScreenView().build()
tracker?.send(eventTracker as! [NSObject : AnyObject])
5.After你应该喝什么啤酒;)
对于Swift 3
let tracker = GAI.sharedInstance().defaultTracker
tracker.set(kGAIDescription, value: "ScreenViewName")
let eventTracker: NSObject = GAIDictionaryBuilder.createScreenView().build()
tracker.send(eventTracker as! [NSObject : AnyObject])
或...
let tracker = GAI.sharedInstance().defaultTracker
let eventTracker: NSObject = GAIDictionaryBuilder.createEvent(
withCategory: "SomeCategory",
action: "SomeAction",
label: "SomeLabel",
value: nil).build()
tracker.send(eventTracker as [NSObject : AnyObject]!)
Swift 3:你应该使用“[AnyHashable: Any]”而不是[NSObject: AnyObject]。
来源:https://developer.apple.com/swift/blog/?id=39
guard let tracker = GAI.sharedInstance().defaultTracker else {return}
let eventTracker: NSObject = GAIDictionaryBuilder.createEvent(
withCategory: YOUR_CATEGORY_NAME,
action: YOUR_ACTION_NAME,
label: YOUR_LABEL_NAME,
value: nil).build()
tracker.send(eventTracker as! [AnyHashable: Any])
我想使用 Google Analytics 跟踪用户点击 UIButton 时的事件。我有下面的代码,但显示错误。我哪里错了?谢谢
代码:
@IBAction func startGame1(sender: AnyObject) {
var tracker = GAI.sharedInstance().defaultTracker
tracker.send(GAIDictionaryBuilder.createEventWithCategory("Game 1", action: "Start Pressed", label: "Start Timer One", value: nil).build())
}
错误:
Cannot invoke 'send' with an argument list of type'(NSMutableDictionarry)'
自从Swift 1.2发布,你必须将GAIDictionaryBuilder
转换为[NSObject : AnyObject]
在 Whosebug
上查看此 post您的问题有解决方案
@IBAction func startGame1(sender: AnyObject) {
var tracker = GAI.sharedInstance().defaultTracker
tracker.send(GAIDictionaryBuilder.createEventWithCategory("Game 1", action: "Start Pressed", label: "Start Timer One", value: nil).build() as [NSObject : AnyObject])
}
希望对您有所帮助!
对于Swift 5.
1.You 应在您的项目中添加 GoogleService-Info.plist 文件(请参阅 Google 文档)。
2.You 应将此 属性 添加到您的 Info.plist 文件中:
<key>GoogleAnalytics</key>
<dict>
<key>TRACKING_ID</key>
<string>"put_your_tracking_id_here"</string>
</dict>
3.InAppDelegateclass,在didFinishLaunchingWithOptions方法中:
// GAI
if let gai = GAI.sharedInstance(),
let gaConfigValues = Bundle.main.infoDictionary?["GoogleAnalytics"] as? [String: String],
let trackingId = gaConfigValues["TRACKING_ID"]
{
gai.logger.logLevel = .error
gai.trackUncaughtExceptions = false
gai.tracker(withTrackingId: trackingId)
} else {
assertionFailure("Google Analytics not configured correctly")
}
4.In 你的 ViewController, 在 viewDidLoad 方法中(例如):
// GAI
let tracker = GAI.sharedInstance().defaultTracker
tracker?.set(kGAIScreenName, value: "Your_mark_name")
let eventTracker: NSObject = GAIDictionaryBuilder.createScreenView().build()
tracker?.send(eventTracker as! [NSObject : AnyObject])
5.After你应该喝什么啤酒;)
对于Swift 3
let tracker = GAI.sharedInstance().defaultTracker
tracker.set(kGAIDescription, value: "ScreenViewName")
let eventTracker: NSObject = GAIDictionaryBuilder.createScreenView().build()
tracker.send(eventTracker as! [NSObject : AnyObject])
或...
let tracker = GAI.sharedInstance().defaultTracker
let eventTracker: NSObject = GAIDictionaryBuilder.createEvent(
withCategory: "SomeCategory",
action: "SomeAction",
label: "SomeLabel",
value: nil).build()
tracker.send(eventTracker as [NSObject : AnyObject]!)
Swift 3:你应该使用“[AnyHashable: Any]”而不是[NSObject: AnyObject]。
来源:https://developer.apple.com/swift/blog/?id=39
guard let tracker = GAI.sharedInstance().defaultTracker else {return}
let eventTracker: NSObject = GAIDictionaryBuilder.createEvent(
withCategory: YOUR_CATEGORY_NAME,
action: YOUR_ACTION_NAME,
label: YOUR_LABEL_NAME,
value: nil).build()
tracker.send(eventTracker as! [AnyHashable: Any])