क्वेरी स्ट्रक्चर

संसाधन, सेगमेंट, और मेट्रिक फ़ील्ड के लिए क्वेरी, GoogleAdsService Search या SearchStream तरीकों से भेजी जा सकती हैं. Google Ads क्वेरी लैंग्वेज में क्वेरी बनाने के लिए, आपको लैंग्वेज ग्रामर का इस्तेमाल करके क्वेरी बनानी होगी. Google Ads क्वेरी लैंग्वेज के बारे में खास जानकारी पाने के लिए, Google Ads क्वेरी लैंग्वेज के बारे में खास जानकारी देखें. क्वेरी में कई क्लॉज़ होते हैं:

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT
  • PARAMETERS

सही डेटा चुनने के लिए, क्लॉज़ में फ़ील्ड के नाम, संसाधन के नाम, ऑपरेटर, शर्तें, और क्रम का इस्तेमाल किया जाता है. Google Ads API का इस्तेमाल करके, एक ही क्वेरी में अनुरोध किया जा सकता है.

के दस्तावेज़ देखें.

क्लॉज़

यहां दिए गए सेक्शन में, Google Ads क्वेरी लैंग्वेज के हर क्लॉज़ के मकसद और सिंटैक्स के बारे में बताया गया है.

चुनें

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

यहां दी गई सैंपल क्वेरी में, किसी संसाधन के लिए एट्रिब्यूट चुनने का उदाहरण दिखाया गया है:

SELECT
  campaign.id,
  campaign.name
FROM campaign

एक ही अनुरोध में अलग-अलग फ़ील्ड टाइप के लिए अनुरोध किया जा सकता है. उदाहरण के लिए:

SELECT
  campaign.id,
  campaign.name,
  bidding_strategy.id,
  bidding_strategy.name,
  segments.device,
  segments.date,
  metrics.impressions,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
  • मुख्य संसाधन फ़ील्ड
    • campaign.id
    • campaign.name
  • एट्रिब्यूट किए गए संसाधन के फ़ील्ड
    • bidding_strategy.id
    • bidding_strategy.name
  • सेगमेंट फ़ील्ड
    • segments.device
    • segments.date
  • मेट्रिक
    • metrics.impressions
    • metrics.clicks
  • ऐसे फ़ील्ड के लिए क्वेरी करना जिन्हें चुना नहीं जा सकता. इन फ़ील्ड के selectable मेटाडेटा एट्रिब्यूट को false के तौर पर मार्क किया जाएगा.
  • दोहराए गए फ़ील्ड के एट्रिब्यूट चुनना. इन फ़ील्ड के is_repeated मेटाडेटा एट्रिब्यूट को true के तौर पर मार्क किया जाएगा.
  • ऐसे फ़ील्ड चुनना जो FROM क्लॉज़ में दिए गए संसाधन के लिए उपलब्ध नहीं हैं. कुछ संसाधनों के एट्रिब्यूट को एक साथ नहीं चुना जा सकता. साथ ही, FROM क्लॉज़ में संसाधन के लिए, सभी मेट्रिक और सेगमेंट का सिर्फ़ सबसेट उपलब्ध होगा.
  • ऐसे सेगमेंट या मेट्रिक चुनना जो एक-दूसरे के साथ काम नहीं करते. इस बारे में ज़्यादा जानकारी के लिए, सेगमेंटेशन सेक्शन देखें.

ऊपर दी गई शर्तों के बारे में जानकारी, हमारे रेफ़रंस दस्तावेज़ों में या GoogleAdsFieldService से मिल सकती है.

FROM

FROM क्लॉज़, उस मुख्य संसाधन के बारे में बताता है जिसे दिखाया जाएगा. FROM क्लॉज़ में मौजूद संसाधन से यह तय होता है कि दी गई क्वेरी के लिए, अन्य सभी क्लॉज़ में किन फ़ील्ड का इस्तेमाल किया जा सकता है. FROM क्लॉज़ में सिर्फ़ एक संसाधन के बारे में बताया जा सकता है. GoogleAdsService Search या SearchStream तरीकों के लिए, क्वेरी में FROM क्लॉज़ ज़रूरी है. हालांकि, GoogleAdsFieldService का इस्तेमाल करते समय, FROM क्लॉज़ को नहीं बताया जाना चाहिए.

किसी क्वेरी के लिए, FROM क्लॉज़ में सिर्फ़ एक संसाधन मौजूद हो सकता है. हालांकि, एट्रिब्यूट किए गए संसाधनों के फ़ील्ड भी उपलब्ध हो सकते हैं. ये संसाधन, FROM क्लॉज़ में मौजूद संसाधन के साथ अपने-आप जुड़ जाते हैं. इसलिए, इनकी वैल्यू पाने के लिए, आपको सिर्फ़ इनके एट्रिब्यूट को SELECT क्लॉज़ में जोड़ना होगा. सभी संसाधनों के लिए, एट्रिब्यूट किए गए संसाधन उपलब्ध नहीं होते. यहां दिए गए उदाहरण में, विज्ञापन ग्रुप से विज्ञापन ग्रुप आईडी और कैंपेन आईडी, दोनों का अनुरोध किया जा सकता है:

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

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

SELECT ad_group.id
FROM ad_group

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

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

WHERE

WHERE क्लॉज़ में, अनुरोध के लिए डेटा फ़िल्टर करते समय लागू होने वाली शर्तों के बारे में बताया गया है. WHERE क्लॉज़ का इस्तेमाल करते समय, एक या उससे ज़्यादा शर्तें तय की जा सकती हैं. इन्हें अलग करने के लिए, AND का इस्तेमाल करें. शर्तें आम तौर पर इस पैटर्न में होती हैं field_name Operator value (या BETWEEN value AND value, IS NULL या IS NOT NULL का इस्तेमाल करें). क्वेरी में WHERE क्लॉज़ ज़रूरी नहीं है.

यहां दिए गए उदाहरण में, किसी समयावधि की मेट्रिक वापस पाने के लिए WHERE का इस्तेमाल किया गया है:

SELECT
  campaign.id,
  campaign.name,
  metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

डेटा को फ़िल्टर करने के लिए, कई शर्तों को एक साथ इस्तेमाल किया जा सकता है. इस उदाहरण में, पिछले 30 दिनों में मोबाइल पर इंप्रेशन पाने वाले सभी कैंपेन के लिए, क्लिक की संख्या का अनुरोध किया जाएगा:

SELECT
  campaign.id,
  campaign.name,
  segments.device,
  metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
  AND segments.device = MOBILE
  AND segments.date DURING LAST_30_DAYS

WHERE क्लॉज़ में मौजूद सेगमेंट, SELECT क्लॉज़ में होने चाहिए. हालांकि, तारीख के इन सेगमेंट को छोड़कर: इन्हें तारीख के मुख्य सेगमेंट कहा जाता है:

  • segments.date
  • segments.week
  • segments.month
  • segments.quarter
  • segments.year

यहां दी गई क्वेरी में ध्यान दें कि segments.date को चुना गया है. यह सेगमेंट, तारीख के हिसाब से सेगमेंट में बांटे गए डेटा का मुख्य सेगमेंट है. इसलिए, इसके लिए WHERE क्लॉज़ में, तारीख के हिसाब से सेगमेंट में बांटे गए डेटा के मुख्य सेगमेंट से बनी तारीख की एक तय सीमा देना ज़रूरी है:

SELECT
  campaign.id,
  campaign.name,
  segments.date,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

ऊपर दी गई शर्त को पूरा करने वाले सभी सेगमेंट segments.date, segments.week, segments.month, segments.quarter, और segments.year हैं. अगर इनमें से कोई सेगमेंट चुना जाता है, तो कम से कम एक सेगमेंट का इस्तेमाल WHERE क्लॉज़ में किया जाना चाहिए.

तारीख के हिसाब से फ़िल्टर करने के बारे में ज़्यादा जानने के लिए, तारीख की सीमाएं देखें.

फ़िल्टर करते समय, ऑपरेटर के केस-सेंसिटिव होने का ध्यान रखना ज़रूरी है. ज़्यादा जानकारी के लिए, केस सेंसिटिविटी देखें.

ऑपरेटर की पूरी सूची देखने के लिए, भाषा के व्याकरण से सलाह लें.

ORDER BY

ORDER BY क्लॉज़ से यह तय होता है कि नतीजे किस क्रम में दिखाए जाएंगे. इसकी मदद से, फ़ील्ड के नाम के आधार पर डेटा को बढ़ते या घटते क्रम में व्यवस्थित किया जा सकता है. हर क्रम को field_name के तौर पर बताया जाता है. इसके बाद, ASC या DESC लिखा जाता है. अगर ASC या DESC में से कोई भी वैल्यू नहीं दी गई है, तो डिफ़ॉल्ट रूप से क्रम ASC पर सेट होता है. क्वेरी में ORDER BY क्लॉज़ का इस्तेमाल करना ज़रूरी नहीं है.

नीचे दी गई क्वेरी, मिले हुए कैंपेन को सबसे ज़्यादा से सबसे कम क्लिक की संख्या के हिसाब से क्रम में लगाती है:

SELECT
  campaign.name,
  metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC

ORDER BY क्लॉज़ में एक से ज़्यादा फ़ील्ड तय किए जा सकते हैं. इसके लिए, कॉमा लगाकर अलग की गई सूची का इस्तेमाल करें. क्वेरी में बताए गए क्रम के मुताबिक ही प्रॉडक्ट दिखाए जाएंगे. उदाहरण के लिए, इस क्वेरी में विज्ञापन ग्रुप का डेटा चुना जा रहा है. नतीजों को इस क्रम में लगाया जाएगा: कैंपेन के नाम के हिसाब से बढ़ते क्रम में, फिर इंप्रेशन की संख्या के हिसाब से घटते क्रम में, और फिर क्लिक की संख्या के हिसाब से घटते क्रम में:

SELECT
  campaign.name,
  ad_group.name,
  metrics.impressions,
  metrics.clicks
FROM ad_group
ORDER BY
  campaign.name,
  metrics.impressions DESC,
  metrics.clicks DESC

LIMIT

LIMIT क्लॉज़ की मदद से, दिखाए जाने वाले नतीजों की संख्या तय की जा सकती है. अगर आपको सिर्फ़ खास जानकारी चाहिए, तो यह सुविधा आपके लिए फ़ायदेमंद है.

उदाहरण के लिए, LIMIT का इस्तेमाल करके, इस क्वेरी के लिए नतीजों की कुल संख्या को सीमित किया जा सकता है:

SELECT
  campaign.name,
  ad_group.name,
  segments.device,
  metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50

पैरामीटर

PARAMETERS क्लॉज़ की मदद से, अनुरोध के लिए मेटा पैरामीटर तय किए जा सकते हैं. इन पैरामीटर से, यह तय हो सकता है कि किस तरह की लाइनें दिखाई जाएंगी.

इन मेटा पैरामीटर का इस्तेमाल किया जा सकता है:

include_drafts

ड्राफ़्ट की गई इकाइयों को वापस लाने की अनुमति देने के लिए, include_drafts को true पर सेट करें. डिफ़ॉल्ट रूप से, इसकी वैल्यू false होती है.

उदाहरण के लिए, यहां दी गई क्वेरी से ड्राफ़्ट कैंपेन के साथ-साथ सामान्य कैंपेन भी फ़ेच किए जाते हैं:

SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true

omit_unselected_resource_names

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

omit_unselected_resource_names के उदाहरण
SELECT
  campaign.name,
  customer.id
FROM campaign
Returned resources:
campaign.resource_name
customer.resource_name

omit_unselected_resource_names की डिफ़ॉल्ट वैल्यू false होती है. इसलिए, सभी resource_name फ़ील्ड की वैल्यू दिखती है.
SELECT
  campaign.name,
  customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true
Returned resources:
कोई नहीं.
omit_unselected_resource_names को true और campaign.resource_name के तौर पर तय किया गया है. साथ ही, customer.resource_name SELECT क्लॉज़ का हिस्सा नहीं है.
SELECT
  campaign.name,
  campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true
Returned resource:
campaign.resource_name
omit_unselected_resource_names को true के तौर पर तय किया गया है. साथ ही, SELECT क्लॉज़ के हिस्से के तौर पर campaign.resource_name का अनुरोध किया गया है.

भाषा से जुड़े अन्य नियम

हर क्लॉज़ के उदाहरणों के अलावा, Google Ads क्वेरी लैंग्वेज में ये व्यवहार भी होते हैं जिनका इस्तेमाल किया जा सकता है:

  • क्वेरी के लिए, मुख्य संसाधन फ़ील्ड का SELECT क्लॉज़ में होना ज़रूरी नहीं है. उदाहरण के लिए, आपको डेटा फ़िल्टर करने के लिए, सिर्फ़ एक या उससे ज़्यादा मुख्य संसाधन फ़ील्ड का इस्तेमाल करना पड़ सकता है:

    SELECT campaign.id
    FROM ad_group
    WHERE ad_group.status = PAUSED
    
  • किसी संसाधन के लिए सिर्फ़ मेट्रिक चुनी जा सकती हैं. क्वेरी में संसाधन के किसी अन्य फ़ील्ड की ज़रूरत नहीं होती:

    SELECT
      metrics.impressions,
      metrics.clicks,
      metrics.cost_micros
    FROM campaign
    
  • बिना किसी संसाधन फ़ील्ड या मेट्रिक के, सेगमेंटेशन फ़ील्ड चुने जा सकते हैं:

    SELECT segments.device FROM campaign
    
  • resource_name फ़ील्ड (उदाहरण के लिए, campaign.resource_name) का इस्तेमाल, डेटा को फ़िल्टर करने या क्रम से लगाने के लिए किया जा सकता है:

    SELECT
      campaign.id,
      campaign.name
    FROM campaign
    WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'