私はiOSアプリケーションでGoogleアナリティクスを実装しましたが、アナリティクスには何も記録されません。私は1ヶ月間それを実行しているので、動作していない何かがあることを知っています。Googleアナリティクスのトラッキングは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
ここは私のトラッカークラスです。注意してください、私はこれらのすべてが呼び出されることをトレースすることができ、ディスパッチが繰り返し呼び出され、 '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
ミュシャ・グラシアス!!