首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >GAITrackedViewController和UITableViewController

GAITrackedViewController和UITableViewController
EN

Stack Overflow用户
提问于 2013-04-30 06:55:20
回答 7查看 14.3K关注 0票数 69

使用Google Analytics for iOS v2,谷歌建议将其GAITrackedViewController类子类化,而不是UIViewController。在UITableViewController的情况下,我们该怎么做?

source

代码语言:javascript
复制
#import "GAITrackedViewController.h"

@interface AboutViewController : GAITrackedViewController
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-05-03 07:31:56

手动屏幕跟踪

请记住,扩展GAITrackedViewController只是跟踪屏幕视图的一种方式。手动方式也很简单。

SDK v2

代码语言:javascript
复制
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    
    // returns the same tracker you created in your app delegate
    // defaultTracker originally declared in AppDelegate.m
    id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];

    // manual screen tracking
    [tracker sendView:@"Home Screen"];
}

SDK v3

代码语言:javascript
复制
#import "GAI.h"
#import "GAIFields.h"
#import "GAIDictionaryBuilder.h"

..。

代码语言:javascript
复制
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    
    // returns the same tracker you created in your app delegate
    // defaultTracker originally declared in AppDelegate.m
    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"];

    // manual screen tracking
    [tracker send:[[GAIDictionaryBuilder createScreenView] build]];
}

参考文献

https://developers.google.com/analytics/devguides/collection/ios/v2/screens#manual https://developers.google.com/analytics/devguides/collection/ios/v3/screens#manual

票数 126
EN

Stack Overflow用户

发布于 2015-01-06 02:41:14

为了清理我的Swift项目中的手动跟踪代码,我创建了以下UIViewController扩展。

代码语言:javascript
复制
extension UIViewController {
    func trackScreenView(screenName: String) {
        let tracker = GAI.sharedInstance().defaultTracker
        tracker.set(kGAIScreenName, value: screenName)
        tracker.send(GAIDictionaryBuilder.createAppView().build())
    }
}

以这种方式使用扩展可能并不合适,因为我没有使用UIViewController中的任何属性,但这是一种比全局方法更方便的方法。如果您不介意使用类名而不是格式良好的名称,您甚至可以使用NSStringFromClass(self.dynamicType)来获取ViewController类名,如下所示:

代码语言:javascript
复制
extension UIViewController {
    func trackScreenView() {
        let tracker = GAI.sharedInstance().defaultTracker
        tracker.set(kGAIScreenName, value: NSStringFromClass(self.dynamicType))
        tracker.send(GAIDictionaryBuilder.createAppView().build())
    }
}

这使我可以通过以下代码从我的UITableViewControllers添加手动跟踪:

代码语言:javascript
复制
override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)
    trackScreenView("Detail View")  //Or call this without any arguments if using the NSStringFromClass idea 
}

干净利落。享受吧!

票数 14
EN

Stack Overflow用户

发布于 2014-04-17 16:55:08

由于Sdk缺少一个GAITrackedTableViewController,我创建了一个简单整洁的手动屏幕视频跟踪实现。

为GAI类创建一个类别,因为它已经是单例的且易于访问。

代码语言:javascript
复制
#import "GAI+Tracking.h"
#import "GAIFields.h"
#import "GAIDictionaryBuilder.h"

@implementation GAI (Tracking)

- (void)trackScreenView:(NSString *)screenName
{
    [self.defaultTracker set:kGAIScreenName value:screenName];
    [self.defaultTracker send:[[GAIDictionaryBuilder createAppView] build]];
}

@end

现在只需像这样跟踪一个屏幕视图

代码语言:javascript
复制
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [[GAI sharedInstance] trackScreenView:@"Counts map screen"];
}

这类泛化谷歌的想法是同时有多个跟踪。(我还没有这个需要)。要实现这一点,只需根据使用的跟踪器重新命名您的跟踪方法,并使用任何您想要的跟踪器。

代码语言:javascript
复制
#import "GAI+Tracking.h"
#import "GAIFields.h"
#import "GAIDictionaryBuilder.h"

@implementation GAI (Tracking)

- (void)trackDefaultScreenView:(NSString *)screenName
{
    [self.defaultTracker set:kGAIScreenName value:screenName];
    [self.defaultTracker send:[[GAIDictionaryBuilder createAppView] build]];
}

@end
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16289581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档