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

रिसॉर्स, सेगमेंट, और मेट्रिक फ़ील्ड के लिए क्वेरी, GoogleAdsService Search या SearchStream तरीकों में भेजी जा सकती हैं. 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

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

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

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

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 का इस्तेमाल नीचे दी गई क्वेरी के लिए नतीजों की कुल संख्या को सीमित करने के लिए किया जा सकता है:

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 होती है.

छोड़ें_unselected_resource_names के उदाहरण
SELECT
  campaign.name,
  customer.id
FROM campaign
Returned resources:
campaign.resource_name
customer.resource_name

omit_unselected_resource_names, false को डिफ़ॉल्ट रूप से सेट करता है, इसलिए सभी रिसॉर्स_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 क्वेरी लैंग्वेज में नीचे दिए गए व्यवहार हैं, जिनका इस्तेमाल किया जा सकता है:

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

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

    SELECT
      metrics.impressions,
      metrics.clicks,
      metrics.costMicros
    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'