โครงสร้างการค้นหา

คุณสามารถส่งคำค้นหาสำหรับช่องทรัพยากร กลุ่ม และเมตริกไปยัง GoogleAdsService Search หรือ SearchStream เมธอดได้ หากต้องการสร้างคำค้นหาในภาษาคำค้นหาของ Google Ads คุณจะต้องสร้างคำค้นหาโดยใช้ ไวยากรณ์ของภาษา สำหรับภาพรวมทั่วไปของ ภาษาคำค้นหาของ Google Ads โปรดดู ภาพรวมของภาษาคำค้นหาของ Google Ads คำค้นหาประกอบด้วยอนุประโยคจำนวนหนึ่ง ดังนี้

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT
  • PARAMETERS

อนุประโยคใช้ ชื่อช่อง ชื่อทรัพยากร ตัวดำเนินการ เงื่อนไข และ การจัดลำดับ เพื่อช่วยคุณเลือกข้อมูลที่ถูกต้อง เมื่อรวมกันเป็นคำค้นหาเดียว คุณจะส่งคำขอโดยใช้ 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.id
    • campaign.name
  • ช่องทรัพยากร

    • bidding_strategy.id
    • bidding_strategy.name
  • ช่องกลุ่ม

    • segments.device
    • segments.date
  • เมตริก

    • metrics.impressions
    • metrics.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.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 ช่วยให้คุณระบุจำนวนผลลัพธ์ที่จะแสดงผลได้ ซึ่งจะเป็นประโยชน์หากคุณสนใจเฉพาะข้อมูลสรุป

ตัวอย่างเช่น คุณสามารถใช้ 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
customer.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'