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

การแบ่งกลุ่มมีอยู่ใน 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 รวมถึงชื่อทรัพยากรจะเหมือนกัน การแสดงผลจะแบ่งกลุ่มตาม อุปกรณ์ และ ดังนั้นระบบจึงอาจแสดงออบเจ็กต์ 2 รายการขึ้นไปสําหรับแคมเปญเดียวกัน

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

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

ดังนั้นสําหรับคําค้นหาต่อไปนี้

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
  • ประเภทแคมเปญที่ได้รับผลกระทบ: ด้วยเหตุนี้ ระบบจึงยกเว้น ข้อมูลจากประเภทแคมเปญหรือกลุ่มโฆษณาที่ไม่ได้ใช้คีย์เวิร์ดสําหรับการค้นหาจากผลลัพธ์ ซึ่งรวมถึง แต่ไม่จำกัดเฉพาะ

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