संसाधन, सेगमेंट, और मेट्रिक फ़ील्ड के लिए क्वेरी, GoogleAdsService Search या SearchStream तरीके से भेजी जा सकती हैं. Google Ads क्वेरी लैंग्वेज में क्वेरी बनाने के लिए, लैंग्वेज ग्रामर का इस्तेमाल करके क्वेरी बनाएं. Google Ads क्वेरी लैंग्वेज की खास जानकारी के लिए, Google Ads क्वेरी लैंग्वेज की खास जानकारी देखें. क्वेरी कई क्लॉज़ से मिलकर बनती है:
SELECTFROMWHEREORDER BYLIMITPARAMETERS
क्लॉज़ में फ़ील्ड के नाम, संसाधन के नाम, ऑपरेटर, शर्तें, और क्रम का इस्तेमाल किया जाता है, ताकि आपको सही डेटा चुनने में मदद मिल सके. इन सभी को एक साथ एक क्वेरी में शामिल करके, 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.idcampaign.name
- एट्रिब्यूट किए गए संसाधन फ़ील्ड
bidding_strategy.idbidding_strategy.name
- सेगमेंट फ़ील्ड
segments.devicesegments.date
- मेट्रिक
metrics.impressionsmetrics.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.datesegments.weeksegments.monthsegments.quartersegments.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 |
|
SELECT campaign.name, customer.id FROM campaign PARAMETERS omit_unselected_resource_names = true |
कोई नहीं
|
SELECT campaign.name, campaign.resource_name FROM campaign PARAMETERS omit_unselected_resource_names = true |
|
भाषा से जुड़े अन्य नियम
हर क्लॉज़ के उदाहरणों के अलावा, 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 campaignresource_nameफ़ील्ड (उदाहरण के लिए,campaign.resource_name) का इस्तेमाल, डेटा को फ़िल्टर या क्रम से लगाने के लिए किया जा सकता है:SELECT campaign.id, campaign.name FROM campaign WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'