Cannot convert value of type 'NSMutableDictionary' to type '[NSObject: AnyObject]' in coercion for google ios Analytics Cannot convert value of type 'NSMutableDictionary' to type '[NSObject: AnyObject]' in coercion for google ios Analytics swift swift

Cannot convert value of type 'NSMutableDictionary' to type '[NSObject: AnyObject]' in coercion for google ios Analytics


type conversion

type conversion table

Swift 3

Screen Track

let tracker = GAI.sharedInstance().defaultTrackertracker.set(kGAIScreenName, value: "Home")tracker.send(GAIDictionaryBuilder.createScreenView().build() as [AnyHashable : Any])

Objective-C

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];// Set the screen name on the tracker so that it is used in all hits sent from this screen.[tracker set:kGAIScreenName value:@"Home"];[tracker send:[[GAIDictionaryBuilder createScreenView]  build]]; 

Automatic Screen Tracking

Swift 3

override func viewDidAppear(_ animated: Bool) {    super.viewDidAppear(animated)    self!.screenName = "About Screen"}

Objective-C

- (void)viewDidAppear:(BOOL)animated {    [super viewDidAppear:animated];    self.screenName = @"About Screen";}

event Track

Swift 3

let tracker = GAI.sharedInstance().defaultTrackertracker!.send(GAIDictionaryBuilder.createEventWithCategory("ui_action", action: "button_press", label: "menuButton", play: nil).build())

Objective-C

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"     // Event category (required)    action:@"button_press"  // Event action (required)    label:@"play"               value:nil] build]];

or use

weak var tracker = GAI.sharedInstance().defaultTracker// Set screen name on the tracker to be sent with all hits. tracker!.set(kGAIScreenName, value: "Home Screen")// Send a screen view for "Home Screen".// [tracker send:[[GAIDictionaryBuilder createAppView] build]];   // Previous V3 SDK versions.tracker!.send(GAIDictionaryBuilder.createScreenView().build())// SDK Version 3.08 and up.// This event will also be sent with &cd=Home%20Screen.tracker!.send(GAIDictionaryBuilder.createEventWithCategory("UX", action: "touch", label: "menuButton", value: nil).build())// Clear the screen name field when we're done.tracker!.set(kGAIScreenName, value: nil)

for more information see this

example

try this

var builder = GAIDictionaryBuilder.createScreenView().build() as! [NSObject : AnyObject]tracker.send(builder)

for screen track

let tracker = GAI.sharedInstance().defaultTrackertracker.set(kGAIDescription, value: "rootPlayView")let builder: NSObject = GAIDictionaryBuilder.createScreenView().build()tracker.send(builder as! [NSObject : AnyObject])

for event Track

let tracker = GAI.sharedInstance().defaultTrackerlet builder: NSObject = GAIDictionaryBuilder.createEventWithCategory(            "xxxx",            action: "buttonclicked",            label: "you pressed xxx button",            value: nil).build()tracker.send(builder as! [NSObject : AnyObject])


This answer has been updated for Swift 3

let tracker = GAI.sharedInstance().defaultTrackerlet eventTracker: NSObject = GAIDictionaryBuilder.createEvent(                 withCategory: "SomeCategory",                action: "SomeAction",                label: "SomeLabel",                value: nil).build()tracker.send(eventTracker as [NSObject : AnyObject]!)

OR...

let tracker = GAI.sharedInstance().defaultTrackertracker.set(kGAIDescription, value: "ScreenViewName")let eventTracker: NSObject = GAIDictionaryBuilder.createScreenView().build()tracker.send(eventTracker as! [NSObject : AnyObject])


For GA 3.17.0 use:

let tracker = GAI.sharedInstance().defaultTrackerlet builder = GAIDictionaryBuilder.createEvent(withCategory: category,                                                     action: action,                                                      label: nil,                                                      value: nil).build()tracker?.send(builder as [NSObject : AnyObject]!)

Note the ! at the end of [NSObject: AnyObject]!.