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