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

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

ใน UI ของ Google Ads คุณจะใช้ได้เพียงกลุ่มเดียวในแต่ละครั้ง แต่จะใช้ 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 โดยอัตโนมัติ และเมตริกจะแบ่งกลุ่มตามทรัพยากรดังกล่าวโดยปริยายที่ระดับ 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 รายการนี้

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

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