1

API を使用してサーバーにデータベースを構築し、各アプリのユーザーの何パーセントがどのバージョンの iOS を実行しているかを測定することを検討していCFUUIDCreateます (将来の開発のためにサポートされる iOS の最小バージョンを決定するのに役立ちます)。

私の質問は: (匿名の) UUID / iOS バージョンのデータ ペアをサーバーに送信する許可をユーザーに求める必要がありますか、それとも自動的に送信しても問題ありませんか?

安全な側に賭けてとにかく尋ねることができるので、私は尋ねますが、ほとんどのユーザーは技術的な詳細に恐れを感じ、おそらく辞退するでしょう. また、 内のテキストが長いほどUIAlertView、ユーザーがそれを読まない可能性が高くなります。

私が尋ねなければ、Apple は私のアプリを拒否しますか? そうでない場合でも、この匿名データを送信する許可を常にユーザーに求める必要があると思いますか?

この種の機能を実装した皆さんの経験は何ですか?

4

2 に答える 2

2

OK、これが私がやろうとしていることです。ニコライ・ルーエの答えに基づいていますが、私が発見したばかりの落とし穴を改善しています。

ユーザー John Doe が iOS 5.0 を実行している iPhone に私のアプリをインストールしたとします。

最初の起動時に、アプリはサーバーに匿名のリクエストを送信し、「iOS 5.0 を実行しているデバイス」のカウンターを効果的に 1 つ増やします。アプリは、このイベントと iOS バージョン (ユーザーの既定値またはキーチェーン) を記録し、ローカルに保存されている OS バージョン文字列と現在のバージョン (システムによって返される) が等しい限り、それ以上の要求を送信しません。

翌週、John は iOS 5.1 にアップグレードし、私のアプリを起動します。アプリは OS バージョンの不一致を検出し、サーバーに新しいリクエストを送信します。

しかし、これで 'iOS 5.1' 人口にデバイスが 1 つしか追加されない場合、John の iPhone は 2 回カウントされます。

これを修正するには、HTTP リクエストは次のようになります。

http://myserver.com/my_stats_scripts/index.php?app_id=com.myCompany.myApp&new_os_ver=5.1&old_os_ver=5.0

したがって、私のデータベースでは、5.1 デバイスの数を増やし、 5.0 デバイスの数を 1 つ減らすことができます。

もちろん、最初のリクエストでは HTTP パラメータold_os_verは空に設定され、サーバーはそれを新しいデバイスのように扱います。

これを正しく実行すると、UUID は不要になります。しかし、システム情報を秘密裏にサーバーに送信しています。これも利用規約で開示すると思います。

于 2012-06-25T08:36:05.120 に答える
1

必ず許可を求める必要があります。ここで重要なのは、データ収集が匿名である可能性がありますが、それを使用して個々のユーザーを追跡できることです.

Web ブラウザーは、すべての要求でユーザー エージェント文字列を送信します。違いは、変更されることのない普遍的に追跡可能な ID を送信しないことです。

したがって、あなたの提案の問題点は UUID です。なぜそれを放置しないのですか?アプリは匿名のリクエストを 1 回送信し、送信された iOS バージョンをローカルに保存します。ユーザーが OS をアップグレードするときは、新しい iOS バージョンと更新回数を含む別の要求を送信します。

このスキームを使用すると、追跡可能なデータを送信せず、OS ごとの適切な使用統計を取得できます。

于 2012-06-25T06:53:00.437 に答える