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

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

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

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

क्लॉज़

वीडियो: GAQL फ़ील्ड के साथ काम करने की सुविधा

चुनें

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

इन पाबंदियों की वजह से, SELECT क्लॉज़ में कुछ फ़ील्ड इस्तेमाल करने की अनुमति नहीं है:

  • ऐसे फ़ील्ड के लिए क्वेरी करना जिन्हें चुना नहीं जा सकता. इन फ़ील्ड के Selectable मेटाडेटा एट्रिब्यूट को false के तौर पर मार्क किया जाएगा.
  • दोहराए गए फ़ील्ड के एट्रिब्यूट चुनना. इन फ़ील्ड के isRepeated मेटाडेटा एट्रिब्यूट को 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 पैटर्न के मुताबिक होनी चाहिए. क्वेरी में 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 के तौर पर तय किया गया है और campaign.resource_name का अनुरोध SELECT क्लॉज़ के तहत किया गया है.

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

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

  • क्वेरी के लिए, मुख्य संसाधन फ़ील्ड का 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'