การแบ่งกลุ่ม

การแบ่งกลุ่มพร้อมใช้งานใน UI ของ Google Ads เป็นเมนูแยกต่างหาก คุณสามารถ ใช้การแบ่งกลุ่มใน Google Ads API ได้โดยการเพิ่มฟิลด์ที่เหมาะสมลงในคําค้นหา เช่น สมมติว่าคุณเพิ่ม segments.device ลงในการค้นหา ซึ่งจะทำให้ได้รายงานที่มีแถวสำหรับชุดค่าผสมของอุปกรณ์แต่ละรายการ และแหล่งข้อมูลที่ระบุในFROM clause และ ค่าทางสถิติ (การแสดงผล การคลิก Conversion ฯลฯ) ที่แยกตาม ชุดค่าผสมเหล่านั้น

ใน UI ของ Google Ads จะใช้ได้ครั้งละ 1 กลุ่มเท่านั้น แต่เมื่อใช้ API คุณจะระบุหลายกลุ่มในการค้นหาเดียวกันได้

SELECT
  campaign.name,
  campaign.status,
  segments.device,
  metrics.impressions
FROM campaign

ผลลัพธ์จากการส่งคำค้นหานี้ไปยัง GoogleAdsService.SearchStream จะมีลักษณะคล้ายสตริง JSON นี้

{
  "results":[
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"10922"
      },
      "segments":{
        "device":"MOBILE"
      }
    },
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"28297"
      },
      "segments":{
        "device":"DESKTOP"
      }
    },
    ...
  ]
}

ในผลลัพธ์ตัวอย่างนี้ แอตทริบิวต์ของออบเจ็กต์แรกและออบเจ็กต์ที่สอง รวมถึงชื่อทรัพยากรจะเหมือนกัน การแสดงผลจะแบ่งกลุ่มตามอุปกรณ์ ดังนั้นระบบจึงแสดงออบเจ็กต์ 2 รายการขึ้นไปสำหรับแคมเปญเดียวกันได้

การแบ่งกลุ่มโดยนัย

ในตอนแรก ระบบจะจัดกลุ่มรายงานทุกฉบับตามแหล่งข้อมูลที่ระบุไว้ในFROM ข้อกำหนด ระบบจะแสดงฟิลด์ resource_name ของทรัพยากรในอนุประโยค FROM และจะแบ่งกลุ่มเมตริกตามฟิลด์นี้ แม้ว่าจะไม่ได้รวมฟิลด์ resource_name ไว้ในคําค้นหาอย่างชัดเจนก็ตาม ตัวอย่างเช่น เมื่อคุณระบุ ad_group เป็นทรัพยากรในข้อความ FROM แล้ว ad_group.resource_name จะ แสดงโดยอัตโนมัติ และเมตริกจะแบ่งกลุ่มโดยนัยกับข้อความดังกล่าวที่ระดับ ad_group

ดังนั้นสำหรับคำค้นหานี้

SELECT metrics.impressions
FROM ad_group

คุณจะได้รับสตริง JSON ดังนี้

{
  "results":[
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/2222222222"
      },
      "metrics":{
        "impressions":"237"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/33333333333"
      },
      "metrics":{
        "impressions":"15"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/44444444444"
      },
      "metrics":{
        "impressions":"0"
      }
    }
  ]
}

ระบบจะแสดงฟิลด์ resource_name ของ adGroup เสมอเนื่องจากมีการระบุ ad_group เป็นทรัพยากรในข้อกำหนด FROM

ฟิลด์กลุ่มที่เลือกได้

ฟิลด์กลุ่มบางรายการไม่สามารถเลือกได้สำหรับทรัพยากรที่ระบุในFROM ตัวอย่างเช่น สมมติว่าคุณยังคงค้นหาจากแหล่งข้อมูล ad_group หากต้องการเลือกฟิลด์กลุ่มจากแหล่งข้อมูล ad_group ฟิลด์นั้นจะต้องอยู่ในรายการ Segments สำหรับ ad_group Segments รายการคือส่วนสีเหลืองของตารางฟิลด์ที่พร้อมใช้งาน ในหน้าข้อมูลเมตาของทรัพยากร ad_group

แหล่งข้อมูลเกี่ยวกับกลุ่ม

เมื่อเลือกจากแหล่งข้อมูลบางแหล่ง คุณอาจมีตัวเลือกในการเข้าร่วมโดยนัย ในแหล่งข้อมูลที่เกี่ยวข้องโดยการเลือกฟิลด์ของแหล่งข้อมูลเหล่านั้นควบคู่ไปกับฟิลด์ของ แหล่งข้อมูลในคําสั่ง FROM คุณดูแหล่งข้อมูลที่เกี่ยวข้องเหล่านี้ได้ใน Attributed Resources รายการในแหล่งข้อมูลในข้อมูลเมตาของข้อFROM หน้า ในกรณีของทรัพยากร ad_group คุณจะเห็น ว่าคุณยังเลือกฟิลด์จากทรัพยากร campaign ได้ด้วย ระบบจะแสดงฟิลด์ resource_name ของ Attributed Resources ที่มีฟิลด์อย่างน้อย 1 รายการในคําสั่ง SELECT โดยอัตโนมัติ แม้ว่าจะไม่ได้รวมฟิลด์ resource_name ไว้ในคําค้นหาอย่างชัดเจนก็ตาม

คุณยังเลือกฟิลด์ Segmenting Resource ได้ด้วยเช่นเดียวกับการเลือกฟิลด์ Attributed Resource หากทรัพยากรมีSegmenting Resources รายการในหน้าข้อมูลเมตา เมื่อคุณเลือกฟิลด์จากทรัพยากรใดทรัพยากรหนึ่งที่แสดง ไว้ ระบบจะแบ่งกลุ่มการค้นหาเพิ่มเติมตามresource_nameที่แสดงของSegmenting Resourceนั้น ตัวอย่างเช่น คุณจะเห็นว่าทรัพยากร campaign แสดงเป็น Segmenting Resource สำหรับทรัพยากร campaign_budget การเลือกฟิลด์แคมเปญ เช่น campaign.name จากแหล่งข้อมูล campaign_budget ไม่เพียงทำให้ระบบแสดงผลฟิลด์ campaign.name แต่ยังทำให้ระบบแสดงผลและแบ่งกลุ่มฟิลด์ campaign.resource_name ด้วย

การเลือกได้ระหว่างกลุ่มและเมตริก

ฟิลด์กลุ่มที่ระบุอาจใช้ร่วมกับฟิลด์กลุ่มอื่นๆ บางรายการ หรือฟิลด์เมตริกบางรายการไม่ได้ หากต้องการระบุว่าฟิลด์กลุ่มใดใช้ร่วมกันได้ ให้ตรวจสอบselectable_withรายการกลุ่มใน อนุประโยค SELECT

ในกรณีของทรัพยากร ad_group จะมีกลุ่มที่ใช้ได้มากกว่า 50 กลุ่ม ที่คุณเลือกได้ อย่างไรก็ตาม selectable_with รายการสำหรับ segments.hotel_check_in_date เป็นชุดกลุ่มที่เข้ากันได้ซึ่งมีขนาดเล็กกว่ามาก ซึ่งหมายความว่าหากคุณเพิ่มฟิลด์ segments.hotel_check_in_dateลงในข้อความSELECT คุณจะจำกัดกลุ่มที่เหลือให้เลือกได้เฉพาะกลุ่มที่ซ้อนทับกันของรายการทั้ง 2 รายการนี้

การกรองโดยนัยโดยการเลือกกลุ่ม

เมื่อคุณเลือกฟิลด์กลุ่มบางรายการในคําค้นหา Google Ads API อาจ กรองผลลัพธ์โดยนัยให้รวมเฉพาะแถวที่กลุ่มนั้น ใช้ได้และมีค่า

ผลกระทบของ segments.keyword.*

ตัวอย่างที่พบบ่อยและสําคัญของลักษณะการทํางานนี้เกิดขึ้นเมื่อเลือกฟิลด์ใดก็ตามในส่วนsegments.keyword (เช่น segments.keyword.info.text และ segments.keyword.ad_group_criterion)

  • การยกเว้นการเข้าชมที่ไม่ใช่คีย์เวิร์ด: หากคุณรวมsegments.keyword.*ฟิลด์ใดก็ตามไว้ในSELECT อนุประโยค จะเป็นการจํากัดผลลัพธ์ให้แสดงเฉพาะแถวที่เชื่อมโยงโดยตรงกับเกณฑ์กลุ่มโฆษณาคีย์เวิร์ดเครือข่าย Search
  • ประเภทแคมเปญที่ได้รับผลกระทบ: ด้วยเหตุนี้ ระบบจึงยกเว้นข้อมูลจากประเภทแคมเปญหรือกลุ่มโฆษณาที่ไม่ได้อิงตามคีย์เวิร์ด Search จากผลลัพธ์ ซึ่งรวมถึง แต่ไม่จำกัดเฉพาะ

    • โฆษณา Search แบบไดนามิก (DSA): เนื่องจากเป้าหมาย DSA อิงตามเนื้อหาเว็บไซต์ แทนที่จะเป็นคีย์เวิร์ด
    • แคมเปญ Shopping: ซึ่งใช้กลุ่มสินค้าแทนคีย์เวิร์ด
    • แคมเปญ Performance Max: แม้ว่า Performance Max อาจแสดงใน Search แต่โดยปกติแล้วการรายงานจะไม่ได้รับการแบ่งกลุ่มตามเกณฑ์คีย์เวิร์ดเดียวกัน
  • เครือข่าย Display: ฟิลด์ segments.keyword.* เกี่ยวข้องกับคีย์เวิร์ด ที่ใช้ในเครือข่าย Search โดยจะไม่แบ่งกลุ่มตามคีย์เวิร์ดในเครือข่าย Display หรือวิธีการกำหนดเป้าหมาย Display อื่นๆ

แนวทางปฏิบัติแนะนำ: หากการวิเคราะห์ต้องรวมข้อมูลประสิทธิภาพจาก DSA, Shopping หรือแหล่งที่มาอื่นๆ ที่ไม่ได้อิงตามคีย์เวิร์ดการค้นหา อย่ารวมฟิลด์จาก segments.keyword.* ไว้ในคําค้นหา วิเคราะห์ข้อมูลในแคมเปญทุกประเภทก่อน แล้วใช้การแบ่งกลุ่มคีย์เวิร์ดเมื่อมุ่งเน้นที่ประสิทธิภาพของคีย์เวิร์ด Search เท่านั้น

กฎสำหรับกลุ่มในคําสั่ง WHERE

เมื่อกลุ่มอยู่ในอนุประโยค WHERE กลุ่มนั้นจะต้องอยู่ในอนุประโยค SELECT ด้วย ข้อยกเว้นของกฎนี้คือกลุ่มวันที่ต่อไปนี้ ซึ่งเรียกว่ากลุ่มวันที่หลัก

  • segments.date
  • segments.week
  • segments.month
  • segments.quarter
  • segments.year

กฎสำหรับฟิลด์กลุ่มวันที่หลัก

กลุ่ม segments.date, segments.week, segments.month, segments.quarter และ segments.year ทำงานดังนี้

  • คุณกรองกลุ่มเหล่านี้ในคําสั่ง WHERE ได้โดยไม่ต้องปรากฏในคําสั่ง SELECT

  • หากกลุ่มใดกลุ่มหนึ่งเหล่านี้อยู่ในข้อความ SELECT คุณต้องระบุช่วงวันที่ที่แน่นอน ซึ่งประกอบด้วยกลุ่มวันที่หลักในข้อความ WHERE กลุ่มวันที่ไม่จําเป็นต้องเป็นกลุ่มเดียวกันกับที่ระบุไว้ใน SELECT

ตัวอย่าง

ไม่ถูกต้อง: เนื่องจาก segments.date อยู่ใน ข้อกำหนด SELECT คุณจึงต้องระบุช่วงวันที่ที่แน่นอนใน ข้อกำหนด WHERE สำหรับ segments.date, segments.week, segments.month, segments.quarter หรือ segments.year
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
ถูกต้อง: การค้นหานี้จะแสดงชื่อแคมเปญและ การคลิกที่เกิดขึ้นในช่วงวันที่ โปรดทราบว่า segments.date ไม่จำเป็นต้องปรากฏในข้อกำหนด SELECT
SELECT
  campaign.name,
  metrics.clicks
FROM campaign
WHERE segments.date > '2024-01-01'
  AND segments.date < '2024-02-01'
ถูกต้อง: การค้นหานี้จะแสดงชื่อแคมเปญและ การคลิกที่แบ่งกลุ่มตามวันที่สำหรับทุกวันในวันที่ที่ระบุ
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
WHERE segments.date > '2024-01-01'
  AND segments.date < '2024-02-01'
ถูกต้อง: การค้นหานี้จะแสดงชื่อแคมเปญและ การคลิกที่แบ่งกลุ่มตามเดือนสำหรับทุกวันในช่วงวันที่
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date > '2024-01-01'
  AND segments.date < '2024-02-01'
ถูกต้อง: การค้นหานี้จะแสดงชื่อแคมเปญและ การคลิกที่แบ่งกลุ่มตามไตรมาส แล้วแบ่งกลุ่มตามเดือนสำหรับทุกเดือนในช่วงปี
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year > 2019
  AND segments.year < 2024

search_term_view

นอกจากนี้ ระบบยังแบ่งกลุ่มทรัพยากร search_term_view โดยปริยายตามกลุ่มโฆษณา ไม่ใช่แค่ตามข้อความค้นหา ดังที่เห็นได้จากโครงสร้างของชื่อทรัพยากร ซึ่งรวมถึงกลุ่มโฆษณาด้วย ดังนั้น คุณจะเห็นแถวที่ดูเหมือนซ้ำกันซึ่งมีข้อความค้นหาเดียวกันปรากฏในผลลัพธ์ แต่แถวเหล่านี้เป็นของกลุ่มโฆษณาอื่น

{
  "results":[
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"3"
      },
      "segments":{
        "date":"2024-06-15"
      }
    },
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"2"
      },
      "segments":{
        "date":"2024-06-15"
      }
    }
  ]
}

แม้ว่าออบเจ็กต์ 2 รายการที่แสดงในตัวอย่างนี้จะดูเหมือนซ้ำกัน แต่ชื่อทรัพยากรของออบเจ็กต์ทั้ง 2 รายการนั้นแตกต่างกัน โดยเฉพาะในส่วน "กลุ่มโฆษณา" ซึ่งหมายความว่าข้อความค้นหา "google photos" จะได้รับการระบุแหล่งที่มาเป็นกลุ่มโฆษณา 2 กลุ่ม (รหัส 2222222222 และ 33333333333) ในวันที่เดียวกัน (2024-06-15) ดังนั้น เราจึงสรุปได้ว่า API ทำงานตามที่ตั้งใจไว้และไม่ได้แสดงออบเจ็กต์ที่ซ้ำกันในกรณีนี้