Search Analytics: query

अनुमति ज़रूरी है

अपनी तय की गई शर्तों के हिसाब से, फ़िल्टर और पैरामीटर का इस्तेमाल करके, खोज ट्रैफ़िक के डेटा के बारे में क्वेरी करें. यह तरीका, आपके तय किए गए डाइमेंशन के हिसाब से ग्रुप की गई शून्य या उससे ज़्यादा पंक्तियां दिखाता है. आपको एक या उससे ज़्यादा दिनों की तारीख की सीमा तय करनी होगी.

अगर तारीख को डाइमेंशन के तौर पर इस्तेमाल किया जाता है, तो जिस तारीख का डेटा उपलब्ध नहीं होता है उसे नतीजों की सूची में शामिल नहीं किया जाता. यह जानने के लिए कि किन दिनों का डेटा उपलब्ध है, तारीख के हिसाब से ग्रुप किए गए फ़िल्टर के बिना क्वेरी जारी करें. इसके लिए, तारीख की वह सीमा चुनें जिसमें आपकी दिलचस्पी है.

नतीजों को क्लिक की संख्या के हिसाब से घटते क्रम में लगाया जाता है. अगर दो लाइनों में क्लिक की संख्या एक जैसी है, तो उन्हें किसी भी क्रम में लगाया जा सकता है.

इस तरीके को कॉल करने के लिए, Python का सैंपल देखें.

एपीआई, Search Console की अंदरूनी सीमाओं के हिसाब से काम करता है. यह डेटा की सभी लाइनों को वापस लाने की गारंटी नहीं देता, बल्कि सबसे ऊपर की लाइनों को वापस लाता है.

उपलब्ध डेटा की सीमाएं देखें.

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"]
}
इसे अभी आज़माएं.

अनुरोध

एचटीटीपी अनुरोध

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

पैरामीटर

पैरामीटर का नाम वैल्यू ब्यौरा
पाथ पैरामीटर
siteUrl string Search Console में जोड़ी गई प्रॉपर्टी का यूआरएल. उदाहरण: 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 फ़ॉर्मैट में होनी चाहिए. साथ ही, यह पैसिफ़िक समय (यूटीसी - 7:00/8:00) के हिसाब से होनी चाहिए. यह तारीख, खत्म होने की तारीख से पहले या उसके बराबर होनी चाहिए. यह वैल्यू, रेंज में शामिल होती है.
endDate string [ज़रूरी है] तारीख की उस सीमा की आखिरी तारीख जिसके लिए अनुरोध किया गया है. यह तारीख, YYYY-MM-DD फ़ॉर्मैट में होनी चाहिए. साथ ही, यह पीटी समय (यूटीसी - 7:00/8:00) के हिसाब से होनी चाहिए. यह तारीख, शुरू होने की तारीख से ज़्यादा या इसके बराबर होनी चाहिए. यह वैल्यू, रेंज में शामिल होती है.
dimensions[] list [ज़रूरी नहीं] नतीजों को ग्रुप करने के लिए, शून्य या उससे ज़्यादा डाइमेंशन. नतीजों को उसी क्रम में ग्रुप किया जाता है जिस क्रम में आपने इन डाइमेंशन को दिया है. dimensionFilterGroups[].filters[].dimension में, किसी भी डाइमेंशन के नाम के साथ-साथ "तारीख" और "घंटा" का इस्तेमाल किया जा सकता है. ग्रुपिंग डाइमेंशन की वैल्यू को मिलाकर, हर नतीजे की लाइन के लिए एक यूनीक कुंजी बनाई जाती है. अगर कोई डाइमेंशन नहीं चुना जाता है, तो सभी वैल्यू को एक लाइन में शामिल कर दिया जाएगा. ग्रुप बनाने के लिए, जितने चाहें उतने डाइमेंशन इस्तेमाल किए जा सकते हैं. हालांकि, एक ही डाइमेंशन का इस्तेमाल दो बार नहीं किया जा सकता. उदाहरण: [country, device]
searchType string इस्तेमाल बंद कर दिया गया है. इसके बजाय, type का इस्तेमाल करें
type string [ज़रूरी नहीं है] नतीजों को इस तरह के फ़िल्टर करें:
  • "discover": 'डिस्कवर' के नतीजे
  • "googleNews": Android और iOS पर Google News ऐप्लिकेशन और news.google.com से मिले नतीजे. इसमें Google Search में मौजूद "News" टैब के नतीजे शामिल नहीं होते.
  • "news": Google Search में "समाचार" टैब से मिले खोज के नतीजे.
  • "image": Google Search में "इमेज" टैब से मिले खोज के नतीजे.
  • "video": वीडियो खोजने के नतीजे
  • "web": [डिफ़ॉल्ट] Google Search में, एक साथ दिखने वाले ("सभी") टैब में नतीजों को फ़िल्टर करता है. इसमें 'डिस्कवर' या Google News के नतीजे शामिल नहीं होते.
dimensionFilterGroups[] list [ज़रूरी नहीं] डाइमेंशन ग्रुपिंग की वैल्यू पर लागू करने के लिए, फ़िल्टर के शून्य या उससे ज़्यादा ग्रुप. जवाब में किसी लाइन को दिखाने के लिए, यह ज़रूरी है कि सभी फ़िल्टर ग्रुप मैच करें. एक फ़िल्टर ग्रुप में, यह तय किया जा सकता है कि सभी फ़िल्टर मैच होने चाहिए या कम से कम एक फ़िल्टर मैच होना चाहिए.
dimensionFilterGroups[].groupType string इस ग्रुप में मौजूद सभी फ़िल्टर के लिए, "and" वैल्यू सेट की जानी चाहिए या एक या उससे ज़्यादा फ़िल्टर के लिए, true वैल्यू सेट की जानी चाहिए (यह सुविधा अभी उपलब्ध नहीं है).

इन वैल्यू का इस्तेमाल किया जा सकता है:
  • "and": फ़िल्टर ग्रुप t के सही होने के लिए, ग्रुप के सभी फ़िल्टर का सही होना ज़रूरी है.
dimensionFilterGroups[].filters[] list [ज़रूरी नहीं] लाइन के हिसाब से जांच करने के लिए, शून्य या उससे ज़्यादा फ़िल्टर. हर फ़िल्टर में, डाइमेंशन का नाम, ऑपरेटर, और वैल्यू होती है. ज़्यादा से ज़्यादा 4096 वर्ण इस्तेमाल किए जा सकते हैं. उदाहरण:
country equals FRA
query contains mobile use
device notContains tablet
dimensionFilterGroups[].filters[].dimension string वह डाइमेंशन जिस पर यह फ़िल्टर लागू होता है. यहां दिए गए किसी भी डाइमेंशन के हिसाब से फ़िल्टर किया जा सकता है. भले ही, आपने उस डाइमेंशन के हिसाब से ग्रुप न बनाया हो.

इन वैल्यू का इस्तेमाल किया जा सकता है:
  • "country": ISO 3166-1 alpha-3 के मुताबिक, तीन अक्षरों वाले देश के कोड के हिसाब से फ़िल्टर करें.
  • "device": इससे, खोज के नतीजों को डिवाइस टाइप के हिसाब से फ़िल्टर किया जाता है. इस्तेमाल की जा सकने वाली वैल्यू:
    • DESKTOP
    • MOBILE
    • TABLET
  • "page": दी गई यूआरआई स्ट्रिंग के हिसाब से फ़िल्टर करें.
  • "query": यह फ़िल्टर, दी गई क्वेरी स्ट्रिंग के हिसाब से काम करता है.
  • searchAppearance: खोज के नतीजे पाने की सुविधा के लिए फ़िल्टर करें. उपलब्ध वैल्यू की सूची देखने के लिए, "searchAppearance" के हिसाब से ग्रुप की गई क्वेरी चलाएं. वैल्यू और उनके ब्यौरे की पूरी सूची, सहायता दस्तावेज़ में भी उपलब्ध है.
dimensionFilterGroups[].filters[].operator string [ज़रूरी नहीं] आपकी तय की गई वैल्यू, लाइन के डाइमेंशन की वैल्यू से कैसे मैच करनी चाहिए या मैच नहीं करनी चाहिए.

इन वैल्यू का इस्तेमाल किया जा सकता है:
  • "contains": लाइन की वैल्यू में आपका एक्सप्रेशन शामिल होना चाहिए या उसके बराबर होना चाहिए. इसमें केस-सेंसिटिविटी का ध्यान नहीं रखा जाता.
  • "equals": [डिफ़ॉल्ट] आपका एक्सप्रेशन, लाइन में दी गई वैल्यू के बिलकुल बराबर होना चाहिए. पेज और क्वेरी डाइमेंशन के लिए, यह केस-सेंसिटिव होता है.
  • "notContains": पंक्ति की वैल्यू में, आपका एक्सप्रेशन सबस्ट्रिंग के तौर पर या केस-सेंसिटिव (अक्षर के छोटे-बड़े होने से फ़र्क़ नहीं पड़ता) पूरी तरह से मैच नहीं होना चाहिए.
  • "notEquals": आपका एक्सप्रेशन, लाइन की वैल्यू के बिलकुल बराबर नहीं होना चाहिए. पेज और क्वेरी डाइमेंशन के लिए, केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) होना ज़रूरी है.
  • "includingRegex": यह एक RE2 सिंटैक्स रेगुलर एक्सप्रेशन है, जिसका मिलान किया जाना चाहिए.
  • "excludingRegex": यह एक RE2 सिंटैक्स रेगुलर एक्सप्रेशन है, जो मैच नहीं होना चाहिए.
dimensionFilterGroups[].filters[].expression string ऑपरेटर के आधार पर, फ़िल्टर की वैल्यू को मैच करना या बाहर रखना.
aggregationType string

[ज़रूरी नहीं] डेटा को कैसे एग्रीगेट किया जाता है. अगर प्रॉपर्टी के हिसाब से एग्रीगेट किया जाता है, तो एक ही प्रॉपर्टी का पूरा डेटा एग्रीगेट किया जाता है. अगर पेज के हिसाब से एग्रीगेट किया जाता है, तो पूरा डेटा कैननिकल यूआरआई के हिसाब से एग्रीगेट किया जाता है. अगर आपको पेज के हिसाब से फ़िल्टर या ग्रुप करना है, तो 'अपने-आप' विकल्प चुनें. इसके अलावा, डेटा को प्रॉपर्टी या पेज के हिसाब से एग्रीगेट किया जा सकता है. यह इस बात पर निर्भर करता है कि आपको डेटा का हिसाब कैसे करना है. साइट और पेज के हिसाब से डेटा का हिसाब अलग-अलग तरीके से कैसे किया जाता है, यह जानने के लिए सहायता दस्तावेज़ देखें.

ध्यान दें: अगर आपने पेज के हिसाब से ग्रुप बनाया है या फ़िल्टर किया है, तो प्रॉपर्टी के हिसाब से एग्रीगेट नहीं किया जा सकता.

'अपने-आप' के अलावा कोई दूसरी वैल्यू तय करने पर, नतीजे में एग्रीगेशन टाइप, अनुरोध किए गए टाइप से मेल खाएगा. इसके अलावा, अगर आपने कोई अमान्य टाइप का अनुरोध किया है, तो आपको एक गड़बड़ी का मैसेज मिलेगा. अगर अनुरोध किया गया टाइप अमान्य है, तो एपीआई कभी भी आपके एग्रीगेशन टाइप को नहीं बदलेगा.

इन वैल्यू का इस्तेमाल किया जा सकता है:
  • "auto": [डिफ़ॉल्ट] सेवा को यह तय करने दें कि एग्रीगेशन का सही टाइप क्या है.
  • "byNewsShowcasePanel": News Showcase पैनल के हिसाब से वैल्यू एग्रीगेट करें. इसका इस्तेमाल, NEWS_SHOWCASE searchAppearance फ़िल्टर के साथ-साथ type=discover या type=googleNews में से किसी एक के साथ किया जाना चाहिए. अगर आपने पेज के हिसाब से ग्रुप बनाया है, पेज के हिसाब से फ़िल्टर किया है या किसी अन्य searchAppearance के हिसाब से फ़िल्टर किया है, तो byNewsShowcasePanel के हिसाब से एग्रीगेट नहीं किया जा सकता.
  • "byPage": यूआरआई के हिसाब से वैल्यू एग्रीगेट करें.
  • "byProperty": प्रॉपर्टी के हिसाब से वैल्यू एग्रीगेट करें. type=discover या type=googleNews के लिए उपलब्ध नहीं है
rowLimit integer [ज़रूरी नहीं; मान्य सीमा 1 से 25,000 है; डिफ़ॉल्ट वैल्यू 1,000 है] लौटाए जाने वाली पंक्तियों की ज़्यादा से ज़्यादा संख्या. नतीजों को पेज के हिसाब से देखने के लिए, startRow ऑफ़सेट का इस्तेमाल करें.
startRow integer [ज़रूरी नहीं; डिफ़ॉल्ट वैल्यू 0 है] जवाब में पहली पंक्ति का ज़ीरो-आधारित इंडेक्स. यह एक गैर-ऋणात्मक संख्या होनी चाहिए. अगर 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 लाइन के लिए क्लिक मिलने की दर (सीटीआर). वैल्यू 0 से 1.0 के बीच होनी चाहिए. हालांकि, इन दोनों में से भी कोई संख्या हो सकती है.
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 के बाद की सभी वैल्यू में अब भी काफ़ी बदलाव हो सकता है.

इसे आज़माएं!

लाइव डेटा पर इस तरीके को कॉल करने और जवाब देखने के लिए, यहां दिए गए APIs explorer का इस्तेमाल करें.