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

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

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

อนุประโยคใช้ชื่อฟิลด์ ชื่อทรัพยากร โอเปอเรเตอร์ เงื่อนไข และการจัดลำดับเพื่อช่วยคุณเลือกข้อมูลที่ถูกต้อง เมื่อรวมกันเป็นคำค้นหาเดียว คุณจะส่งคำขอไปยัง 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.id
    • campaign.name
  • ฟิลด์ทรัพยากรที่ระบุแหล่งที่มา
    • bidding_strategy.id
    • bidding_strategy.name
  • ฟิลด์กลุ่ม
    • segments.device
    • segments.date
  • เมตริก
    • metrics.impressions
    • metrics.clicks
  • การค้นหาฟิลด์ที่เลือกไม่ได้ ฟิลด์เหล่านี้มีแอตทริบิวต์ข้อมูลเมตา selectable ที่ทำเครื่องหมายเป็น false
  • การเลือกแอตทริบิวต์ของฟิลด์ที่ซ้ำได้ ฟิลด์เหล่านี้มีแอตทริบิวต์ข้อมูลเมตา is_repeated ที่ทำเครื่องหมายเป็น 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 (หรือใช้ 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.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

การค้นหา ทรัพยากรที่แสดงผล
SELECT
  campaign.name,
  customer.id
FROM campaign
  • 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

ไม่มี

มีการระบุ 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
  • 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'