คำค้นหาสำหรับฟิลด์ทรัพยากร กลุ่ม และเมตริกสามารถส่งไปยังเมธอด GoogleAdsService Search หรือ SearchStream
ได้ หากต้องการสร้างคําค้นหาในภาษาการค้นหาของ Google Ads คุณจะต้องสร้างโดยใช้ไวยากรณ์ของภาษา หากต้องการดูภาพรวมทั่วไปของภาษาการค้นหาของ Google Ads โปรดดูภาพรวมของภาษาการค้นหาของ Google Ads การค้นหาประกอบด้วย
หลายส่วนดังนี้
SELECTFROMWHEREORDER BYLIMITPARAMETERS
โดยใช้ชื่อฟิลด์ ชื่อทรัพยากร ตัวดำเนินการ เงื่อนไข และ การจัดเรียงเพื่อช่วยให้คุณเลือกข้อมูลที่ถูกต้อง เมื่อรวมกันเป็นคำค้นหาเดียว คุณจะส่งคำขอได้โดยใช้ Google Ads API
ข้อความ
ส่วนต่อไปนี้จะอธิบายวัตถุประสงค์และไวยากรณ์ของแต่ละคําสั่งในภาษาการค้นหาของ Google Ads
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.idcampaign.name
- ฟิลด์ทรัพยากรที่มีการระบุแหล่งที่มา
bidding_strategy.idbidding_strategy.name
- ฟิลด์กลุ่ม
segments.devicesegments.date
- เมตริก
metrics.impressionsmetrics.clicks
- การค้นหาช่องที่เลือกไม่ได้ ฟิลด์เหล่านี้จะมี
selectableแอตทริบิวต์ข้อมูลเมตาfalseที่ทำเครื่องหมายไว้ - การเลือกแอตทริบิวต์ของฟิลด์ที่ซ้ำได้ ฟิลด์เหล่านี้จะมี
is_repeatedแอตทริบิวต์ข้อมูลเมตาtrueที่ทำเครื่องหมายไว้ - การเลือกฟิลด์ที่ไม่พร้อมใช้งานสำหรับทรัพยากรที่ระบุใน
FROMข้อกำหนด คุณเลือกแอตทริบิวต์ของทรัพยากรบางอย่างพร้อมกันไม่ได้ และจะมีเฉพาะ กลุ่มย่อยของเมตริกและกลุ่มทั้งหมดเท่านั้นที่พร้อมใช้งานสำหรับทรัพยากรในFROMข้อ - การเลือกกลุ่มหรือเมตริกที่ใช้ร่วมกันไม่ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ที่ส่วนการแบ่งกลุ่ม
ดูข้อมูลที่เกี่ยวข้องกับเงื่อนไขข้างต้นได้ในเอกสารอ้างอิง
หรือจาก GoogleAdsFieldService
จาก
FROM clause ระบุทรัพยากรหลักที่จะแสดง
แหล่งข้อมูลในอนุประโยค 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
ซึ่งจะเหมือนกับทรัพยากรอื่นๆ เมื่อเลือกฟิลด์อย่างน้อย 1 รายการ
เช่น campaign.resource_name จะรวมอยู่ในการตอบกลับสำหรับคำค้นหาต่อไปนี้
SELECT
campaign.id,
ad_group.id
FROM ad_group
ที่ไหน
โดยWHEREระบุเงื่อนไขที่จะใช้เมื่อกรองข้อมูลสําหรับคําขอ
เมื่อใช้คําสั่ง WHERE คุณจะระบุเงื่อนไขอย่างน้อย 1 รายการได้
โดยใช้ 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 หากเลือกกลุ่มใดกลุ่มหนึ่งเหล่านี้ จะต้องใช้กลุ่มดังกล่าวอย่างน้อย 1 กลุ่มใน
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
| ตัวอย่าง omit_unselected_resource_names | |
|---|---|
SELECT campaign.name, customer.id FROM campaign |
Returned resources:campaign.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สำหรับการค้นหา เช่น คุณอาจต้องการใช้เฉพาะฟิลด์ทรัพยากรหลักอย่างน้อย 1 รายการเพื่อกรองข้อมูล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'