การแบ่งกลุ่มซึ่งอยู่ใน 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
จะมีลักษณะดังนี้
{
"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
ในหน้าข้อมูลเมตา การเลือกช่องจากทรัพยากรที่ระบุไว้ 1 รายการจะทำให้การค้นหามีการแบ่งกลุ่มเพิ่มเติมด้วย 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 > '2020-01-01' AND segments.date < '2020-02-01' |
ถูกต้อง: คำค้นหานี้จะแสดงชื่อแคมเปญและ การคลิกที่แบ่งกลุ่มตามวันที่สำหรับวันที่ทั้งหมดในช่วงวันที่ |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
ถูกต้อง: คำค้นหานี้จะแสดงชื่อแคมเปญและ การคลิกที่แบ่งกลุ่มตามเดือนสำหรับวันทั้งหมดในช่วงวันที่ |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
ถูกต้อง: คำค้นหานี้จะแสดงชื่อและจำนวนคลิกของแคมเปญ ที่แบ่งกลุ่มตามไตรมาสและตามเดือนสำหรับทุกเดือนในช่วงปี |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2015 AND segments.year < 2020 |
search_term_view
โปรดทราบว่าสำหรับทรัพยากร search_term_view
จะมีการแบ่งกลุ่มตามกลุ่มโฆษณาโดยปริยาย ไม่ใช่แค่ข้อความค้นหา ซึ่งแสดงให้เห็นตามโครงสร้างของชื่อทรัพยากร ซึ่งรวมถึงกลุ่มโฆษณาด้วย ดังนั้น คุณจะเห็นแถวที่ดูเหมือนซ้ำกันบางแถวที่มีข้อความค้นหาเดียวกันปรากฏในผลการค้นหาของคุณทั้งที่ในความเป็นจริง แถวเหล่านั้นจะอยู่ในกลุ่มโฆษณาอื่น
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2015-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2015-06-15"
}
}
]
}
แม้ว่าอ็อบเจ็กต์ที่แสดงผลในตัวอย่างนี้ 2 รายการจะดูเหมือนซ้ำกัน แต่จริงๆ แล้วชื่อทรัพยากรแตกต่างกัน โดยเฉพาะในส่วน "กลุ่มโฆษณา" ซึ่งหมายความว่าข้อความค้นหา "Google Photos" จะมาจากกลุ่มโฆษณา 2 กลุ่ม (รหัส 2222222222
และ 33333333333
) ในวันเดียวกัน (15-06-2015)
ดังนั้น เราจึงสรุปได้ว่า API ทำงานได้ตามที่ควรจะเป็น และไม่แสดงผลออบเจ็กต์ที่ซ้ำกันในกรณีนี้