2

Google アナリティクスを使用できる iOS 用のサンプル アプリケーションを作成しようとしています。Google アナリティクスで無料のアカウントを作成し、トラッキング ID を取得して、Google のサンプル「BasicExample」で使用しました (テスト目的のみ)。

アプリケーションを (シミュレーターとデバイスの両方で) 実行しましたが、エラーは発生しませんでしたが、私の Google アナリティクス アカウントでは (2 日経っても) アクティビティが登録されないため、デバッグをオンにして GANTrackerDelegate メソッドを実装してみました。

トラッカーがディスパッチされると、デリゲート メソッドは呼び出されず、多かれ少なかれ次のようなものがコンソールに記録されます。

2012-08-17 09:25:53.835 BasicExample[402:707] dispatch called
2012-08-17 09:25:53.839 BasicExample[402:707] dispatching 5 hits
2012-08-17 09:25:53.853 BasicExample[402:707] GET /__utm.gif?utmwv=4.8mi&utmn=20613118&utmcs=UTF-8&utmsr=320x480&utmsc=24-bit&utmul=pt-br&utmp=%2FSUPAPAGE&utmac=UA-34104824-1&utmcc=__utma%3D1.1516748783.1345205912.1345205912.1345205912.1%3B&utmht=1345205912658&utmqt=441194 HTTP/1.1

Host: www.google-analytics.com

User-Agent: GoogleAnalytics/1.4 (iPod touch; U; CPU iPhone OS 5.0.1 like Mac OS X; pt-br)

この後、トラッカーが再びディスパッチされるたびに、「...ディスパッチャーがビジーでした」というメッセージがコンソールに記録されます。また、Google Analytics アカウントが更新されていません。

ここに私のAppDelegateコードがあります:

- (void)applicationDidFinishLaunching:(UIApplication *)application {
    [[GANTracker sharedTracker] setDebug:YES];
    [[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-XXXXXXXX-1" dispatchPeriod:5 delegate:self];

    NSError* error = nil;

    if (![[GANTracker sharedTracker] trackPageview:@"/app_entry_point" withError:&error]) {
        NSLog(@"error in trackPageview");
    }

    [window_ makeKeyAndVisible];
}

- (void)dealloc {
    [[GANTracker sharedTracker] stopTracker];
    [window_ release];
    [super dealloc];
}

- (void)hitDispatched:(NSString *)hitString
{
    NSLog(@"foo");
}

- (void)trackerDispatchDidComplete:(GANTracker *)tracker eventsDispatched:(NSUInteger)hitsDispatched eventsFailedDispatch:(NSUInteger)hitsFailedDispatch
{
    NSLog(@"bar");
}

ローカル ネットワークにプロキシがあります。

デリゲートメソッドが呼び出されず、そのことがコンソールに記録される理由を誰かが知っていますか?

4

1 に答える 1

0

何かを追跡した直後にディスパッチ メソッドを呼び出すと機能しますか? あなたはこれでそれを行うことができます:

[[GANTracker sharedTracker] dispatch]; // Manual dispatch

この方法は、近い間隔で 2 つの呼び出しを行わない場合にのみ役立ちます。それ以外の場合は、ディスパッチされなくなります (「...ディスパッチャーがビジーでした」問題)。

ヒット スタックをクリアしたい場合 (Google アナリティクスを再び機能させたい場合はクリアする必要があります)、シミュレーターからアプリを削除する必要があります。

于 2012-08-21T12:14:59.303 に答える