ব্যাচিং Google Analytics API অনুরোধ

এই নথিটি দেখায় যে কীভাবে আপনার ক্লায়েন্টকে HTTP সংযোগগুলি তৈরি করতে হবে তা কমাতে API কলগুলিকে একসাথে ব্যাচ করতে হয়৷

এই নথিটি বিশেষভাবে একটি HTTP অনুরোধ পাঠিয়ে একটি ব্যাচ অনুরোধ করার বিষয়ে। যদি, পরিবর্তে, আপনি একটি ব্যাচ অনুরোধ করতে একটি Google ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, ক্লায়েন্ট লাইব্রেরির ডকুমেন্টেশন দেখুন।

ওভারভিউ

প্রতিটি HTTP সংযোগ যা আপনার ক্লায়েন্ট একটি নির্দিষ্ট পরিমাণ ওভারহেড ফলাফল করে। Google Analytics API ব্যাচিং সমর্থন করে, আপনার ক্লায়েন্টকে একটি একক HTTP অনুরোধে একাধিক API কল করার অনুমতি দিতে।

আপনি যখন ব্যাচিং ব্যবহার করতে চাইতে পারেন এমন পরিস্থিতির উদাহরণ:

  • ব্যবহারকারীর অনুমতি আপডেট করা হচ্ছে। ব্যবহারকারীর অনুমতিগুলি আপডেট করার জন্য ব্যাচের অনুরোধ করার সময় আপনি বিশেষ পারফরম্যান্স লাভ এবং কোটা ইনসেনটিভগুলি পান, বিশদ বিবরণের জন্য ব্যবহারকারীর অনুমতি বিকাশকারী নির্দেশিকা দেখুন৷
  • আপনার মোবাইল রিপোর্টিং অ্যাপ্লিকেশান অফলাইনে যেতে পারে, এবং যখন অ্যাপ্লিকেশনটি অনলাইনে ফিরে আসে তখন আপনাকে ডেটা অনুরোধের একটি গ্রুপ করতে হবে৷
  • আপনার একটি পরিষেবা অ্যাকাউন্ট অ্যাপ্লিকেশন রয়েছে যা নিয়মিত ভিত্তিতে একাধিক প্রতিবেদন তৈরি করতে হবে।
  • আপনাকে কাস্টম মাত্রা বা কাস্টম মেট্রিক্সের একটি সেট তৈরি করতে হবে এবং শুধুমাত্র একটি HTTP অনুরোধ করতে পছন্দ করবেন।

প্রতিটি ক্ষেত্রে, প্রতিটি কল আলাদাভাবে পাঠানোর পরিবর্তে, আপনি একটি একক HTTP অনুরোধে তাদের একসাথে গোষ্ঠী করতে পারেন। সমস্ত অভ্যন্তরীণ অনুরোধ একই Google API এ যেতে হবে।

আপনি একটি একক ব্যাচ অনুরোধে 1000 কলের মধ্যে সীমাবদ্ধ। আপনি যদি এর চেয়ে বেশি কল করতে চান তবে একাধিক ব্যাচের অনুরোধ ব্যবহার করুন।

দ্রষ্টব্য : Google Analytics API-এর ব্যাচ সিস্টেম OData ব্যাচ প্রসেসিং সিস্টেমের মতো একই সিনট্যাক্স ব্যবহার করে, কিন্তু শব্দার্থবিদ্যা আলাদা।

ব্যাচের বিবরণ

একটি ব্যাচ অনুরোধে একাধিক API কল থাকে যা একটি HTTP অনুরোধের সাথে মিলিত হয়, যা API আবিষ্কার নথিতে নির্দিষ্ট batchPath পাঠানো যেতে পারে। ডিফল্ট পাথ হল /batch/ api_name / api_version । এই বিভাগে ব্যাচ সিনট্যাক্স বিস্তারিতভাবে বর্ণনা করে; পরে, একটি উদাহরণ আছে.

দ্রষ্টব্য : একত্রে ব্যাচ করা n অনুরোধের একটি সেট আপনার ব্যবহারের সীমা n অনুরোধ হিসাবে গণনা করে, একটি অনুরোধ হিসাবে নয়। ব্যাচ অনুরোধ প্রক্রিয়াকরণের আগে অনুরোধের একটি সেট আলাদা করা হয়.

একটি ব্যাচ অনুরোধের বিন্যাস

একটি ব্যাচ অনুরোধ হল একটি একক স্ট্যান্ডার্ড HTTP অনুরোধ যাতে একাধিক Google Analytics API কল থাকে, multipart/mixed সামগ্রীর ধরন ব্যবহার করে। সেই প্রধান HTTP অনুরোধের মধ্যে, প্রতিটি অংশে একটি নেস্টেড HTTP অনুরোধ থাকে।

প্রতিটি অংশ তার নিজস্ব Content-Type: application/http HTTP হেডার। এটিতে একটি ঐচ্ছিক Content-ID শিরোনামও থাকতে পারে। যাইহোক, অংশের শিরোনামগুলি শুধুমাত্র অংশের শুরুতে চিহ্নিত করার জন্য রয়েছে; তারা নেস্টেড অনুরোধ থেকে আলাদা। সার্ভার ব্যাচের অনুরোধটিকে পৃথক অনুরোধে আনর্যাপ করার পরে, অংশ শিরোনামগুলি উপেক্ষা করা হয়।

প্রতিটি অংশের মূল অংশ নিজেই একটি সম্পূর্ণ HTTP অনুরোধ, যার নিজস্ব ক্রিয়া, URL, শিরোনাম এবং বডি রয়েছে। HTTP অনুরোধে শুধুমাত্র URL এর পাথ অংশ থাকতে হবে; ব্যাচ অনুরোধে সম্পূর্ণ URL গুলি অনুমোদিত নয়৷

বাইরের ব্যাচের অনুরোধের জন্য HTTP শিরোনামগুলি, Content- -শিরোনামগুলি ব্যতীত যেমন Content-Type , ব্যাচের প্রতিটি অনুরোধের জন্য প্রযোজ্য। আপনি যদি বাইরের অনুরোধ এবং একটি পৃথক কল উভয় ক্ষেত্রে একটি প্রদত্ত HTTP শিরোনাম উল্লেখ করেন, তাহলে পৃথক কল হেডারের মান বাইরের ব্যাচ অনুরোধ শিরোনামের মানকে ওভাররাইড করে। একটি পৃথক কলের শিরোনাম শুধুমাত্র সেই কলের জন্য প্রযোজ্য।

উদাহরণস্বরূপ, যদি আপনি একটি নির্দিষ্ট কলের জন্য একটি অনুমোদন শিরোনাম প্রদান করেন, তাহলে সেই শিরোনামটি শুধুমাত্র সেই কলের জন্য প্রযোজ্য হবে। আপনি যদি বাইরের অনুরোধের জন্য একটি অনুমোদন শিরোনাম প্রদান করেন, তাহলে সেই শিরোনামটি সমস্ত স্বতন্ত্র কলের ক্ষেত্রে প্রযোজ্য হবে যদি না তারা এটিকে তাদের নিজস্ব অথরাইজেশন হেডার দিয়ে ওভাররাইড করে।

যখন সার্ভার ব্যাচ করা অনুরোধটি পায়, তখন এটি প্রতিটি অংশে বাইরের অনুরোধের ক্যোয়ারী প্যারামিটার এবং শিরোনাম (যথাযথ হিসাবে) প্রয়োগ করে এবং তারপর প্রতিটি অংশকে এমনভাবে আচরণ করে যেন এটি একটি পৃথক HTTP অনুরোধ।

একটি ব্যাচ অনুরোধের প্রতিক্রিয়া

সার্ভারের প্রতিক্রিয়া হল multipart/mixed কন্টেন্ট টাইপ সহ একটি একক স্ট্যান্ডার্ড HTTP প্রতিক্রিয়া; প্রতিটি অংশ হল ব্যাচ করা অনুরোধের একটি অনুরোধের প্রতিক্রিয়া, অনুরোধের মতো একই ক্রমে।

অনুরোধের অংশগুলির মতো, প্রতিটি প্রতিক্রিয়া অংশে একটি স্ট্যাটাস কোড, হেডার এবং বডি সহ একটি সম্পূর্ণ HTTP প্রতিক্রিয়া রয়েছে৷ এবং অনুরোধের অংশগুলির মতো, প্রতিটি প্রতিক্রিয়া অংশের আগে একটি Content-Type শিরোনাম থাকে যা অংশের শুরুতে চিহ্নিত করে।

যদি অনুরোধের একটি প্রদত্ত অংশে একটি Content-ID শিরোনাম থাকে, তাহলে প্রতিক্রিয়াটির সংশ্লিষ্ট অংশে একটি মিলযুক্ত Content-ID শিরোনাম থাকে, যার মূল মান স্ট্রিং response- পূর্বে থাকে-, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে।

দ্রষ্টব্য : সার্ভার যেকোনো ক্রমে আপনার কল করতে পারে। আপনি যে ক্রমে তাদের নির্দিষ্ট করেছেন সেই ক্রমে তাদের মৃত্যুদন্ড কার্যকর করার উপর নির্ভর করবেন না। আপনি যদি নিশ্চিত করতে চান যে দুটি কল একটি প্রদত্ত ক্রমে হয়, আপনি সেগুলিকে একক অনুরোধে পাঠাতে পারবেন না; পরিবর্তে, প্রথমটি নিজেই পাঠান, তারপর দ্বিতীয়টি পাঠানোর আগে প্রথমটির প্রতিক্রিয়ার জন্য অপেক্ষা করুন৷

উদাহরণ

নিম্নলিখিত উদাহরণটি Google Analytics API-এর সাথে ব্যাচিংয়ের ব্যবহার দেখায়।

উদাহরণ ব্যাচ অনুরোধ

POST /batch/analytics/v3 HTTP/1.1
Host: www.googleapis.com
Content-length: 731
Content-type: multipart/mixed; boundary=batch_0123456789
Authorization: Bearer ya29.5gFZooleNoSpGqYOOF0eFciUGz1x26k9GagZoW7HJCogWlCoNOotxlZPo7bDbwo1ykDq
--batch_0123456789
Content-Type: application/http
Content-ID: 
Content-Transfer-Encoding: binary


POST https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1/customDimensions
Content-Type: application/json
Content-Length: 68


{
 "name": "Campaign Group",
 "scope": "SESSION",
 "active": true
}

--batch_0123456789
Content-Type: application/http
Content-ID: 
Content-Transfer-Encoding: binary


POST https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1/customDimensions
Content-Type: application/json
Content-Length: 67


{
 "name": "Campaign Type",
 "scope": "SESSION",
 "active": true
}

--batch_0123456789--

উদাহরণ ব্যাচ প্রতিক্রিয়া

এটি পূর্ববর্তী বিভাগে উদাহরণ অনুরোধের প্রতিক্রিয়া।

HTTP/1.1 200 OK
Content-length: 1876
X-xss-protection: 1; mode=block
X-content-type-options: nosniff
Expires: Wed, 02 Sep 2015 21:36:35 GMT
Vary: Origin,X-Origin
Server: GSE
Cache-control: private, max-age=0
Date: Wed, 02 Sep 2015 21:36:35 GMT
X-frame-options: SAMEORIGIN
Content-type: multipart/mixed; boundary=batch_KDU-RkhYyNI_AAkR9Jc5Z_Q
--batch_KDU-RkhYyNI_AAkR9Jc5Z_Q
Content-Type: application/http
Content-ID: 

HTTP/1.1 200 OK
ETag: "o-85COrcxoYkAw5itMLG4AKNpMY/L-Y_3uM9BpST8Sea-SJDRQ7N7vE"
Content-Type: application/json; charset=UTF-8
Date: Wed, 02 Sep 2015 21:36:35 GMT
Expires: Wed, 02 Sep 2015 21:36:35 GMT
Cache-Control: private, max-age=0
Content-Length: 548

{"kind":"analytics#customDimension","id":"ga:dimension18","accountId":"XXXXXX","webPropertyId":"UA-XXXXXX-1","name":"Campaign Group","index":18,"scope":"SESSION","active":true,"created":"2015-09-02T21:36:34.143Z","updated":"2015-09-02T21:36:34.143Z","selfLink":"https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1/customDimensions/ga:dimension18","parentLink":{"type":"analytics#webproperty","href":"https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1"}}
--batch_KDU-RkhYyNI_AAkR9Jc5Z_Q
Content-Type: application/http
Content-ID: 

HTTP/1.1 200 OK
ETag: "o-85COrcxoYkAw5itMLG4AKNpMY/VN-21fLS1T0Qko3pHEB5fi8vYJ8"
Content-Type: application/json; charset=UTF-8
Date: Wed, 02 Sep 2015 21:36:35 GMT
Expires: Wed, 02 Sep 2015 21:36:35 GMT
Cache-Control: private, max-age=0
Content-Length: 547

{"kind":"analytics#customDimension","id":"ga:dimension19","accountId":"XXXXXX","webPropertyId":"UA-XXXXXX-1","name":"Campaign Type","index":19,"scope":"SESSION","active":true,"created":"2015-09-02T21:36:35.099Z","updated":"2015-09-02T21:36:35.099Z","selfLink":"https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1/customDimensions/ga:dimension19","parentLink":{"type":"analytics#webproperty","href":"https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1"}}
--batch_KDU-RkhYyNI_AAkR9Jc5Z_Q--

ক্লায়েন্ট লাইব্রেরি

আপনার ভাষায় ব্যাচিং কীভাবে প্রয়োগ করবেন তা দেখতে নিম্নলিখিত ক্লায়েন্ট লাইব্রেরি গাইডগুলি ব্যবহার করুন:

ব্যাচিং এবং গুগল অ্যানালিটিক্স কোটা

যদিও ব্যাচিং আপনাকে অনেকগুলি HTTP অনুরোধ তৈরির ওভারহেড থেকে বাঁচাতে পারে একটি ব্যাচ অনুরোধের মধ্যে প্রতিটি Google Analytics API অনুরোধ আপনার দৈনিক প্রকল্প কোটার সাথে গণনা করা হবে৷ ডিফল্টরূপে একটি প্রকল্প প্রতিদিন 50,000 পর্যন্ত অনুরোধ করতে পারে; ব্যাচিং আপনাকে এই কোটার নিচে থাকতে সাহায্য করবে না।

ব্যাচ করা ব্যবহারকারীর অনুমতিগুলি বাদ দিয়ে (মুছে ফেলুন, সন্নিবেশ করান, আপডেট করুন) অনুরোধগুলি , সমস্ত হারের সীমা এখনও প্রযোজ্য। উদাহরণস্বরূপ, কোর রিপোর্টিং এপিআই প্রতি ভিউ (প্রোফাইল) প্রতি 10টি সমবর্তী অনুরোধের মধ্যে সীমাবদ্ধ; ব্যাচিং আপনাকে এই সীমার নিচে থাকতে সাহায্য করবে না।

প্রতি সেকেন্ডে 1.5 কোয়েরি (QPS) প্রতি অ্যাকাউন্ট আইডি সীমা ব্যবস্থাপনা API লেখার অনুরোধ এবং প্রভিশনিং API লেখার অনুরোধগুলিতে প্রযোজ্য। তাই, এই লেখার অনুরোধগুলি ব্যাচ করা কর্মক্ষমতা উন্নত নাও করতে পারে।