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