2014-11-07 3 views
19

Я пытаюсь использовать GA с проектом Swift.Использование Google Analytics с Swift на iOS

Я правильно установил 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

r u интегрировал GAIDictionaryBuilder.h в файл заголовка и файл GAI –

+2

Вы, кажется, забыли часть 'defaultTracker' в первой строке. Кроме того, вы настроили заголовок? – DPlusV

ответ

25

ОК, поэтому я просто добавил GAI.h в свой заголовок моста, но не добавил другие файлы заголовков. И спасибо DPLusV Я также неправильно перевел Obj-C в Swift.

Вот мой окончательный код, который работает:

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

[EDIT] СВИФТ 3

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

спасибо, это сработало для меня. Желаю, чтобы Google добавила некоторую документацию для swift - так как я не знаю ObjC, все, что я могу сделать, это угадать, как преобразовать ее в быстрый синтаксис ... –

+7

Убедитесь, что вы '#import" GAIFields.h "', чтобы использовать 'kGAIScreenName ' –

+5

@ Я использую Xcode 6.3beta с Swift 1.2 и получаю следующую ошибку: не могу вызвать 'send' с помощью списка аргументов типа '(NSMutableDictionary!)' – confile

5

Я следовал инструкциям в

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

вверх до стручка установка

я уже имел GoogleService-файл Info.plist там я включил аналитик Google

Тогда я сделал несколько попаданий и пробные методов, чтобы заставить его работать

И, наконец, я нашел некоторые вещи, которые работали для меня

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]) 

Я поместил этот кусок кода в контроллер (ы) просмотра, где он когда-либо был необходим.

Надеюсь, что это поможет кому-то. Спасибо

+1

получить пример приложения от https://github.com/phanisai4u/sampleAppsSwift/дерево/ведущий/GoogleAnalyticsSampleSwift –

Смежные вопросы