คุณสามารถส่งคำค้นหาสำหรับช่องทรัพยากร กลุ่ม และเมตริกไปยัง
GoogleAdsService Search หรือ SearchStream
เมธอดได้ หากต้องการสร้างคำค้นหาในภาษาคำค้นหาของ Google Ads คุณจะต้องสร้างคำค้นหาโดยใช้
ไวยากรณ์ของภาษา สำหรับภาพรวมทั่วไปของ
ภาษาคำค้นหาของ Google Ads โปรดดู ภาพรวมของภาษาคำค้นหาของ Google Ads คำค้นหาประกอบด้วยอนุประโยคจำนวนหนึ่ง ดังนี้
SELECTFROMWHEREORDER BYLIMITPARAMETERS
อนุประโยคใช้ ชื่อช่อง ชื่อทรัพยากร ตัวดำเนินการ เงื่อนไข และ การจัดลำดับ เพื่อช่วยคุณเลือกข้อมูลที่ถูกต้อง เมื่อรวมกันเป็นคำค้นหาเดียว คุณจะส่งคำขอโดยใช้ Google Ads API ได้
อนุประโยค
Video: GAQL Field Compatibility
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 - การเลือกแอตทริบิวต์ของช่องที่ซ้ำได้ ช่องเหล่านี้จะมีแอตทริบิวต์ข้อมูลเมตา
isRepeatedทำเครื่องหมายเป็นtrue - การเลือกช่องที่ไม่พร้อมใช้งานสำหรับทรัพยากรที่ระบุในอนุประโยค
FROMคุณเลือกแอตทริบิวต์ของทรัพยากรบางรายการพร้อมกันไม่ได้ นอกจากนี้ ทรัพยากรในอนุประโยคFROMจะมีเมตริกและกลุ่มเพียงบางส่วนเท่านั้น - การเลือกกลุ่มหรือเมตริกที่ไม่เข้ากัน ดูข้อมูลเพิ่มเติมได้ในส่วนการแบ่งกลุ่ม
คุณดูข้อมูลที่เกี่ยวข้องกับเงื่อนไขข้างต้นได้ในเอกสารอ้างอิงหรือจาก GoogleAdsFieldService
FROM
อนุประโยค FROM จะระบุทรัพยากรหลักที่จะแสดงผล ทรัพยากรในอนุประโยค 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 จะระบุเงื่อนไขที่จะใช้เมื่อกรองข้อมูลสำหรับคำขอ เมื่อใช้อนุประโยค 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.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 ช่วยให้คุณระบุจำนวนผลลัพธ์ที่จะแสดงผลได้
ซึ่งจะเป็นประโยชน์หากคุณสนใจเฉพาะข้อมูลสรุป
ตัวอย่างเช่น คุณสามารถใช้ LIMIT เพื่อจำกัดจำนวนผลลัพธ์ทั้งหมดสำหรับคำค้นหาต่อไปนี้ได้
SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50
PARAMETERS
อนุประโยค 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: ไม่มี ระบุเป็น true
และ campaign.resource_name กับ customer.resource_name
ไม่ได้อยู่ในอนุประโยค SELECTomit_unselected_resource_names
|
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'