Search Analytics: query

অনুমোদনের প্রয়োজন

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

যখন তারিখ একটি ডাইমেনশন বা মাত্রা হয়, তখন ডেটাবিহীন দিনগুলো ফলাফলের তালিকা থেকে বাদ দেওয়া হয়। কোন দিনগুলোতে ডেটা আছে তা জানতে, আপনার কাঙ্ক্ষিত তারিখের পরিসরের জন্য তারিখ অনুযায়ী গ্রুপ করে কোনো ফিল্টার ছাড়া একটি কোয়েরি চালান।

ফলাফলগুলো ক্লিক সংখ্যা অনুসারে অবরোহী ক্রমে সাজানো হয়। যদি দুটি সারির ক্লিক সংখ্যা একই হয়, তবে সেগুলোকে যথেচ্ছভাবে সাজানো হয়।

এই মেথডটি কল করার জন্য পাইথন নমুনাটি দেখুন।

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

উপলব্ধ ডেটার পরিমাণের সীমাবদ্ধতা দেখুন

JSON POST উদাহরণ:
POST https://www.googleapis.com/webmasters/v3/sites/https%3A%2F%2Fwww.example.com%2F/searchAnalytics/query?key={MY_API_KEY}
{
  "startDate": "2015-04-01",
  "endDate": "2015-05-01",
  "dimensions": ["country","device"]
}
এখনই চেষ্টা করুন

অনুরোধ

HTTP অনুরোধ

POST https://www.googleapis.com/webmasters/v3/sites/siteUrl/searchAnalytics/query

প্যারামিটার

প্যারামিটার নাম মূল্য বর্ণনা
পথের পরামিতি
siteUrl string সার্চ কনসোলে সংজ্ঞায়িত প্রপার্টির ইউআরএল। উদাহরণ: http://www.example.com/ (ইউআরএল-প্রিফিক্স প্রপার্টির জন্য) অথবা sc-domain:example.com (ডোমেইন প্রপার্টির জন্য)

অনুমোদন

এই অনুরোধটির জন্য নিম্নলিখিত স্কোপগুলির মধ্যে অন্তত একটির মাধ্যমে অনুমোদন প্রয়োজন ( প্রমাণীকরণ এবং অনুমোদন সম্পর্কে আরও পড়ুন )।

পরিধি
https://www.googleapis.com/auth/webmasters.readonly
https://www.googleapis.com/auth/webmasters

অনুরোধকারী শরীর

অনুরোধের মূল অংশে, নিম্নলিখিত কাঠামো অনুযায়ী ডেটা সরবরাহ করুন:

{
  "startDate": string,
  "endDate": string,
  "dimensions": [
    string
  ],
  "type": string,
  "dimensionFilterGroups": [
    {
      "groupType": string,
      "filters": [
        {
          "dimension": string,
          "operator": string,
          "expression": string
        }
      ]
    }
  ],
  "aggregationType": string,
  "rowLimit": integer,
  "startRow": integer
}
সম্পত্তির নাম মূল্য বর্ণনা নোট
startDate string [ আবশ্যিক ] অনুরোধকৃত তারিখ পরিসরের শুরুর তারিখ, YYYY-MM-DD ফরম্যাটে, পিটি সময় (UTC - 7:00/8:00) অনুযায়ী হতে হবে। এটি অবশ্যই শেষ তারিখের সমান বা তার কম হতে হবে। এই মানটি পরিসরের অন্তর্ভুক্ত।
endDate string [ আবশ্যিক ] অনুরোধকৃত তারিখ পরিসরের শেষ তারিখ, YYYY-MM-DD ফরম্যাটে, পিটি সময় (UTC - 7:00/8:00) অনুযায়ী। অবশ্যই শুরুর তারিখের চেয়ে বড় বা সমান হতে হবে। এই মানটি পরিসরের অন্তর্ভুক্ত।
dimensions[] list [ ঐচ্ছিক ] ফলাফল গ্রুপ করার জন্য শূন্য বা তার বেশি ডাইমেনশন। আপনি যে ক্রমে এই ডাইমেনশনগুলো সরবরাহ করবেন, ফলাফল সেই ক্রমেই গ্রুপ করা হবে। আপনি যেকোনো ডাইমেনশনের নাম ব্যবহার করতে পারেন। dimensionFilterGroups[].filters[].dimension পাশাপাশি "date" এবং "hour"। প্রতিটি ফলাফল সারির জন্য একটি অনন্য কী তৈরি করতে গ্রুপিং ডাইমেনশনের মানগুলো একত্রিত করা হয়। যদি কোনো ডাইমেনশন নির্দিষ্ট না করা হয়, তাহলে সমস্ত মান একটি একক সারিতে একত্রিত হবে। আপনি যতগুলো ডাইমেনশন দ্বারা গ্রুপ করতে পারেন তার কোনো সীমা নেই, কিন্তু আপনি একই ডাইমেনশন দ্বারা দুইবার গ্রুপ করতে পারবেন না। উদাহরণ: [country, device]
searchType string অপ্রচলিত, এর পরিবর্তে type ব্যবহার করুন।
type string [ ঐচ্ছিক ] ফলাফল নিম্নলিখিত প্রকারে ফিল্টার করুন:
  • " discover ": ফলাফল আবিষ্কার করুন
  • " googleNews ": news.google.com এবং Android ও iOS-এর Google News অ্যাপ থেকে প্রাপ্ত ফলাফল। Google Search-এর "News" ট্যাবের ফলাফল এতে অন্তর্ভুক্ত নয়।
  • " news ": গুগল সার্চের "News" ট্যাব থেকে প্রাপ্ত অনুসন্ধানের ফলাফল।
  • " image ": গুগল সার্চের "Image" ট্যাব থেকে প্রাপ্ত অনুসন্ধানের ফলাফল।
  • " video ": ভিডিও অনুসন্ধানের ফলাফল
  • " web ": [ ডিফল্ট ] গুগল সার্চের সম্মিলিত ("All") ট্যাবে ফলাফল ফিল্টার করুন। এতে ডিসকভার বা গুগল নিউজের ফলাফল অন্তর্ভুক্ত নয়।
dimensionFilterGroups[] list [ ঐচ্ছিক ] ডাইমেনশন গ্রুপিং ভ্যালুগুলিতে প্রয়োগ করার জন্য শূন্য বা তার বেশি সংখ্যক ফিল্টার গ্রুপ। রেসপন্সে একটি সারি ফেরত আসার জন্য সমস্ত ফিল্টার গ্রুপ অবশ্যই মিলতে হবে। একটি একক ফিল্টার গ্রুপের মধ্যে, আপনি নির্দিষ্ট করতে পারেন যে সমস্ত ফিল্টার মিলতে হবে, নাকি অন্তত একটি মিলতে হবে।
dimensionFilterGroups[]. groupType string এই গ্রুপের সমস্ত ফিল্টারকে কি 'true' ("and") রিটার্ন করতে হবে, নাকি এক বা একাধিক ফিল্টারকে 'true' রিটার্ন করতে হবে ( যা এখনও সমর্থিত নয়)।

গ্রহণযোগ্য মানগুলো হলো:
  • and ": ফিল্টার গ্রুপ t-এর জন্য গ্রুপের সমস্ত ফিল্টারকে অবশ্যই 'true' রিটার্ন করতে হবে। সত্য হতে।
dimensionFilterGroups[]. filters[] list [ ঐচ্ছিক ] সারিটির উপর পরীক্ষা করার জন্য শূন্য বা তার বেশি ফিল্টার। প্রতিটি ফিল্টারে একটি ডাইমেনশনের নাম, একটি অপারেটর এবং একটি মান থাকে। সর্বোচ্চ দৈর্ঘ্য ৪০৯৬ অক্ষর। উদাহরণ:
country equals FRA
query contains mobile use
device notContains tablet
dimensionFilterGroups[].filters[]. dimension string যে ডাইমেনশনের উপর এই ফিল্টারটি প্রযোজ্য। আপনি এখানে তালিকাভুক্ত যেকোনো ডাইমেনশন দ্বারা ফিল্টার করতে পারেন, এমনকি যদি আপনি সেই ডাইমেনশন দ্বারা গ্রুপিং নাও করেন।

গ্রহণযোগ্য মানগুলো হলো:
  • " country ": ৩-অক্ষরের দেশের কোড ( ISO 3166-1 alpha-3 ) দ্বারা নির্দিষ্ট দেশের ভিত্তিতে ফিল্টার করুন।
  • " device ": নির্দিষ্ট ডিভাইসের ধরন অনুযায়ী ফলাফল ফিল্টার করুন। সমর্থিত মানসমূহ:
    • ডেস্কটপ
    • মোবাইল
    • ট্যাবলেট
  • " page ": নির্দিষ্ট URI স্ট্রিং অনুসারে ফিল্টার করুন।
  • ' query ': নির্দিষ্ট কোয়েরি স্ট্রিং অনুযায়ী ফিল্টার করুন।
  • " searchAppearance ": সার্চ রেজাল্টের একটি নির্দিষ্ট ফিচারের ভিত্তিতে ফিল্টার করুন। উপলব্ধ ভ্যালুগুলোর তালিকা দেখতে, 'searchAppearance' দ্বারা গ্রুপ করে একটি কোয়েরি চালান। ভ্যালু এবং বর্ণনার সম্পূর্ণ তালিকা হেল্প ডকুমেন্টেশনেও পাওয়া যায়।
dimensionFilterGroups[].filters[]. operator string [ ঐচ্ছিক ] আপনার নির্দিষ্ট করা মানটি সারির ডাইমেনশন মানের সাথে কীভাবে মিলবে (বা মিলবে না)।

গ্রহণযোগ্য মানগুলো হলো:
  • " contains ": সারির মানটিতে অবশ্যই আপনার এক্সপ্রেশনটি থাকতে হবে অথবা এটি তার সমান হতে হবে (কেস-সংবেদনশীল নয়)।
  • " equals ": [ ডিফল্ট ] আপনার এক্সপ্রেশনটি অবশ্যই সারির মানের সাথে হুবহু সমান হতে হবে (পৃষ্ঠা এবং কোয়েরি ডাইমেনশনের জন্য কেস-সেনসিটিভ)।
  • " notContains ": সারির মানটিতে আপনার এক্সপ্রেশনটি সাবস্ট্রিং হিসেবে অথবা (কেস-সংবেদনশীল নয় এমন) সম্পূর্ণ মিল হিসেবে থাকতে পারবে না।
  • " notEquals ": আপনার এক্সপ্রেশনটি অবশ্যই রো-এর মানের সাথে হুবহু সমান হবে না (পেজ এবং কোয়েরি ডাইমেনশনের ক্ষেত্রে কেস-সেনসিটিভ)।
  • " includingRegex ": একটি RE2 সিনট্যাক্স রেগুলার এক্সপ্রেশন যা অবশ্যই মিলতে হবে।
  • " excludingRegex ": একটি RE2 সিনট্যাক্স রেগুলার এক্সপ্রেশন যা অবশ্যই ম্যাচ করা যাবে না।
dimensionFilterGroups[].filters[]. expression string অপারেটরের উপর নির্ভর করে, ফিল্টারের জন্য মানটি মেলানো বা বাদ দেওয়া হবে।
aggregationType string

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

দ্রষ্টব্য: আপনি যদি পৃষ্ঠা অনুসারে গ্রুপ বা ফিল্টার করেন, তাহলে প্রপার্টি অনুসারে অ্যাগ্রিগেট করতে পারবেন না।

আপনি 'auto' ছাড়া অন্য কোনো মান নির্দিষ্ট করলে, ফলাফলের অ্যাগ্রিগেশন টাইপটি অনুরোধ করা টাইপের সাথে মিলবে, অথবা আপনি যদি একটি অবৈধ টাইপের জন্য অনুরোধ করেন, তাহলে আপনি একটি ত্রুটি পাবেন। অনুরোধ করা টাইপটি অবৈধ হলে API কখনোই আপনার অ্যাগ্রিগেশন টাইপ পরিবর্তন করবে না।

গ্রহণযোগ্য মানগুলো হলো:
  • " auto ": [ ডিফল্ট ] পরিষেবাটিকে উপযুক্ত অ্যাগ্রিগেশন টাইপ নির্ধারণ করতে দিন।
  • " byNewsShowcasePanel ": নিউজ শোকেস প্যানেল অনুযায়ী মান একত্রিত করুন। এটি অবশ্যই NEWS_SHOWCASE searchAppearance ফিল্টার এবং type=discover অথবা type=googleNews সাথে একত্রে ব্যবহার করতে হবে। যদি আপনি পৃষ্ঠা অনুযায়ী গ্রুপ করেন, পৃষ্ঠা অনুযায়ী ফিল্টার করেন, অথবা অন্য কোনো searchAppearance দিয়ে ফিল্টার করেন, তাহলে আপনি byNewsShowcasePanel দ্বারা একত্রিত করতে পারবেন না।
  • " byPage ": URI অনুযায়ী মানসমূহ একত্রিত করুন।
  • " byProperty ": প্রপার্টি অনুযায়ী মোট মান। type=discover বা type=googleNews জন্য সমর্থিত নয়।
rowLimit integer [ ঐচ্ছিক; বৈধ পরিসর ১–২৫,০০০; ডিফল্ট ১,০০০ ] ফেরত দেওয়া সারির সর্বোচ্চ সংখ্যা। ফলাফলের মধ্যে দিয়ে পৃষ্ঠা উল্টানোর জন্য, startRow অফসেট ব্যবহার করুন।
startRow integer [ ঐচ্ছিক; ডিফল্ট মান ০ ] রেসপন্সের প্রথম সারির শূন্য-ভিত্তিক ইনডেক্স। এটি অবশ্যই একটি অ-ঋণাত্মক সংখ্যা হতে হবে। যদি startRow মান কোয়েরির ফলাফলের সংখ্যাকে অতিক্রম করে, তাহলে রেসপন্সটি শূন্য সারি সহ একটি সফল রেসপন্স হবে।
dataState string [ ঐচ্ছিক ] যদি "all" (কেস-ইনসেনসিটিভ) হয়, তাহলে ডেটাতে নতুন ডেটা অন্তর্ভুক্ত থাকবে। যদি "final" (কেস-ইনসেনসিটিভ) হয় বা এই প্যারামিটারটি বাদ দেওয়া হয়, তাহলে ফেরত আসা ডেটাতে শুধুমাত্র চূড়ান্ত ডেটা অন্তর্ভুক্ত থাকবে। যদি "hourly_all" (কেস-ইনসেনসিটিভ) হয়, তাহলে ডেটাতে ঘণ্টাভিত্তিক বিভাজন অন্তর্ভুক্ত থাকবে। এটি নির্দেশ করবে যে ঘণ্টাভিত্তিক ডেটাতে আংশিক ডেটা অন্তর্ভুক্ত রয়েছে এবং HOUR API ডাইমেনশন দ্বারা গ্রুপ করার সময় এটি ব্যবহার করা উচিত।

প্রতিক্রিয়া

অনুরোধে উল্লেখিত ডাইমেনশন অনুযায়ী ফলাফলগুলো গ্রুপ করা হয়। একই ডাইমেনশন ভ্যালুযুক্ত সমস্ত ভ্যালু একটিমাত্র সারিতে গ্রুপ করা হবে। উদাহরণস্বরূপ, আপনি যদি কান্ট্রি ডাইমেনশন অনুযায়ী গ্রুপ করেন, তাহলে "usa"-এর সমস্ত ফলাফল একসাথে গ্রুপ করা হবে, "mdv"-এর সমস্ত ফলাফল একসাথে গ্রুপ করা হবে, ইত্যাদি। আপনি যদি কান্ট্রি এবং ডিভাইস অনুযায়ী গ্রুপ করেন, তাহলে "usa, tablet"-এর সমস্ত ফলাফল গ্রুপ করা হবে, "usa, mobile"-এর সমস্ত ফলাফল গ্রুপ করা হবে, ইত্যাদি। ক্লিক, ইম্প্রেশন ইত্যাদি কীভাবে গণনা করা হয় এবং সেগুলোর অর্থ কী, তার বিস্তারিত জানতে সার্চ অ্যানালিটিক্স রিপোর্টের ডকুমেন্টেশন দেখুন।

ফলাফলগুলো ক্লিক সংখ্যা অনুসারে অবরোহী ক্রমে সাজানো হয়, তবে যদি আপনি তারিখ অনুসারে গ্রুপ করেন, তাহলে ফলাফলগুলো তারিখ অনুসারে আরোহী ক্রমে (পুরনোটি প্রথমে, নতুনটি শেষে) সাজানো হয়। যদি দুটি সারির মধ্যে ফলাফল সমান হয়, তবে সাজানোর ক্রমটি ইচ্ছামত নির্ধারিত হয়।

দেখুন সর্বাধিক কতগুলো ভ্যালু রিটার্ন করা যাবে তা জানার জন্য রিকোয়েস্টের rowLimit প্রপার্টি ব্যবহার করা হয়।

{
  "rows": [
    {
      "keys": [
        string
      ],
      "clicks": double,
      "impressions": double,
      "ctr": double,
      "position": double
    }
  ],
  "responseAggregationType": string
}
সম্পত্তির নাম মূল্য বর্ণনা নোট
rows[] list কোয়েরিতে প্রদত্ত ক্রমানুসারে কী-ভ্যালু অনুযায়ী গ্রুপ করা সারিগুলির একটি তালিকা।
rows[]. keys[] list অনুরোধে নির্দিষ্ট করা ক্রম অনুসারে, অনুরোধে থাকা ডাইমেনশন অনুযায়ী গোষ্ঠীভুক্ত ঐ সারির ডাইমেনশন মানগুলির একটি তালিকা।
rows[]. clicks double সারিটির জন্য ক্লিক সংখ্যা।
rows[]. impressions double সারিটির জন্য ইম্প্রেশন সংখ্যা।
rows[]. ctr double সারিটির ক্লিক থ্রু রেট (CTR)। এর মান ০ থেকে ১.০ পর্যন্ত (উভয় মান সহ)।
rows[]. position double অনুসন্ধানের ফলাফলে গড় অবস্থান
responseAggregationType string ফলাফলগুলো কীভাবে একত্রিত করা হয়েছিল। সাইট এবং পেজ অনুযায়ী ডেটা কীভাবে ভিন্নভাবে গণনা করা হয়, তা জানতে সাহায্যকারী ডকুমেন্টেশন দেখুন

গ্রহণযোগ্য মানগুলো হলো:
  • " auto "
  • " byPage ": ফলাফলগুলো পৃষ্ঠা অনুসারে একত্রিত করা হয়েছিল।
  • " byProperty ": ফলাফলগুলো প্রপার্টি অনুসারে একত্রিত করা হয়েছে।
metadata object

একটি অবজেক্ট যা আপনার কোয়েরির ফলাফলের সাথে ফেরত আসতে পারে এবং যা ডেটার অবস্থা সম্পর্কে প্রাসঙ্গিক তথ্য প্রদান করে।

আপনি যখন সাম্প্রতিক ডেটার জন্য অনুরোধ করেন ( dataState জন্য all বা hourly_all ব্যবহার করে), তখন ফেরত আসা কিছু সারি অসম্পূর্ণ ডেটার প্রতিনিধিত্ব করতে পারে, যার অর্থ হলো ডেটাটি তখনও সংগ্রহ ও প্রক্রিয়াজাত করা হচ্ছে। এই মেটাডেটা অবজেক্টটি আপনাকে এটি ঠিক কখন শুরু এবং শেষ হয় তা শনাক্ত করতে সাহায্য করে।

এই তথ্যে প্রদত্ত সমস্ত তারিখ ও সময় America/Los_Angeles সময় অঞ্চল অনুযায়ী।

এই অবজেক্টের মধ্যে কোন নির্দিষ্ট ফিল্ডটি ফেরত আসবে তা নির্ভর করে আপনি অনুরোধে আপনার ডেটা কীভাবে গ্রুপ করেছেন তার উপর:

  • first_incomplete_date ( string ): প্রথম তারিখ যার জন্য ডেটা এখনও সংগ্রহ এবং প্রক্রিয়াকরণ করা হচ্ছে, যা YYYY-MM-DD ফরম্যাটে (ISO-8601 বর্ধিত স্থানীয় তারিখ ফরম্যাট) উপস্থাপন করা হয়।

    এই ফিল্ডটি শুধুমাত্র তখনই পূরণ করা হয় যখন অনুরোধের dataState ' all হয়, ডেটা date অনুসারে গ্রুপ করা থাকে এবং অনুরোধ করা তারিখের পরিসরে অসম্পূর্ণ ডেটা পয়েন্ট থাকে।

    first_incomplete_date এর পরের সমস্ত মান এখনও উল্লেখযোগ্যভাবে পরিবর্তিত হতে পারে।

  • first_incomplete_hour ( string ): প্রথম ঘন্টা যার জন্য ডেটা এখনও সংগ্রহ এবং প্রক্রিয়াকরণ করা হচ্ছে, যা YYYY-MM-DDThh:mm:ss[+|-]hh:mm ফরম্যাটে (ISO-8601 বর্ধিত অফসেট তারিখ-সময় ফরম্যাট) উপস্থাপন করা হয়।

    এই ফিল্ডটি শুধুমাত্র তখনই পূরণ করা হয় যখন অনুরোধের dataState hourly_all হয়, ডেটা hour অনুযায়ী গ্রুপ করা থাকে এবং অনুরোধ করা তারিখের পরিসরে অসম্পূর্ণ ডেটা পয়েন্ট থাকে।

    first_incomplete_hour এর পরের সমস্ত মান এখনও লক্ষণীয়ভাবে পরিবর্তিত হতে পারে।

চেষ্টা করে দেখুন!

লাইভ ডেটার উপর এই মেথডটি কল করতে এবং প্রতিক্রিয়া দেখতে নিচের এপিআই এক্সপ্লোরারটি ব্যবহার করুন।