โครงสร้างข้อความค้นหา

คุณสามารถส่งการค้นหาสำหรับฟิลด์ทรัพยากร กลุ่ม และเมตริกไปยังเมธอด Search หรือ SearchStream ใน GoogleAdsService หากต้องการสร้างคำค้นหาในภาษาการค้นหาของ 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 ในการค้นหาเมธอด GoogleAdsService Search หรือ SearchStream แต่ไม่ควรระบุอยู่เมื่อใช้ GoogleAdsFieldService

แม้ว่าจะมีทรัพยากรได้เพียง 1 รายการในอนุประโยค 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 อนุประโยค 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

กลุ่มทั้งหมดที่เป็นไปตามเงื่อนไขข้างต้น ได้แก่ groups.date, segments.week, segments.month,segment.quarter และsegment.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

ตัวอย่าง 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:
ไม่มี
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_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.costMicros
    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'