क्वेरी कई क्लॉज़ से बनी होती है: SELECT
,
FROM
,
WHERE
,
ORDER BY
,
LIMIT
, और PARAMETERS
.
क्लॉज़ में फ़ील्ड के नाम, संसाधन के नाम, ऑपरेटर, शर्तें, और क्रम का इस्तेमाल किया जाता है. ये सभी एक क्वेरी अनुरोध में शामिल होते हैं.
बुनियादी तौर पर, क्वेरी बनाने के लिए:
- वह संसाधन चुनें जिससे डेटा वापस पाना है.
- आपको जो डेटा दिखाना है उसके लिए फ़ील्ड और मेट्रिक जोड़ें.
- अपने नतीजों को ग्रुप करने के लिए सेगमेंट जोड़ें.
- मिलते-जुलते संसाधन के डेटा को शामिल करने के लिए, एट्रिब्यूट किए गए संसाधन जोड़ें.
- नतीजों को फ़िल्टर करें, क्रम से लगाएं, और सीमित करें.
SELECT
क्लॉज़
SELECT
क्लॉज़:
- यह क्वेरी में ज़रूरी क्लॉज़ है.
- अनुरोध में फ़ेच करने के लिए फ़ील्ड का सेट तय करता है.
- यह फ़ंक्शन, कॉमा से अलग की गई संसाधन फ़ील्ड, कस्टम कॉलम, कस्टम Floodlight वैरिएबल, सेगमेंट फ़ील्ड, और मेट्रिक की सूची लेता है और जवाब में वैल्यू दिखाता है.
इस उदाहरण वाली क्वेरी में, campaign
संसाधन के एट्रिब्यूट चुनने का तरीका बताया गया है:
SELECT
campaign.id,
campaign.name
FROM campaign
एक से ज़्यादा फ़ील्ड टाइप
एक ही अनुरोध में, अलग-अलग तरह के फ़ील्ड का अनुरोध किया जा सकता है.
यहां दी गई उदाहरण क्वेरी में, एक ही क्वेरी में ये चीज़ें शामिल हैं:
- रिसॉर्स फ़ील्ड:
campaign.id
,campaign.name
,bidding_strategy.id
, औरbidding_strategy.name
. - सेगमेंट फ़ील्ड:
segments.device
औरsegments.date
. - मेट्रिक फ़ील्ड:
metrics.impressions
औरmetrics.clicks
.
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
अपनी सर्च रिपोर्ट को सेगमेंट करने के बारे में ज़्यादा जानने के लिए, सेगमेंटेशन देखें.
मुख्य संसाधन फ़ील्ड
आम तौर पर, SELECT
क्लॉज़ में अपना मुख्य रिसॉर्स फ़ील्ड शामिल किया जाता है. हालांकि, ऐसा करना ज़रूरी नहीं है (ज़रूरी नहीं है).
इस उदाहरण में दी गई क्वेरी, सिर्फ़ नतीजों को फ़िल्टर करने के लिए मुख्य रिसॉर्स फ़ील्ड (ad_group.status
) का इस्तेमाल करती है.
SELECT campaign.id
FROM ad_group
WHERE ad_group.status = PAUSED
कस्टम Floodlight वैरिएबल
SELECT क्लॉज़ में कस्टम Floodlight वैरिएबल शामिल करने के लिए, उनके आईडी का इस्तेमाल करें.
इस उदाहरण में, क्वेरी में कैंपेन रिसॉर्स के लिए आईडी 123454321 वाला कस्टम वैरिएबल शामिल है.
SELECT
conversion_custom_metrics.id[123454321]
FROM campaign
SELECT
conversion_custom_dimensions.id[123454321]
FROM campaign
कस्टम कॉलम
SELECT क्लॉज़ में कस्टम कॉलम शामिल करने के लिए, उनके आईडी का इस्तेमाल किया जा सकता है.
इस उदाहरण में, क्वेरी में कैंपेन रिसॉर्स के लिए आईडी 12345678 वाला कस्टम कॉलम शामिल है.
SELECT
custom_columns.id[12345678]
FROM campaign
कस्टम कॉलम आईडी पाने का तरीका जानें.
मेट्रिक फ़ील्ड
किसी दिए गए संसाधन के लिए मेट्रिक फ़ील्ड चुने जा सकते हैं. इसके लिए, SELECT
क्लॉज़ में संसाधन के किसी भी अन्य फ़ील्ड को शामिल करने की ज़रूरत नहीं है.
इस उदाहरण में दी गई क्वेरी, campaign
रिसॉर्स के लिए impressions
और clicks
मेट्रिक चुनती है.
SELECT
metrics.impressions,
metrics.clicks
FROM campaign
क्वेरी में इस्तेमाल किए जा सकने वाले मेट्रिक फ़ील्ड की सूची के लिए, metrics
देखें.
सेगमेंट फ़ील्ड
SELECT
क्लॉज़ में, साथ में मौजूद रिसॉर्स फ़ील्ड या मेट्रिक के बारे में बताए बिना, सेगमेंट फ़ील्ड चुने जा सकते हैं.
इस उदाहरण में, क्वेरी के नतीजों को डिवाइस के हिसाब से बांटा गया है.
SELECT segments.device
FROM campaign
क्वेरी में इस्तेमाल किए जा सकने वाले सेगमेंट फ़ील्ड की सूची के लिए, segments
देखें.
इस्तेमाल न किए जा सकने वाले फ़ील्ड
SELECT
क्लॉज़ में इन फ़ील्ड का इस्तेमाल नहीं किया जा सकता:
- ऐसे फ़ील्ड जिन्हें चुना नहीं जा सकता. जैसे,
Selectable
मेटाडेटा केfalse
के तौर पर मार्क किए गए एट्रिब्यूट वाले फ़ील्ड. - दोहराए गए फ़ील्ड, यानी
Repeated
मेटाडेटा एट्रिब्यूट वाले फ़ील्ड, जिन्हेंtrue
के तौर पर मार्क किया गया है. - ऐसे फ़ील्ड जो
FROM
क्लॉज़ में दिए गए संसाधन के लिए उपलब्ध नहीं हैं. कुछ संसाधनों के एट्रिब्यूट एक साथ नहीं चुने जा सकते. कुछ संसाधनों में, सिर्फ़ सभी मीट्रिक और सेगमेंट का सबसेट उपलब्ध होता है. - काम न करने वाले सेगमेंट या मेट्रिक. ज़्यादा जानकारी के लिए, सेगमेंटेशन देखें.
हर संसाधन के लिए यह जानकारी कहां मिलेगी, इस बारे में जानने के लिए रेफ़रंस के लिए दस्तावेज़ देखें.
FROM क्लॉज़
FROM
क्लॉज़:
SearchAds360Service
के लिए क्वेरी के लिए ज़रूरी क्लॉज़ है (Search
औरSearchStream
, दोनों तरीके).SearchAds360FieldService
से जुड़ी क्वेरी के लिए, इसे शामिल नहीं किया जाना चाहिए.- इससे उस मुख्य संसाधन के बारे में पता चलता है जो क्वेरी से मिलता है.
- इसमें सिर्फ़ एक संसाधन की जानकारी दी जा सकती है.
- उन फ़ील्ड के बारे में बताता है जिनका इस्तेमाल क्वेरी के अन्य सभी क्लॉज़ में किया जा सकता है.
एट्रिब्यूट किए गए संसाधन
अगर एट्रिब्यूट किए गए संसाधन उपलब्ध हैं, तो उन्हें FROM
क्लॉज़ में बताए गए संसाधन के साथ अपने-आप जोड़ दिया जाता है. उनकी वैल्यू दिखाने के लिए, आपको सिर्फ़ उनके एट्रिब्यूट को SELECT
क्लॉज़ में जोड़ना होगा.
इस उदाहरण की क्वेरी, विज्ञापन ग्रुप आईडी और कैंपेन आईडी, दोनों दिखाती है. ऐसा इसलिए होता है, क्योंकि campaign
, ad_group
रिसॉर्स का एट्रिब्यूट किया गया रिसॉर्स है.
SELECT
campaign.id,
ad_group.id
FROM ad_group
resource_name
फ़ील्ड
FROM
क्लॉज़ में मौजूद मुख्य संसाधन का resource_name
फ़ील्ड हमेशा दिखाया जाता है.
इस उदाहरण में दी गई क्वेरी में, ad_group.resource_name
को जवाब में शामिल किया जाएगा, भले ही क्वेरी में इसे साफ़ तौर पर न चुना गया हो:
SELECT ad_group.id
FROM ad_group
कम से कम एक फ़ील्ड चुनने पर, एट्रिब्यूट किए गए रिसॉर्स का resource_name
फ़ील्ड दिखाया जाता है.
इस उदाहरण की क्वेरी में, campaign.resource_name
को रिस्पॉन्स में शामिल किया जाएगा, क्योंकि campaign.id
चुना गया है:
SELECT
campaign.id,
ad_group.id
FROM ad_group
WHERE क्लॉज़
WHERE
क्लॉज़:
- यह क्वेरी में मौजूद एक वैकल्पिक क्लॉज़ है.
- अनुरोध के लिए डेटा को फ़िल्टर करने और सेगमेंट में बांटने की शर्तें तय करता है.
शर्तें इस पैटर्न के हिसाब से होती हैं:
FIELD_NAME
OPERATOR
VALUE
(बिना किसी वैल्यू के स्पेस के साथ). - इसमें एक से ज़्यादा शर्तें शामिल की जा सकती हैं. इन्हें
AND
सेपरेटर से अलग किया जा सकता है.
इस उदाहरण में दी गई क्वेरी से पता चलता है कि किसी तय समयावधि के लिए impressions
मेट्रिक दिखाने के लिए, WHERE
क्लॉज़ का इस्तेमाल कैसे किया जाता है:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
अपनी सर्च रिपोर्ट को सेगमेंट करने के बारे में ज़्यादा जानने के लिए, सेगमेंटेशन देखें.
अपनी क्वेरी में तारीख की सीमाएं तय करने के बारे में ज़्यादा जानने के लिए, तारीख की सीमाएं देखें.
resource_name
फ़ील्ड के हिसाब से फ़िल्टर करना
डेटा को फ़िल्टर करने या क्रम से लगाने के लिए, resource_name
फ़ील्ड का इस्तेमाल किया जा सकता है.
इस उदाहरण में दी गई क्वेरी, किसी कैंपेन के हिसाब से नतीजों को फ़िल्टर करने के लिए campaign.resource_name
फ़ील्ड का इस्तेमाल करती है:
SELECT
campaign.id,
campaign.name
FROM campaign
WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'
एक से ज़्यादा शर्तें
डेटा को फ़िल्टर करने के लिए, कई शर्तों को जोड़ा जा सकता है.
इस उदाहरण में दी गई क्वेरी, पिछले 30 दिनों के दौरान मोबाइल पर impressions
मेट्रिक वाले सभी कैंपेन के लिए clicks
मेट्रिक की संख्या का अनुरोध करती है.
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
अपनी रिपोर्ट को सेगमेंट करने के बारे में ज़्यादा जानने के लिए, सेगमेंटेशन देखें.
केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर)
स्ट्रिंग वैल्यू के हिसाब से फ़िल्टर करते समय, हर ऑपरेटर के लिए केस सेंसिटिविटी की डिफ़ॉल्ट सेटिंग, नतीजों को सही तरीके से फ़िल्टर करने में अहम भूमिका निभाती है.
नीचे दी गई टेबल में, हर ऑपरेटर के लिए केस सेंसिटिविटी की डिफ़ॉल्ट सेटिंग के बारे में बताया गया है.
केस-सेंसिटिविटी (बड़े और छोटे अक्षरों में अंतर) की डिफ़ॉल्ट सेटिंग | |
---|---|
=/!= |
Case sensitive |
IN/NOT IN |
Case sensitive |
LIKE/NOT LIKE |
Case insensitive |
CONTAINS (...) |
Case sensitive |
REGEXP_MATCH/NOT REGEXP_MATCH |
Case sensitive |
(?i)
मॉडिफ़ायर का इस्तेमाल करके, REGEXP_MATCH
और NOT REGEXP_MATCH
के लिए डिफ़ॉल्ट संवेदनशीलता को केस-इनसेंसिटिव में बदला जा सकता है. उदाहरण के लिए:
SELECT campaign.id
FROM campaign
WHERE campaign.name REGEXP_MATCH "(?i).*test.*"
डेटा को फ़िल्टर करने के लिए इस्तेमाल किए जा सकने वाले ऑपरेटर की पूरी सूची देखने के लिए, क्वेरी के व्याकरण का रेफ़रंस देखें.
तारीख के मुख्य सेगमेंट
इन सेगमेंट फ़ील्ड को तारीख के मुख्य सेगमेंट कहा जाता है:
segments.date
, segments.week
, segments.month
, segments.quarter
, और
segments.year
.
तारीख या समय की अवधि तय करने के लिए, अपने WHERE
क्लॉज़ में तारीख के मुख्य सेगमेंट का इस्तेमाल किया जा सकता है.
इस उदाहरण में दी गई क्वेरी में, WHERE
क्लॉज़ में segments.date
फ़ील्ड के लिए DURING LAST_30_DAYS
की जानकारी दी गई है:
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
मुख्य तारीख के सेगमेंट इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, सेगमेंटेशन > मुख्य तारीख के सेगमेंट देखें.
पाबंदी वाला फ़िल्टर
इनके लिए फ़िल्टर करने की अनुमति नहीं है:
- कोर तारीख सेगमेंट को छोड़कर, चुने गए सेगमेंट फ़ील्ड पर.
- प्राइमिटिव (उदाहरण के लिए,
Int64Value
,StringValue
वगैरह) को छोड़कर, किसी भी तरह के मैसेज के फ़ील्ड पर. - प्राइमिटिव (उदाहरण के लिए,
Int64Value
,StringValue
वगैरह) को छोड़कर, किसी भी तरह के मैसेज के दोहराए गए फ़ील्ड के एट्रिब्यूट पर.
ORDER BY क्लॉज़
ORDER BY
क्लॉज़:
- यह क्वेरी में मौजूद एक वैकल्पिक क्लॉज़ है.
- यह तय करता है कि नतीजे किस क्रम में दिखाए जाएं. ऑर्डर करने का पैटर्न यह है:
FIELD_NAME
ORDERING_OPTION
(बिना स्पेस के). - इसके दो विकल्प होते हैं:
ASC
(बढ़ते क्रम में) याDESC
(घटते क्रम में). डिफ़ॉल्ट रूप से, यह बढ़ते क्रम में होता है.
इस उदाहरण में, क्लिक की संख्या के हिसाब से कैंपेन को घटते क्रम में (ज़्यादा से कम) लगाया गया है:
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
क्रम और सीमा को जोड़ना
अपने नतीजों को बेहतर बनाने के लिए, ORDER BY
क्लॉज़ के साथ LIMIT
क्लॉज़ का इस्तेमाल किया जा सकता है.
इस उदाहरण की क्वेरी से, पिछले 30 दिनों में सबसे ज़्यादा इंप्रेशन वाले पांच कैंपेन दिखते हैं:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.impressions DESC
LIMIT 5
ऑर्डर करने पर पाबंदी
इनके लिए ऑर्डर करने की अनुमति नहीं है:
- चुने गए संसाधनों के एट्रिब्यूट के हिसाब से.
- चुनी गई मेट्रिक के हिसाब से.
- चुने गए सेगमेंट के हिसाब से.
- इन फ़ील्ड टाइप के लिए:
MESSAGE
- दोहराए गए फ़ील्ड
- दोहराए गए फ़ील्ड के एट्रिब्यूट.
LIMIT क्लॉज़
LIMIT
क्लॉज़:
- यह क्वेरी में मौजूद एक वैकल्पिक क्लॉज़ है.
- इससे, क्वेरी के नतीजों की संख्या को सीमित किया जा सकता है.
यह क्लॉज़ तब फ़ायदेमंद होता है, जब आपकी दिलचस्पी सिर्फ़ नतीजों के सैंपल या फिर उनका खास ब्यौरा पाने में हो.
इस उदाहरण में दी गई क्वेरी, नतीजों की कुल संख्या को 50 तक सीमित करती है:
SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50
PARAMETERS क्लॉज़
PARAMETERS
क्लॉज़ की मदद से, अनुरोध के लिए मेटा पैरामीटर तय किए जा सकते हैं.
ड्राफ़्ट शामिल करना
include_drafts
पैरामीटर से यह कंट्रोल होता है कि नतीजों में ड्राफ़्ट की गई इकाइयां शामिल की जाएं या नहीं. डिफ़ॉल्ट रूप से, यह false
पर सेट होता है. ड्राफ़्ट की इकाइयों को शामिल करने के लिए, इसे true
पर सेट करें.
इस उदाहरण की क्वेरी से, ड्राफ़्ट कैंपेन और सामान्य कैंपेन, दोनों की जानकारी मिलती है:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true
चुने हुए का निशान हटाए गए resource_name
को शामिल न करें
omit_unselected_resource_names
पैरामीटर की मदद से, उन सभी संसाधनों के resource_name
फ़ील्ड को बाहर रखा जा सकता है जिनके लिए आपके SELECT
क्लॉज़ में साफ़ तौर पर अनुरोध नहीं किया गया है. डिफ़ॉल्ट रूप से, यह false
पर सेट होता है. अगर आपने इस पैरामीटर को true
पर सेट किया है, तो हमारा सुझाव है कि आप अपने SELECT
क्लॉज़ में, मुख्य संसाधन और एट्रिब्यूट किए गए किसी भी संसाधन के नाम का साफ़ तौर पर अनुरोध करें.
इस उदाहरण में दी गई क्वेरी, न तो campaign.resource_name
और न ही customer.resource_name
फ़ील्ड दिखाती है, क्योंकि ये SELECT
क्लॉज़ में शामिल नहीं हैं:
SELECT
campaign.name,
customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true
इस उदाहरण में दी गई क्वेरी, campaign.resource_name
फ़ील्ड दिखाती है, क्योंकि SELECT
क्लॉज़ में इसका साफ़ तौर पर अनुरोध किया गया है:
SELECT
campaign.name,
campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true
मेट्रिक में इस्तेमाल की जाने वाली मुद्रा बदलना
metrics_currency
पैरामीटर की मदद से, SELECT
क्लॉज़ में शामिल मेट्रिक का हिसाब लगाते समय, इस्तेमाल की जाने वाली मुद्रा तय की जा सकती है.
डिफ़ॉल्ट रूप से, खाते के लिए स्थानीय मुद्रा का इस्तेमाल किया जाता है. इस पैरामीटर को सेट करने पर, आपको ISO 4217 के तीन अक्षर वाले मुद्रा कोड का इस्तेमाल करना होगा.
उदाहरण के लिए: डॉलर, यूरो.
इस उदाहरण में दी गई क्वेरी, खाते की स्थानीय मुद्रा में cost_micros मेट्रिक दिखाती है.
SELECT
campaign.name,
metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
इस उदाहरण में दी गई क्वेरी, cost_micros मेट्रिक को चिलियन पेसो (CLP) में दिखाती है.
SELECT
campaign.name,
metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
PARAMETERS metrics_currency = "CLP"
एमसीसी एक्सपैंशन की सुविधा चालू करना
enable_mcc_expansion
पैरामीटर को 'सही' पर सेट करने पर, FROM
क्लॉज़ में मौजूद संसाधन के लिए, login_customer_id
और उसके नीचे मौजूद सभी खातों की मेट्रिक, फ़ील्ड, और सेगमेंट शामिल किए जा सकते हैं. जवाब में login_customer_id
की मुद्रा का इस्तेमाल किया जाएगा. ऐसा तब तक होगा, जब तक कि metrics_currency
पैरामीटर में साफ़ तौर पर कुछ और न बताया गया हो.
इस उदाहरण की क्वेरी, login_customer_id
और उसके नीचे मौजूद सभी खातों से bidding_strategy.name
, bidding_strategy.type
, और metrics.cost_micros
दिखाती है. इसकी वजह यह है कि enable_mcc_expansion
पैरामीटर को true
पर सेट किया गया है.
SELECT
bidding_strategy.name,
bidding_strategy.type,
metrics.cost_micros
FROM bidding_strategy
WHERE segments.date DURING LAST_14_DAYS
PARAMETERS enable_mcc_expansion = true