การแบ่งกลุ่มพร้อมใช้งานใน UI ของ Google Ads เป็นเมนูแยกต่างหาก คุณสามารถใช้การแบ่งกลุ่มใน Google Ads API ได้โดยเพิ่มช่องที่เหมาะสมลงในคำค้นหา เช่น สมมติว่าคุณเพิ่ม segments.device ลงในคำค้นหา ซึ่งจะส่งผลให้รายงานมีแถวสำหรับชุดค่าผสมของอุปกรณ์แต่ละชุดและทรัพยากรที่ระบุในส่วนคำสั่ง FROM และค่าทางสถิติ (การแสดงผล การคลิก 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 โดยอัตโนมัติ และเมตริกจะแบ่งกลุ่มโดยนัยตามทรัพยากรดังกล่าวที่ระดับ 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
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) ในวันที่เดียวกัน (2024-06-15) ดังนั้น API จึงทำงานตามที่ตั้งใจไว้และไม่ได้แสดงผลออบเจ็กต์ที่ซ้ำกันในกรณีนี้
ช่องกลุ่มที่เลือกได้
ช่องกลุ่มบางช่องอาจเลือกไม่ได้สำหรับทรัพยากรหนึ่งๆ ในส่วนคำสั่ง 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 รายการนี้
ข้อจำกัดของกลุ่มร่วม
ช่องกลุ่มบางช่องมีข้อจำกัดในการเลือกที่ชัดเจนซึ่งกำหนดให้ต้องขอพร้อมกับกลุ่มหลักในส่วนคำสั่ง SELECT ดังนี้
- การเลือก
segments.ad_sub_network_type(ซึ่งจะแจกแจงเครือข่ายย่อยของโฆษณา YouTube เช่น ในสตรีม ในฟีด และ Shorts) กำหนดให้คุณต้องเลือกsegments.ad_network_typeด้วย - ใน v25 ขึ้นไป การเลือก
segments.ad_sub_format_type(ซึ่งแจกแจงโฆษณาในสตรีมแบบข้ามไม่ได้ของ YouTube ตามระยะเวลา) กำหนดให้คุณต้องเลือกsegments.ad_format_typeด้วย
การกรองโดยนัยตามการเลือกกลุ่ม
เมื่อคุณเลือกช่องกลุ่มบางช่องในคําค้นหา 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
กฎสำหรับกลุ่มในส่วนคำสั่ง WHERE
เมื่อกลุ่มอยู่ในส่วนคำสั่ง WHERE กลุ่มนั้นต้องอยู่ในส่วนคำสั่ง SELECT ด้วย
ข้อยกเว้นของกฎนี้คือกลุ่มวันที่ต่อไปนี้ ซึ่งเรียกว่ากลุ่มวันที่หลัก
segments.datesegments.weeksegments.monthsegments.quartersegments.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-01-31' |
| ถูกต้อง: การค้นหานี้จะแสดงชื่อแคมเปญและการคลิกที่แบ่งกลุ่มตามวันที่สำหรับทุกวันในช่วงวันที่ที่รวมอยู่ |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| ถูกต้อง: คำค้นหานี้จะแสดงชื่อแคมเปญและการคลิกที่แบ่งกลุ่มตามเดือนสำหรับทุกวันในช่วงวันที่ที่รวมอยู่ |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| ถูกต้อง: คำค้นหานี้จะแสดงชื่อแคมเปญและการคลิกที่แบ่งกลุ่มตามไตรมาส แล้วแบ่งตามเดือนสำหรับทุกเดือนในช่วงปีที่รวมอยู่ |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year >= 2020 AND segments.year <= 2024 |