คุณส่งคำค้นหาสำหรับฟิลด์ทรัพยากร กลุ่ม และเมตริกไปยังเมธอด GoogleAdsService Search หรือ SearchStream
ได้ หากต้องการสร้างคําค้นหาในภาษาการค้นหาของ Google Ads คุณจะต้องสร้างโดยใช้ไวยากรณ์ของภาษา คําค้นหาประกอบด้วย
วลีจํานวนหนึ่ง ดังนี้
- SELECT
- FROM
- WHERE
- ORDER BY
- LIMIT
- PARAMETERS
โดยใช้ชื่อฟิลด์ ชื่อทรัพยากร ตัวดำเนินการ เงื่อนไข และการเรียงลำดับเพื่อช่วยคุณเลือกข้อมูลที่ถูกต้อง เมื่อรวมเป็นคำค้นหาเดียว คุณจะส่งคำขอได้โดยใช้ Google Ads API
ข้อความ
วิดีโอ: ความเข้ากันได้ของฟิลด์ GAQL
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.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 clause ในคำค้นหาเพื่อใช้เมธอด Search หรือ SearchStream ของ GoogleAdsService อย่างไรก็ตาม ไม่ควรระบุข้อความในFROMเมื่อใช้ 
GoogleAdsFieldService
แม้ว่าจะมีทรัพยากรได้เพียงรายการเดียวในอนุประโยค FROM สำหรับการค้นหาที่กำหนด แต่ฟิลด์จากทรัพยากรที่ระบุแหล่งที่มาก็อาจพร้อมใช้งานด้วย ระบบจะเชื่อมโยงแหล่งข้อมูลเหล่านี้กับแหล่งข้อมูลในFROM clause โดยนัย ดังนั้นคุณจึงต้องเพิ่มแอตทริบิวต์ของแหล่งข้อมูลเหล่านั้นลงในSELECT clause เพื่อแสดงค่า แหล่งข้อมูลบางรายการ
ไม่มีแหล่งข้อมูลที่มีการระบุแหล่งที่มา ในตัวอย่างต่อไปนี้ คุณสามารถขอ
ทั้งรหัสกลุ่มโฆษณาและรหัสแคมเปญจากกลุ่มโฆษณาได้
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 โดยคุณจะระบุคําสั่ง 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 หากเลือกกลุ่มใดกลุ่มหนึ่งเหล่านี้ ต้องใช้กลุ่มดังกล่าวอย่างน้อย 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 clause ช่วยให้คุณระบุจำนวนผลลัพธ์ที่จะแสดงได้
ซึ่งจะเป็นประโยชน์หากคุณสนใจเฉพาะข้อมูลสรุป
เช่น 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_nameomit_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_nameomit_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'