คุณสามารถติดตั้งใช้งานการแบ่งกลุ่มที่มีอยู่ใน UI ของ Google Ads เป็นเมนูแยกต่างหากใน Google Ads API ได้โดยเพียงเพิ่มช่องที่เหมาะสมลงในคําค้นหา ตัวอย่างเช่น การเพิ่ม segments.device
ลงในข้อความค้นหาจะส่งผลให้รายงานมีแถวสำหรับชุดค่าผสมของอุปกรณ์และทรัพยากรที่ระบุในประโยค FROM
แต่ละชุด และค่าทางสถิติ (การแสดงผล การคลิก Conversion ฯลฯ) จะแยกกัน
แม้ว่าใน UI ของ Google Ads คุณจะใช้ได้เพียงกลุ่มเดียวในแต่ละครั้ง แต่คุณระบุกลุ่มเป้าหมายหลายกลุ่มในคําค้นหาเดียวกันได้โดยใช้ 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
ช่องกลุ่มที่เลือกได้
ช่องกลุ่มบางช่องอาจเลือกไม่ได้สําหรับทรัพยากรหนึ่งๆ ในประโยค 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 > '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 ทํางานตามที่ตั้งใจไว้และไม่ได้แสดงผลออบเจ็กต์ที่ซ้ำกันในกรณีนี้