Использование Google Analytics с Swift в iOS
Я пытаюсь использовать 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]];
Здесь мой код:
let tracker = GAI.sharedInstance()
tracker.setValue(kGai, forKey: "/index")
tracker.send(GAIDictionaryBuilder.createScreenView().build)
И вот ошибки, которые я получаю:
Use of unresolved identifier 'kGAIScreenName'
Use of unresolved identifier 'GAIDictionaryBuilder'
Я импортировал GAI.h в свой BridingHeader и добавил фреймворки в файл сборки, никаких ошибок на этой стороне.
Спасибо!
Ответы
Ответ 1
ОК, поэтому я просто добавил GAI.h в свой заголовок моста, но не добавил другие файлы заголовков.
И спасибо DPLusV Я также неправильно перевел Obj-C на Swift.
Вот мой последний код, который работает:
let tracker = GAI.sharedInstance().defaultTracker
tracker.set(kGAIScreenName, value: "/index")
tracker.send(GAIDictionaryBuilder.createScreenView().build())
[EDIT] 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)
Ответ 2
Я выполнил инструкции в
https://developers.google.com/analytics/devguides/collection/ios/v3/?ver=swift
вверх до установки блока
У меня уже был файл GoogleService-Info.plist, который я включил в Google Analytics
Затем я сделал некоторые хитовые и пробные методы, чтобы заставить его работать
И, наконец, я нашел кое-что, что сработало для меня
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])
Я поместил эту часть кода в контроллер просмотра, где когда-либо это было необходимо.
Надеюсь, что это поможет кому-то. Благодаря