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

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

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

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

อนุประโยค

ส่วนต่อไปนี้จะอธิบายวัตถุประสงค์และไวยากรณ์ของส่วนคำสั่ง Google Ads Query Language แต่ละรายการ

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 ในคำค้นหาไปยังเมธอด 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.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 สามารถจำกัดจำนวนผลลัพธ์ทั้งหมดสำหรับคำค้นหาต่อไปนี้ได้

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

การค้นหา ทรัพยากรที่ส่งคืน
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'