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

रिसॉर्स, सेगमेंट, और मेट्रिक फ़ील्ड के लिए क्वेरी, 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 क्लॉज़ में मौजूद संसाधन के साथ अपने-आप जुड़ जाते हैं. इसलिए, उनकी वैल्यू दिखाने के लिए, आपको सिर्फ़ 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 क्वेरी लैंग्वेज में ये व्यवहार होते हैं जिनका इस्तेमाल किया जा सकता है:

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