0

私のアプリは通常、フォアグラウンド アプリとして、またはバックグラウンド オーディオを実行しながら、ベビー モニターとして一晩実行されます。

目標:

  1. アプリの起動総数を追跡します。アクティブ ユーザー数。
  2. フォアグラウンドとバックグラウンドでの合計使用時間と合計セッション時間を追跡します。
  3. 設定画面をナビゲートする場合、さまざまなページビューを追跡します。

推奨どおり、トラッカーを で開始し、最初の「ページビュー」として最初のdidFinishLaunchingWithOptionsトラッキングを行います。ViewController私のアプリは、次の 8 時間、このページにとどまる可能性があります...

次に、いくつかの問題が表示されます。

  1. いつ電話をかけstopTracker、何をしますか? 追跡セッションが終了することを願っています。しかし、Google は親切にもコードを静的ライブラリに隠してしまったので、裏で何が起こっているのかわかりません。ただし、最初の本能はstopTrackerapplicationWillResignActiveユーザーがバックグラウンドオーディオを有効にすることを決定した場合、アプリがまだ実行されていることです...

  2. 次に、新しいページビューがない場合、または真夜中にセッションが 30 分後にタイムアウトする可能性があることを読みました。同じページビューを 20 分ごとに送信するように繰り返しタイマーを設定できます。これにより、少なくとも深夜までセッションが維持されますが、ページビューははるかに大きくなりますか? 私がすべての呼び出しで同じページにいることを知るほど賢い場合を除きます。 Google アナリティクス ブログ

[更新: 各呼び出しは新しいページビューとしてカウントされるようで、数値が歪んでいるため、これを処理する方法がまだ問題です]

  1. 上記のタイマーが午前 0 時を過ぎてセッションが期限切れになった場合、新しいセッションが開始され、実際のアクティブ ユーザー数が 2 倍になりますか?

  2. を呼び出しstopTrackerた場合applicationWillResignActive、ページビューを追跡するための次の呼び出しでトラッカーが再起動されますか? startTrackerWithAccountIDそれとももう一度電話する必要がありますか?

  3. 代わりに でトラッカーを開始するapplicationDidBecomeActiveと、バックグラウンドで実行されていた可能性のあるセッションが失われます。

[更新: これはこれまでのところ最良のアプローチのようですが、分析レポートのタイムラグにより​​テストが非常に遅くなります。すぐに報告します]

PS EasyTracker はこれをうまく処理していないようです。

4

1 に答える 1

0

「Backgrounded」と呼ばれるページビューを使用してこれを機能させました。ユーザーがバックグラウンド機能を選択していない場合、代わりにアプリが stopTracker を呼び出しています。平均セッション 20 分の複数のヒットが見られますが、時間ごとに複数のページビューを表示して、目標 2 の合計時間を確認できます。 applicationDidBecomeActive (バックグラウンド アプリの復元でない場合) では、AppStarted のページビューを追跡します。最終的にはすべてをユーティリティ クラスにラップし、それをいくつかのアプリにまとめたので、結果も興味深いものになるでしょう。他の誰かがこれを試す場合は、カスタム変数の使用も検討してください。これに自分のアプリ バージョンを追加したので、最新のアプリ リリースに移行しているユーザーの数も監視できます。

于 2012-05-18T16:50:18.587 に答える