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

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

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

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

क्लॉज़

वीडियो: GAQL फ़ील्ड की तुलना

SELECT

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 के तौर पर मार्क किया जाएगा.
  • दोहराए गए फ़ील्ड के एट्रिब्यूट चुनना. इन फ़ील्ड के isRepeated मेटाडेटा एट्रिब्यूट को true के तौर पर मार्क किया जाएगा.
  • FROM क्लॉज़ में दिए गए संसाधन के लिए, ऐसे फ़ील्ड चुनना जो उपलब्ध नहीं हैं. कुछ संसाधनों के एट्रिब्यूट को एक साथ नहीं चुना जा सकता. साथ ही, FROM क्लॉज़ में दिए गए संसाधन के लिए, सभी मेट्रिक और सेगमेंट का सिर्फ़ सबसेट उपलब्ध होगा.
  • ऐसे सेगमेंट या मेट्रिक चुनना जो एक-दूसरे के साथ काम नहीं करते. इस बारे में ज़्यादा जानकारी के लिए, सेगमेंटेशन सेक्शन देखें.

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

FROM

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

किसी क्वेरी के लिए, 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 पैटर्न के मुताबिक होनी चाहिए. किसी क्वेरी में 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

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 पर सेट होता है. इसलिए, संसाधन के सभी नाम वाले फ़ील्ड लौटाए जाते हैं.
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 के तौर पर तय किया गया है. साथ ही, campaign.resource_name का अनुरोध SELECT क्लॉज़ के हिस्से के तौर पर किया गया है.

भाषा के अन्य नियम

हर क्लॉज़ के उदाहरणों के अलावा, 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'