多くのウェブサイトに同じ10の目標を適用しようとしています。私は目標をtoAddArrayに格納してループして、現在のサイトの目標数に基づいて作成または更新します。最初にバッチを作成し、バッチに目標を追加してループします(書き込みが失敗しないためGoalコードが省略されています)、バッチを実行します。Googleアナリティクス管理API Javaパッケージバッチ処理が内包されていない
コードIは
私は10ゴールのためのコールバックを取得し、これを実行している場合は、最初の5-6が戻って成功してきて何が起こっているか
//Create batch from Analytics Object
BatchRequest b = analytics.batch();
// in loop determine create or update based off current Goal list size
FOR LOOP IS HERE
if(y < currentSize)
{
//some code for inserting the goal
analytics.management().goals().update(ACTIVE_ACCOUNT_ID, ACTIVE_PROPERTY_ID, ACTIVE_PROFILE_ID, String.valueOf(y+1), toAddArray[y]).queue(b, setCallback("Successfully Added Goal"));
}
else{
// Some code for when I update the goal
// Send to queue
analytics.management().goals().insert(ACTIVE_ACCOUNT_ID, ACTIVE_PROPERTY_ID, ACTIVE_PROFILE_ID, toAddArray[y]).queue(b, setCallback("Successfully Added Goal"));
}
FOR LOOP ENDS
//Execute the batch
b.execute();
を実行しています最後の4はレート制限を超えて戻ってくるでしょう。私の知る限り、バッチシステムのポイントは、URLを1つのヒットにまとめてまとめて送信して、サーバーの負荷を減らすことです。
このシステムは、その場所を持つキューイングシステムのように機能しているようですが、私が作業している書き込みの数を減らすのに役立ちません。私は1000以上のウェブサイトに10の目標を書いているので、私は1日に1万の書き込みを見ている。 1日にプロジェクトあたり500の書き込み制限があるため、これは20日間のことです。私はプロファイルごとに書き込みがある場合、それは2日間のことになります。 GoogleチームでAPIクォータを増やし、Goalのベータ版のアクセスを5つのプロジェクトに追加してキーを切り替えることをリクエストしましたが、その間にバッチ処理を行うためにできることがあるかどうかを知りたい1つの書き込みとして機能する
感謝を。過去に私は自分自身の "キュー"でヒットをバケッティングしてから、API制限を守らないためにプロセスを定期的にスリープ状態にしました。 [こちら](https://developers.google.com/analytics/devguides/config/mgmt/v3/batching)は、「ベストプラクティス」ページへのリンクであり、これを使用して多くの操作や方法で使用する方法を詳しく説明しています。 APIへのヒット数を減らすことを意図しています。このJavaクラスは実際にはキューを使用せずにHTTPリクエストを生成し、それらを一括して処理するように見えます。私はそれを自分で行い、要求を引き出すつもりです。 –