क्वेरी का स्ट्रक्चर और क्लॉज़

क्वेरी में कई क्लॉज़ होते हैं: 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 वैरिएबल

आईडी का इस्तेमाल करके, कस्टम Floodlight वैरिएबल को SELECT क्लॉज़ में शामिल किया जा सकता है.

इस उदाहरण में, क्वेरी में कैंपेन रिसॉर्स के लिए आईडी 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 के लिए क्वेरी में not शामिल नहीं होना चाहिए.

  • इससे उस मुख्य संसाधन के बारे में पता चलता है जिसे क्वेरी दिखाती है.

  • सिर्फ़ एक संसाधन तय किया जा सकता है.

  • यह उन फ़ील्ड के बारे में बताता है जिनका इस्तेमाल क्वेरी के अन्य सभी क्लॉज़ में किया जा सकता है.

एट्रिब्यूट किए गए संसाधन

अगर एट्रिब्यूट किए गए संसाधन उपलब्ध हैं, तो उन्हें 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

REGEXP_MATCH और NOT REGEXP_MATCH के लिए डिफ़ॉल्ट सेंसिटिविटी को केस-इनसेंसिटिव में बदलने के लिए, (?i) मॉडिफ़ायर का इस्तेमाल किया जा सकता है. उदाहरण के लिए:

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 क्लॉज़ में शामिल मेट्रिक का हिसाब लगाते समय इस्तेमाल की जाने वाली मुद्रा तय की जा सकती है. डिफ़ॉल्ट रूप से, customer_id की ओर से तय किए गए खाते की मुद्रा का इस्तेमाल किया जाता है. इस पैरामीटर को सेट करने पर, आपको आईएसओ 4217 के तीन वर्ण वाले करंसी कोड का इस्तेमाल करना होगा. उदाहरण के लिए: USD, EUR.

इस उदाहरण क्वेरी में, customer_id से तय किए गए खाते की मुद्रा में cost_micros मेट्रिक दिखाई गई है.

SELECT
  campaign.name,
  metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"

इस उदाहरण क्वेरी में, चिलियन पेसो (CLP) में cost_micros मेट्रिक दिखाई गई है.

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

इस उदाहरण क्वेरी में, 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

ज़्यादा जानें