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

संसाधन, सेगमेंट, और मेट्रिक फ़ील्ड के लिए क्वेरी, 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 पर सेट होता है.

क्वेरी लौटाए गए संसाधन
SELECT
  campaign.name,
  customer.id
FROM campaign
  • 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

कोई नहीं

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
  • 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'