6

iOS用のGoogleAnalyticsSDKを実装しようとしたときに、2つのレンガの壁にぶつかりました。

最初のものは、このコードを実行した後ですapplication:DidFinishLaunchingWithOptions:

[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-XXXXXXX-YY"
                                       dispatchPeriod:10
                                             delegate:self];
[[GANTracker sharedTracker] setDebug:YES];

..その後、何かを追跡したり呼び出したりしようとするとdispatch、デバッグメッセージはログに記録されません。NSLog通話の追跡の前後に行を追加しましたが、コードに確実に到達しています。

次に、手動ディスパッチを実行しようとすると、が返されますNO。私がオンラインで見た他のすべての問題はどこにdispatch戻るかですYESが、それはどういうわけか適切に通過していません。dispatch実際に戻ってきたらどうしますNOか?

トラックメソッドへの参照を追加しようとしましたがNSError *、実際に成功しました(エラーなし、関数は戻りますYES)。ただし、24時間以上経過してもGAアカウントに何も表示されないため、イベントは定期的にディスパッチされていません。

編集:NSLogデリゲートメソッド(hitDispatched:と)の両方で呼び出しがあり、どちらもtrackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch:呼び出されていません。

4

6 に答える 6

1

GANTrackerのメソッドを委任するには、これをチェックする必要があると思います

- (void)trackerDispatchDidComplete:(GANTracker *)tracker
              eventsDispatched:(NSUInteger)hitsDispatched
          eventsFailedDispatch:(NSUInteger)hitsFailedDispatch{

//print or check number of events failed or success

}
于 2012-05-22T11:38:11.700 に答える
0
//Delegate is set to 'nil' instead of class instance which implements the delegate methods.    
[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-XXXXXXX-YY"
                                   dispatchPeriod:10
                                         delegate:nil];

あなたの場合、UIApplicationDelegateがGANTrackerDelegateを実装している可能性があると仮定すると、メッセージ呼び出しはデリゲートを「self」として設定する必要があります。

乾杯!!
アマール。

于 2012-05-28T06:23:53.370 に答える
0

おそらく、ディスパッチは呼び出し元のスレッドの実行ループに依存しています-これをセカンダリスレッドから実行している可能性はありますか?ディスパッチがコールバックするまでに存在していなかった可能性がありますか?

于 2012-05-28T21:52:25.270 に答える
0

ドライランを有効にしていませんか?次の項目を再確認してください。

[[GANTracker sharedTracker] setDryRun:NO];

また、dispatchSynchronousを試してください。送信時にブロックされますが、同じスレッド上にない場合に役立つ可能性があります。

[[GANTracker sharedTracker] dispatchSynchronous];
于 2012-05-28T23:55:15.660 に答える
0

ゼロからチェックしただけで、完全に機能する意味でディスパッチします

a)お使いのデバイスがどういうわけか異なります(特定のiPadの3で、Appleテスターの未解決のクラッシュと未解決のクラッシュがまだあるので、大きな驚きではありません)

b)コードがどういうわけか異なります-そしてそれはあなたが修正するのがはるかに簡単です。


a)アドバイスはありませんが、入手する可能性のあるすべてのデバイスに対してテストする必要があります。b)の場合、私は自分にとって何がうまくいったかしか言えませんでした。

  • ここから1.4SDKをダウンロード
  • Googleのサンプルプロジェクトを取得しました git clone https://code.google.com/p/google-mobile-dev.analytics-end-to-end/
  • final / AnalyticsSampleを起動するように構成し、ソースをわずかに変更しました

(trackEvent :::::はサンプルから呼び出されましたが、ディスパッチ呼び出しを必要とする期間がゼロであるため、アプリは手動で再起動されました)

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [[GANTracker sharedTracker] startTrackerWithAccountID:kGANAccountId
                                         dispatchPeriod:0
                                               delegate:self];

    NSLog(@"Dispatch%@", [[GANTracker sharedTracker] dispatch] ? @"ed Successfully": @" Failed");

  [self.window addSubview:tabBarController.view];
  [self.window makeKeyAndVisible];

  return YES;
}

それだけです、ログは言うDispatched Successfully、私が推測する価値があります。

于 2012-05-29T01:20:40.553 に答える
0

#defineアプリデリゲートでトラッカーオブジェクトを開始するためのスペルを間違えました。他のファイルのスペルが正しいため、ログステートメントが表示されますが、トラッカーが起動する直前にログに記録しようとすると、表示されませんでした。

おっと。まあ、少なくとも今、SOのGoogleAnalyticsのためのまともなトラブルシューティングの投稿があります!

于 2012-05-29T03:49:22.613 に答える