สร้างรายงานการค้นหาใน Search Ads 360 Reporting API

อ่านส่วนด้านล่างเพื่อดูวิธีสร้างรายงานการค้นหาใน Search Ads 360 Reporting API

บริการค้นหา

Search Ads 360 Reporting API มีบริการพิเศษสําหรับการค้นหาและการรายงาน

SearchAds360Service เป็นบริการการดึงข้อมูลและการรายงานออบเจ็กต์แบบรวมที่มีวิธีการค้นหา 2 วิธี ได้แก่ SearchStream และ Search ระบบจะส่งการค้นหาในสตริงการค้นหาที่เขียนด้วยภาษาคําค้นหาของ Search Ads 360 คุณกําหนดการค้นหาเพื่อดำเนินการต่อไปนี้ได้

  • ดึงข้อมูลแอตทริบิวต์ที่เฉพาะเจาะจงของออบเจ็กต์
  • ดึงข้อมูลเมตริกประสิทธิภาพของออบเจ็กต์ตามช่วงวันที่
  • จัดเรียงออบเจ็กต์ตามแอตทริบิวต์
  • กรองผลลัพธ์โดยใช้เงื่อนไขที่ระบุออบเจ็กต์ที่จะแสดง
  • จำกัดจำนวนออบเจ็กต์ที่แสดงผล

ทั้ง 2 วิธีจะแสดงผลแถวทั้งหมดที่ตรงกับคำค้นหา ตัวอย่างเช่น เมื่อคุณดึงข้อมูล campaign.id, campaign.name และ metrics.clicks API จะแสดงผล SearchAds360Row ที่มีออบเจ็กต์แคมเปญที่มีการตั้งค่าช่อง id และ name และออบเจ็กต์ metrics ที่มีการตั้งค่าช่อง clicks

วิธีการค้นหา

SearchStream

ส่งคําขอเดียวและเริ่มการเชื่อมต่อแบบถาวรกับ Search Ads 360 Reporting API โดยไม่คํานึงถึงขนาดรายงาน

  • ระบบจะเริ่มดาวน์โหลดแพ็กเก็ตข้อมูลทันทีโดยแคชผลลัพธ์ทั้งหมดไว้ในบัฟเฟอร์ข้อมูล
  • โค้ดของคุณจะเริ่มอ่านข้อมูลที่บัฟเฟอร์ไว้ได้โดยไม่ต้องรอให้สตรีมทั้งรายการเล่นจบ
Search

ส่งคําขอแบบแบ่งหน้าหลายรายการเพื่อดาวน์โหลดรายงานทั้งฉบับ

SearchStream มักจะมีประสิทธิภาพดีกว่าเนื่องจากจะช่วยลดเวลาในการรับส่งข้อมูลในเครือข่ายที่จําเป็นในการขอแต่ละหน้า เราขอแนะนำให้ใช้ SearchStream สำหรับรายงานทั้งหมดที่มีมากกว่า 10,000 แถว ประสิทธิภาพของวิธีการต่างๆ สําหรับรายงานขนาดเล็ก (<10,000 แถว) นั้นไม่มีความแตกต่างกันมากนัก

วิธีการที่คุณใช้จะไม่ส่งผลต่อโควต้าและขีดจํากัดของ API: การค้นหาหรือรายงานรายการเดียวจะนับเป็นการดำเนินการ 1 ครั้ง ไม่ว่าผลลัพธ์จะแสดงเป็นหน้าเว็บหรือสตรีมก็ตาม

ตัวอย่างคำค้นหา

คําค้นหาตัวอย่างนี้จะแสดงข้อมูลประสิทธิภาพของบัญชีในช่วง 30 วันที่ผ่านมาโดยแบ่งตามแคมเปญและแยกตามอุปกรณ์

SELECT
  campaign
.name,
  campaign
.status,
  segments
.device,
  metrics
.impressions,
  metrics
.clicks,
  metrics
.ctr,
  metrics
.average_cpc,
  metrics
.cost_micros
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

ส่งคำขอ

หากต้องการส่งคำขอ คุณต้องส่งสตริง customer_id และ query ไปยังอินเทอร์เฟซ SearchAds360Service.SearchStream หรือ SearchAds360Service.Search

คําขอประกอบด้วย HTTP POST ไปยังเซิร์ฟเวอร์ Search Ads 360 Reporting API ที่ URL ใด URL หนึ่งต่อไปนี้

https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:search

ตัวอย่างที่สมบูรณ์ของคําจํากัดความรายงานที่จะ searchStream อยู่ภายในคําขอ HTTP POST มีดังนี้

POST /VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream HTTP/1.1
Host: searchads360.googleapis.com
User-Agent: curl
Content-Type: application/json
Accept: application/json
Authorization: Bearer [OAUTH_2.0_ACCESS_TOKEN]

Parameters:
{
 
"query" : "SELECT campaign.name, campaign.status, segments.device,
                    metrics.impressions, metrics.clicks, metrics.ctr,
                    metrics.average_cpc, metrics.cost_micros
            FROM campaign
            WHERE segments.date DURING LAST_30_DAYS"

}

ประมวลผลการตอบกลับ

SearchAds360Service แสดงรายการออบเจ็กต์ SearchAds360Row

SearchAds360Row แต่ละรายการแสดงถึงออบเจ็กต์ที่การค้นหาแสดงผล ออบเจ็กต์แต่ละรายการประกอบด้วยชุดแอตทริบิวต์ที่สร้างขึ้นตามช่องที่ขอในประโยค SELECT ของคําค้นหา ระบบจะไม่ป้อนข้อมูลแอตทริบิวต์ที่ไม่ได้รวมอยู่ในประโยค SELECT ลงในออบเจ็กต์ของคำตอบ

ตัวอย่างเช่น คําค้นหาด้านล่างจะป้อนข้อมูลออบเจ็กต์ SearchAds360Row แต่ละรายการด้วย campaign.id, campaign.name และ campaign.status เท่านั้น ระบบจะละเว้นแอตทริบิวต์อื่นๆ เช่น campaign.engine_id หรือ campaign.bidding_strategy_type

SELECT
  campaign
.id,
  campaign
.name,
  campaign
.status
FROM campaign

เอกสารประกอบอ้างอิง

ส่วนข้อมูลอ้างอิงจะประกอบด้วยข้อมูลทั้งหมดที่คุณต้องใช้ในการใช้อาร์ติแฟกต์แต่ละรายการอย่างถูกต้อง แต่ละแหล่งข้อมูลจะมีหน้าเว็บ 1 หน้า เช่น ad_group และ campaign หน้า segments และ metrics จะแสดงรายการกลุ่มและช่องเมตริกที่ใช้ได้ทั้งหมด

ทรัพยากร กลุ่ม และเมตริกบางรายการใช้ร่วมกันไม่ได้ ขณะที่บางรายการใช้ร่วมกันได้และเสริมซึ่งกันและกัน หน้าแหล่งข้อมูลแต่ละหน้าจะมีข้อมูลต่อไปนี้ (หากมีและเหมาะสม) และอื่นๆ

แหล่งข้อมูลที่ระบุแหล่งที่มา

สำหรับทรัพยากรบางรายการ คุณอาจมีตัวเลือกในการรวมทรัพยากรที่เกี่ยวข้องโดยนัยโดยเลือกฟิลด์ของทรัพยากรนั้นๆ ร่วมกับฟิลด์ของทรัพยากรในประโยค FROM เช่น ทรัพยากร campaign เป็นทรัพยากรที่มีการระบุแหล่งที่มาของทรัพยากร ad_group ซึ่งหมายความว่าคุณสามารถรวมช่องต่างๆ เช่น campaign.id และ campaign.bidding_strategy_type ไว้ในข้อความค้นหาได้เมื่อใช้ ad_group ในประโยค FROM

ส่วนทรัพยากรที่มีการระบุแหล่งที่มาจะแสดงรายการทรัพยากรที่มีการระบุแหล่งที่มา ทรัพยากรบางรายการไม่มีแหล่งที่มา

คอลัมน์ฟิลด์ทรัพยากร

ช่องทั้งหมดของทรัพยากรจะรวมอยู่ในคอลัมน์ช่องทรัพยากร ช่องทรัพยากรแต่ละช่องจะลิงก์ไปยังรายละเอียดเพิ่มเติมเกี่ยวกับช่องนั้นๆ ซึ่งรวมถึงคำอธิบาย หมวดหมู่ ประเภทข้อมูล URL ประเภท และการตั้งค่าที่กรองได้ เลือกได้ จัดเรียงได้ และซ้ำได้

คอลัมน์กลุ่ม

ฟิลด์กลุ่มบางฟิลด์อาจเลือกไม่ได้กับทรัพยากรหนึ่งๆ

คอลัมน์กลุ่มจะแสดงรายการช่อง segments ที่คุณใช้ในอนุประโยค SELECT เดียวกันกับช่องของทรัพยากรได้ แต่ละช่องจะลิงก์ไปยังรายละเอียดทั้งหมดเกี่ยวกับช่องนั้นๆ ซึ่งรวมถึงคำอธิบาย หมวดหมู่ ประเภทข้อมูล ประเภท URL และการตั้งค่าที่กรองได้ เลือกได้ จัดเรียงได้ และซ้ำได้ หากคุณใช้ทรัพยากรในประโยค FROM ให้ใช้เมนูแบบเลื่อนลงใช่/ไม่ใช่เพื่อกรองกลุ่มที่ไม่มีให้ใช้ออก

คอลัมน์เมตริก

ฟิลด์เมตริกบางฟิลด์อาจเลือกไม่ได้กับทรัพยากรหนึ่งๆ

คอลัมน์เมตริกจะแสดงรายการช่อง metrics ที่คุณใช้ในเงื่อไข SELECT เดียวกันกับช่องของแหล่งข้อมูลได้ แต่ละช่องจะลิงก์ไปยังรายละเอียดทั้งหมดเกี่ยวกับช่องนั้นๆ ซึ่งรวมถึงคําอธิบาย หมวดหมู่ ประเภทข้อมูล ประเภท URL และการตั้งค่าที่กรองได้ เลือกได้ จัดเรียงได้ และซ้ำได้ หากคุณใช้ทรัพยากรในประโยค FROM ให้ใช้เมนูแบบเลื่อนลงใช่/ไม่เพื่อกรองเมตริกที่ไม่พร้อมใช้งาน

การแบ่งกลุ่มทรัพยากร

ทรัพยากรบางรายการมีฟิลด์ทรัพยากรการแบ่งกลุ่มที่คุณเลือกได้เมื่อทรัพยากรอยู่ในประโยค FROM เช่น หากเลือกช่องแหล่งข้อมูล campaign เช่น campaign.name เมื่อใช้ campaign_budget ในประโยค FROM ระบบจะแสดงผลและแบ่งกลุ่ม campaign.resource_name โดยอัตโนมัติ เนื่องจาก campaign เป็นทรัพยากรการแบ่งกลุ่มของ campaign_budget

ส่วนทรัพยากรการแบ่งกลุ่มจะแสดงทรัพยากรการแบ่งกลุ่มที่ใช้ได้ ทรัพยากรบางรายการไม่มีทรัพยากรการแบ่งกลุ่ม

เลือกได้ด้วย

ช่อง segments บางช่องใช้ร่วมกับแหล่งข้อมูล กลุ่ม และเมตริกอื่นๆ ไม่ได้

หน้า segments จะมีช่องที่เลือกได้ซึ่งขยายได้สําหรับช่อง segments แต่ละช่อง ซึ่งจะแสดงรายการช่องทรัพยากร metrics และช่อง segments อื่นๆ ที่เข้ากันได้ทั้งหมดซึ่งคุณสามารถใส่ไว้ในประโยค SELECT

การแบ่งกลุ่ม

คุณแบ่งกลุ่มผลการค้นหาได้โดยเพิ่มช่อง segments.FIELD_NAME ลงในประโยค SELECT ของข้อความค้นหา

เช่น segments.device ในข้อความค้นหาด้านล่างจะแสดงรายงานที่มีแถวสำหรับ impressions ของอุปกรณ์แต่ละเครื่องสำหรับทรัพยากรที่ระบุไว้ในประโยค FROM

SELECT
  campaign
.name,
  campaign
.status,
  segments
.device,
  metrics
.impressions
FROM campaign

ผลลัพธ์ที่ SearchAds360Service.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"
     
}
   
},
   
...
 
]
}

ดูรายการช่องกลุ่มที่ใช้ได้ได้ที่ segments

หลายกลุ่ม

คุณสามารถระบุกลุ่มหลายกลุ่มในประโยค SELECT ของข้อความค้นหาได้ การตอบกลับประกอบด้วยออบเจ็กต์ SearchAds360Row 1 รายการสําหรับชุดค่าผสมของอินสแตนซ์ของทรัพยากรหลักที่ระบุไว้ในประโยค FROM และค่าของช่อง segment แต่ละช่องที่เลือก

เช่น การค้นหาต่อไปนี้จะแสดงผล 1 แถวสําหรับชุดค่าผสมของ campaign, segments.ad_network_type และ segments.date แต่ละชุด

SELECT
  segments
.ad_network_type
  segments
.date
FROM campaign

โปรดทราบว่าระบบจะแบ่งกลุ่มผลลัพธ์โดยนัยตามอินสแตนซ์ของแหล่งข้อมูลหลักแต่ละรายการ แต่จะไม่แบ่งตามค่าของช่องที่เลือกแต่ละช่อง

ตัวอย่างการค้นหาต่อไปนี้จะแสดงผลลัพธ์ 1 แถวต่อแคมเปญ ไม่ใช่ 1 แถวต่อค่าที่แตกต่างกันของช่อง campaign.status

SELECT
  campaign
.status,
  metrics
.impressions
FROM campaign
WHERE segments.date DURING LAST_14_DAYS

การแบ่งกลุ่มแบบไม่ระบุ

รายงานทุกฉบับจะแบ่งกลุ่มตามทรัพยากรที่ระบุไว้ในFROM ประโยค เมตริกจะแบ่งตามช่อง resource_name ของทรัพยากรนี้

ตัวอย่างการค้นหานี้จะแสดงผล ad_group.resource_name โดยอัตโนมัติและใช้ 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"
     
}
   
}
 
]
}

กลุ่มวันที่หลัก

คุณสามารถใช้กลุ่มวันที่หลักในประโยคเงื่อนไข WHERE เพื่อระบุวันที่หรือระยะเวลาได้

ช่องกลุ่มต่อไปนี้เรียกว่ากลุ่มวันที่หลัก segments.date, segments.week, segments.month, segments.quarter และ segments.year

คําค้นหาตัวอย่างนี้จะแสดงเมตริก clicks ของแคมเปญในช่วง 30 วันที่ผ่านมา

SELECT
  campaign
.id,
  campaign
.name,
  segments
.date,
  metrics
.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

ช่องกลุ่มวันที่หลักเป็นข้อยกเว้นจากกฎทั่วไปที่คุณใช้ช่องกลุ่มในประโยค WHERE ไม่ได้ เว้นแต่คุณจะรวมช่องดังกล่าวไว้ในประโยค SELECT ด้วย ดูข้อมูลเพิ่มเติมได้ในการกรองที่ไม่ได้รับอนุญาต

กฎกลุ่มเป้าหมายตามวันที่หลัก

  • คุณสามารถใช้ช่องวันที่หลักในประโยค WHERE โดยไม่ต้องใส่ไว้ในประโยค SELECT คุณยังใส่ช่องในทั้ง 2 ประโยคได้ด้วยหากต้องการ

    การค้นหาตัวอย่างนี้จะแสดงเมตริก clicks ตามชื่อแคมเปญในช่วงวันที่ โปรดทราบว่า segments.date ไม่ได้รวมอยู่ในประโยค SELECT

    SELECT
        campaign
    .name,
        metrics
    .clicks
    FROM campaign
    WHERE segments.date > '2022-02-01'
     
    AND segments.date < '2022-03-01'
  • หากรวมช่องวันที่หลักไว้ในประโยค SELECT คุณต้องระบุวันที่หรือช่วงวันที่ที่แน่นอนในประโยค WHERE ช่องที่ระบุในเงื่อไข SELECT และ WHERE ไม่จำเป็นต้องตรงกัน

    การค้นหาตัวอย่างนี้จะแสดงเมตริก clicks ตามชื่อแคมเปญที่แบ่งตามเดือนสําหรับทุกวันในช่วงวันที่

    SELECT
      campaign
    .name,
      metrics
    .clicks,
      segments
    .month
    FROM campaign
    WHERE segments.date > '2022-02-01'
     
    AND segments.date < '2022-03-01'

วันที่ในรูปแบบ ISO 8601

คุณสามารถใช้รูปแบบ YYYY-MM-DD (ISO 8601) เพื่อระบุวันที่และช่วงวันที่ได้ ดังนี้

WHERE segments.date BETWEEN '2022-06-01' AND '2022-06-30'
WHERE segments.date >= '2022-06-01' AND segments.date <= '2022-06-30'

สําหรับกลุ่มวันที่หลักที่ต้องใช้ระยะเวลา (segments.week, segments.month, segments.quarter) คุณสามารถใช้โอเปอเรเตอร์ = กับวันแรกของระยะเวลา ดังนี้

WHERE segments.month = '2022-06-01'

วันที่ที่กําหนดไว้ล่วงหน้า

นอกจากนี้ คุณยังใช้วันที่และช่วงวันที่ที่กําหนดไว้ล่วงหน้าต่อไปนี้ได้ด้วย

วันที่ที่กําหนดไว้ล่วงหน้า
TODAY วันนี้เท่านั้น
YESTERDAY เมื่อวานเท่านั้น
LAST_7_DAYS 7 วันก่อนหน้าโดยไม่รวมวันนี้
LAST_BUSINESS_WEEK สัปดาห์ทำการ 5 วันก่อนหน้า (วันจันทร์ถึงศุกร์)
THIS_MONTH ทุกวันของเดือนปัจจุบัน
LAST_MONTH ทุกวันของเดือนก่อนหน้า
LAST_14_DAYS 14 วันที่ผ่านมา ไม่รวมวันนี้
LAST_30_DAYS 30 วันก่อนหน้าโดยไม่รวมวันนี้
THIS_WEEK_SUN_TODAY ระยะเวลาระหว่างวันอาทิตย์ก่อนหน้ากับปัจจุบัน
THIS_WEEK_MON_TODAY ระยะเวลาระหว่างวันจันทร์ก่อนหน้ากับวันปัจจุบัน
LAST_WEEK_SUN_SAT ระยะเวลา 7 วันนับจากวันอาทิตย์ก่อนหน้า
LAST_WEEK_MON_SUN ระยะเวลา 7 วันโดยเริ่มตั้งแต่วันจันทร์ก่อนหน้า

ตัวอย่าง

WHERE segments.date DURING LAST_30_DAYS

เมตริกเป็น 0

เมื่อเรียกใช้การค้นหา คุณอาจเห็นเมตริกที่มีค่าเป็น 0 สําหรับเอนทิตีบางรายการ ดูวิธีจัดการเมตริกเป็น 0 ในการค้นหา

ประเภท enum ที่ไม่รู้จัก

หากระบบแสดงผลทรัพยากรที่มีประเภทข้อมูล UNKNOWN enum แสดงว่าเวอร์ชัน API ไม่รองรับประเภทดังกล่าวอย่างเต็มรูปแบบ ทรัพยากรเหล่านี้อาจสร้างขึ้นผ่านอินเทอร์เฟซอื่นๆ เช่น มีการเปิดตัวแคมเปญหรือโฆษณาใหม่ใน UI ของ Search Ads 360 แต่ API เวอร์ชันที่คุณค้นหายังไม่รองรับ

คุณยังคงเลือกเมตริกได้เมื่อทรัพยากรมีประเภท UNKNOWN แต่ต้องคำนึงถึงสิ่งต่อไปนี้

  • ระบบอาจรองรับทรัพยากรประเภท UNKNOWN ในภายหลัง แต่ทรัพยากรดังกล่าวอาจยังคงเป็น UNKNOWN ต่อไปอย่างไม่มีกำหนด
  • วัตถุใหม่ที่มีประเภท UNKNOWN อาจปรากฏขึ้นได้ทุกเมื่อ ออบเจ็กต์เหล่านี้เข้ากันได้กับเวอร์ชันเก่าเนื่องจากมีค่า enum อยู่แล้ว เราจะเปิดตัวแหล่งข้อมูลเกี่ยวกับการเปลี่ยนแปลงนี้เมื่อพร้อมใช้งาน เพื่อให้คุณเห็นภาพรวมที่ถูกต้องของบัญชี ทรัพยากร UNKNOWN อาจปรากฏขึ้นเนื่องจากมีกิจกรรมใหม่ในบัญชีผ่านอินเทอร์เฟซอื่นๆ หรือเนื่องจากระบบไม่รองรับทรัพยากรอย่างเป็นทางการอีกต่อไป
  • UNKNOWN ทรัพยากรอาจมีเมตริกโดยละเอียดที่แนบมาซึ่งคุณค้นหาได้
  • โดยทั่วไป UNKNOWN ทรัพยากรจะปรากฏใน UI ของ Search Ads 360 อย่างเต็มรูปแบบ