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