我在我的ios應用中實施了谷歌分析,但是沒有任何東西會記錄到分析。我已經運行了一個月,所以我知道有些東西不起作用。谷歌Analytics(分析)跟蹤對我來說不適用於ios,我的GANTrackerDelegate永遠不會被調用
我添加了一個GANTrackerDelegate來跟蹤爲什麼我的調度失敗,但它永遠不會被調用。我知道調度正在被調用。有人知道嗎?這是我的班。
#import <Foundation/Foundation.h>
#import "GANTracker.h"
@interface trackerDelegate : NSObject<GANTrackerDelegate> {
}
@end
#import "trackerDelegate.h"
@implementation trackerDelegate
#pragma mark GANTrackerDelegate
- (void)trackerDispatchDidComplete:(GANTracker *)tracker
eventsDispatched:(NSUInteger)eventsDispatched
eventsFailedDispatch:(NSUInteger)eventsFailedDispatch {
NSLog(@"events dispatched: %d, events failed: %d", eventsDispatched, eventsFailedDispatch);
}
@end
這是我的跟蹤器類。請注意,我可以跟蹤所有這些被調用的東西,並且我知道dispatch被重複調用並返回'YES',但委託例程永遠不會被調用。這可能是一個編碼問題,但我試圖查看調度調用是否失敗。我使用的ID是有效的,因爲它適用於Android。
tracker.h
@interface Tracker : NSObject {
}
+ (void) startTracking;
+ (void) endTracking;
+ (void) dispatch;
+ (void) trackPageView : (NSString *) pageId;
+ (void) trackEvent : (NSString *) categoryId
: (NSString *) actionID
: (NSString *) labelID
: (int) tvalue;
@end
tracker.m
#import "Tracker.h"
#import "trackerDelegate.h"
@implementation Tracker
static BOOL trackingOn = false;
static BOOL dirty = false;
trackerDelegate *tg = nil;
+ (void) startTracking
{
if (trackingOn){
return;
}
@try{
if (!tg)
{
tg = [[trackerDelegate alloc] init];
}
[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-VALID-GOOGLEID"
dispatchPeriod:-1
delegate:tg];
trackingOn = true;
}
@catch (NSException*)
{
trackingOn = false;
}
}
+ (void) endTracking
{
@try{
if (trackingOn)
{
[[GANTracker sharedTracker] stopTracker];
}
trackingOn = false;
}
@catch (NSException *){
trackingOn = false;
}
}
+ (void) dispatch
{
if (!dirty){
return;
}
[self startTracking];
@try
{
if (![[GANTracker sharedTracker] dispatch]) {
trackingOn = false;
NSLog(@"Google anaytics dispatch failed");
return;
}
dirty = false;
}
@catch (NSException *){
trackingOn = false;
}
}
+ (void) trackPageView : (NSString *) pageId
{
[self startTracking];
@try{
if (trackingOn){
NSError *error;
if (![[GANTracker sharedTracker] trackPageview:pageId
withError:&error]) {
trackingOn = false;
NSLog(@"Google anaytics track pageview failed");
return;
}
dirty = true;
}
}
@catch (NSException *){
trackingOn = false;
}
}
+ (void) trackEvent : (NSString *) categoryId
: (NSString *) actionID
: (NSString *) labelID
: (int) tvalue
{
[self startTracking];
@try
{
if (trackingOn){
NSError *error;
if (![[GANTracker sharedTracker] trackEvent:categoryId
action:actionID
label:labelID
value:tvalue
withError:&error])
{
trackingOn = false;
NSLog(@"Google anaytics track event failed");
return;
}
dirty = true;
}
}
@catch (NSException *){
trackingOn = false;
}
}
@end
Muchas Gracias !!