1

Doug Tan が作成した PHP の Google Analytics API クラスを使用して、特定のプロファイルから Analytics データを取得しています。

ここで URL を確認してください: http://code.google.com/intl/nl/apis/analytics/docs/gdata/gdataArticlesCode.html

クラスの新しいインスタンスを作成するときに、プロファイル ID、Google アカウントとパスワード、日付範囲、および分析から取得する任意のディメンションとメトリックを追加できます。

たとえば、2009 年にさまざまな国から自分の Web サイトを訪れた人の数を知りたいとします。

//make a new instance from the class
$ga = new GoogleAnalytics($email,$password);

//website profile example id
$ga->setProfile('ga:4329539');

//date range
$ga->setDateRange('2010-02-01','2010-03-08');

//array to receive data from metrics and dimensions
$array = $ga->getReport(
        array('dimensions'=>('ga:country'),
        'metrics'=>('ga:visits'),
        'sort'=>'-ga:visits'
        )
);

この API クラスがどのように機能するかがわかったので、私の問題に対処したいと思います。

スピード。分析データベースから複数の種類のデータを取得するには、特に異なるメトリック/ディメンションで異なる配列を構築している場合、多くの時間がかかります。このプロセスをスピードアップするにはどうすればよいですか?

可能なすべてのデータをキャッシュに保存して、データを何度もロードせずに取得できるようにすることはできますか?

4

2 に答える 2

2

データを確実にキャッシュにロードできます。正確には、データをキャッシュする方法と場所は完全にあなた次第です。リクエストごとのキャッシュ(この特定の問題にはかなり役に立たない)から、APCmemcached、ローカルデータベース、さらには生の結果をファイルに保存するなど、あらゆるものを使用できます。もちろん、これらによってGoogleからのデータの実際の取得が速くなることはありません。

その点で、Googleへのリクエストはおそらく順番に実行されている可能性があります(コードを見ていません)。PHPクラスを拡張して、Googleに複数のデータセットを並行してリクエストできるようにすることが可能です(たとえば、cURL Multiを使用)。

于 2010-03-12T10:59:47.420 に答える