Reports: Query

สำคัญ: ตอนนี้คำขอ API ไปยังเมธอดนี้ต้องมีสิทธิ์เข้าถึงขอบเขต https://www.googleapis.com/auth/youtube.readonly

วิธีนี้ช่วยให้คุณดึงข้อมูลรายงาน Analytics ที่แตกต่างกันได้มากมาย คำขอแต่ละรายการใช้พารามิเตอร์การค้นหาเพื่อระบุรหัสช่องหรือเจ้าของเนื้อหา วันที่เริ่มต้น วันที่สิ้นสุด และเมตริกอย่างน้อย 1 รายการ นอกจากนี้ คุณยังระบุพารามิเตอร์การค้นหาเพิ่มเติมได้ เช่น มิติข้อมูล ตัวกรอง และวิธีการจัดเรียง

  • เมตริกคือการวัดกิจกรรมของผู้ใช้แต่ละรายการ เช่น ยอดดูวิดีโอหรือการให้คะแนน (การกดชอบและไม่ชอบ)
  • มิติข้อมูลคือเกณฑ์ทั่วไปที่ใช้ในการรวบรวมข้อมูล เช่น วันที่เกิดกิจกรรมของผู้ใช้หรือประเทศที่ผู้ใช้อยู่ ในรายงาน ข้อมูลแต่ละแถวจะมีชุดค่าผสมของค่ามิติข้อมูลที่ไม่ซ้ำกัน
  • ตัวกรองคือค่ามิติข้อมูลที่ระบุข้อมูลที่จะดึง เช่น คุณสามารถดึงข้อมูลสำหรับประเทศใดประเทศหนึ่ง วิดีโอใดวิดีโอหนึ่ง หรือกลุ่มวิดีโอได้

หมายเหตุ: รายงานเจ้าของเนื้อหามีไว้สำหรับพาร์ทเนอร์เนื้อหาของ YouTube ที่เข้าร่วมโปรแกรมพาร์ทเนอร์ YouTube เท่านั้น

กรณีการใช้งานทั่วไป

ส่งคำขอ

คำขอ HTTP

GET https://youtubeanalytics.googleapis.com/v2/reports

คำขอ API ของข้อมูลวิเคราะห์ YouTube ทั้งหมดต้องได้รับอนุญาต คู่มือการให้สิทธิ์จะอธิบายวิธีใช้โปรโตคอล OAuth 2.0 เพื่อดึงโทเค็นการให้สิทธิ์

คำขอ API ของข้อมูลวิเคราะห์ YouTube ใช้ขอบเขตการให้สิทธิ์ต่อไปนี้

ขอบเขต
https://www.googleapis.com/auth/yt-analytics.readonly ดูรายงานข้อมูลวิเคราะห์ YouTube สำหรับเนื้อหา YouTube ของคุณ ขอบเขตนี้ให้สิทธิ์เข้าถึงเมตริกกิจกรรมของผู้ใช้ เช่น จำนวนการดูและจำนวนการให้คะแนน
https://www.googleapis.com/auth/yt-analytics-monetary.readonly ดูรายงานด้านการเงินของข้อมูลวิเคราะห์ YouTube สำหรับเนื้อหา YouTube ของคุณ ขอบเขตนี้ให้สิทธิ์เข้าถึงเมตริกกิจกรรมของผู้ใช้ รวมถึงเมตริกรายได้และประสิทธิภาพโฆษณาโดยประมาณ
https://www.googleapis.com/auth/youtube จัดการบัญชี YouTube ใน YouTube Analytics API เจ้าของช่องจะใช้ขอบเขตนี้เพื่อจัดการกลุ่มข้อมูลวิเคราะห์ YouTube และรายการกลุ่ม
https://www.googleapis.com/auth/youtubepartner ดูและจัดการเนื้อหา YouTube และเนื้อหาที่เกี่ยวข้องใน YouTube ใน YouTube Analytics API เจ้าของเนื้อหาจะใช้ขอบเขตนี้เพื่อจัดการกลุ่มข้อมูลวิเคราะห์ YouTube และรายการในกลุ่ม

พารามิเตอร์

ตารางต่อไปนี้แสดงพารามิเตอร์การค้นหาที่จำเป็นและไม่บังคับสำหรับคำขอ API เพื่อดึงข้อมูลรายงานการค้นหา พารามิเตอร์การค้นหามาตรฐานที่แสดงในตารางยังเป็นพารามิเตอร์ที่ไม่บังคับและรองรับโดย Google APIs หลายรายการด้วย

พารามิเตอร์
พารามิเตอร์ที่จำเป็น
endDate string
วันที่สิ้นสุดสำหรับการดึงข้อมูล YouTube Analytics ค่าควรอยู่ในรูปแบบ YYYY-MM-DD

การตอบกลับของ API มีข้อมูลจนถึงวันสุดท้ายที่เมตริกทั้งหมดในการค้นหาพร้อมใช้งาน ณ เวลาที่ค้นหา ดังนั้น ตัวอย่างเช่น หากคำขอระบุวันที่สิ้นสุดเป็นวันที่ 5 กรกฎาคม 2017 และค่าของเมตริกที่ขอทั้งหมดใช้ได้จนถึงวันที่ 3 กรกฎาคม 2017 เท่านั้น วันที่ดังกล่าวจะเป็นวันที่ล่าสุดที่มีการรวมข้อมูลไว้ในการตอบกลับ (แม้ว่าข้อมูลสำหรับเมตริกบางรายการที่ขอจะพร้อมใช้งานในวันที่ 4 กรกฎาคม 2017 ก็ตาม)
หมายเหตุ: ใน API เวอร์ชัน 1 พารามิเตอร์นี้มีชื่อว่า end-date
ids string
ระบุช่อง YouTube หรือเจ้าของเนื้อหาที่คุณกำลังดึงข้อมูลYouTube Analytics

  • หากต้องการขอข้อมูลสำหรับช่อง YouTube ให้ตั้งค่าพารามิเตอร์ ids เป็น channel==MINE หรือ channel==CHANNEL_ID โดยที่ CHANNEL_ID ระบุช่อง YouTube ของผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์ในปัจจุบัน
  • หากต้องการขอข้อมูลสำหรับเจ้าของเนื้อหา YouTube ให้ตั้งค่าพารามิเตอร์ ids เป็น contentOwner==OWNER_NAME โดยที่ OWNER_NAME คือ content owner ID ของผู้ใช้

metrics string
รายการเมตริกYouTube Analyticsที่คั่นด้วยคอมมา เช่น views หรือ likes,dislikes ดูรายการรายงานที่คุณเรียกดูได้และเมตริกที่มีในแต่ละรายงานได้ในเอกสารประกอบสำหรับรายงานช่องหรือรายงานเจ้าของเนื้อหา (เอกสารเมตริกมีคำจำกัดความของเมตริกทั้งหมด)
startDate string
วันที่เริ่มต้นสำหรับการดึงข้อมูล YouTube Analytics ค่าควรอยู่ในรูปแบบ YYYY-MM-DD
หมายเหตุ: ใน API เวอร์ชัน 1 พารามิเตอร์นี้มีชื่อว่า start-date
พารามิเตอร์ที่ไม่บังคับ
currency string
สกุลเงินที่ API จะใช้เพื่อระบุเมตริกรายได้โดยประมาณต่อไปนี้ estimatedRevenue, estimatedAdRevenue, estimatedRedPartnerRevenue, grossRevenue, cpm, playbackBasedCpm ค่าที่ API แสดงสําหรับเมตริกเหล่านั้นคือค่าประมาณที่คํานวณโดยใช้อัตราแลกเปลี่ยนที่เปลี่ยนแปลงทุกวัน หากไม่มีการขอเมตริกเหล่านั้น ระบบจะละเว้นพารามิเตอร์

ค่าพารามิเตอร์คือรหัสสกุลเงิน 3 ตัวอักษรตามมาตรฐาน ISO 4217 จากรายการสกุลเงินด้านล่าง API จะแสดงข้อผิดพลาดหากมีการระบุสกุลเงินที่ไม่รองรับ ค่าเริ่มต้นคือ USD

dimensions string
รายการมิติข้อมูลของข้อมูลวิเคราะห์ YouTube ที่คั่นด้วยคอมมา เช่น video หรือ ageGroup,gender ดูรายการรายงานที่คุณดึงข้อมูลได้และมิติข้อมูลที่ใช้สำหรับรายงานเหล่านั้นในเอกสารประกอบสำหรับรายงานช่องหรือรายงานเจ้าของเนื้อหา (เอกสารมิติข้อมูลมีคำจำกัดความของมิติข้อมูลทั้งหมด)
filters string
รายการตัวกรองที่ควรใช้เมื่อเรียกข้อมูล YouTube Analytics เอกสารประกอบสำหรับรายงานช่องและรายงานเจ้าของเนื้อหาจะระบุมิติข้อมูลที่ใช้กรองแต่ละรายงานได้ และเอกสารมิติข้อมูลจะกำหนดมิติข้อมูลเหล่านั้น

หากคำขอใช้ตัวกรองหลายรายการ ให้รวมตัวกรองเหล่านั้นด้วยเครื่องหมายอัฒภาค (;) แล้วตารางผลลัพธ์ที่ส่งคืนจะตรงตามตัวกรองทั้ง 2 รายการ เช่น filters ค่าพารามิเตอร์ video==dMH0bHeiRNg;country==IT จะจํากัดชุดผลลัพธ์ให้รวมข้อมูลสําหรับวิดีโอที่ระบุในอิตาลี

การระบุค่าหลายค่าสําหรับตัวกรอง

API รองรับความสามารถในการระบุค่าหลายค่าสําหรับตัวกรอง video, playlist และ channel โดยระบุรายการรหัสวิดีโอ เพลย์ลิสต์ หรือช่องที่คั่นด้วยคอมมาซึ่งควรกรองการตอบกลับของ API เช่น ค่าพารามิเตอร์ filters ของ video==pd1FJh59zxQ,Zhawgd0REhA;country==IT จะจำกัดชุดผลลัพธ์ให้รวมข้อมูลสำหรับวิดีโอที่ระบุในอิตาลี ค่าพารามิเตอร์ระบุรหัสได้สูงสุด 500 รายการ

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

เช่น สมมติว่าคุณดึงรายงานแหล่งที่มาของการเข้าชมของช่อง ซึ่งรวบรวมสถิติการดูตามลักษณะที่ผู้ชมเข้าถึงเนื้อหาวิดีโอของช่อง สมมติว่าคำขอของคุณระบุรายการวิดีโอ 10 รายการที่ควรแสดงข้อมูลผ่านพารามิเตอร์ filters ของคำขอ
  • หากคุณเพิ่ม video ลงในค่าของพารามิเตอร์ dimensions การตอบกลับของ API จะแสดงสถิติแหล่งที่มาของการเข้าชมแยกกันสำหรับวิดีโอทั้ง 10 รายการ
  • หากคุณไม่เพิ่ม video ลงในค่าของพารามิเตอร์ dimensions การตอบกลับของ API จะรวบรวมสถิติแหล่งที่มาของการเข้าชมสำหรับวิดีโอทั้ง 10 รายการ
includeHistoricalChannelData boolean
หมายเหตุ: พารามิเตอร์นี้ใช้กับรายงานเจ้าของเนื้อหาเท่านั้น

ระบุว่าการตอบกลับของ API ควรมีข้อมูลเวลาในการรับชมและยอดดูของช่องจากระยะเวลาก่อนที่ระบบจะลิงก์ช่องกับเจ้าของเนื้อหาหรือไม่ ค่าพารามิเตอร์เริ่มต้นคือ false ซึ่งหมายความว่าการตอบกลับของ API จะมีเฉพาะเวลาในการดูและข้อมูลการดูตั้งแต่วันที่ที่ลิงก์ช่องกับเจ้าของเนื้อหา

โปรดทราบว่าช่องต่างๆ อาจลิงก์กับเจ้าของเนื้อหาในวันที่ต่างกัน หากคำขอ API ดึงข้อมูลสำหรับหลายช่องทางและค่าพารามิเตอร์คือ false การตอบกลับของ API จะมีข้อมูลตามวันที่ลิงก์สำหรับแต่ละช่องทางที่เกี่ยวข้อง หากค่าพารามิเตอร์เป็น true การตอบกลับของ API จะมีข้อมูลที่ตรงกับวันที่ที่ระบุในคำขอ API
หมายเหตุ: ใน API เวอร์ชัน 1 พารามิเตอร์นี้มีชื่อว่า include-historical-channel-data
maxResults integer
จำนวนแถวสูงสุดที่จะรวมไว้ในการตอบกลับ
หมายเหตุ: ใน API เวอร์ชัน 1 พารามิเตอร์นี้มีชื่อว่า max-results
sort string
รายการมิติข้อมูลหรือเมตริกที่คั่นด้วยคอมมาซึ่งกำหนดลำดับการจัดเรียงข้อมูลของข้อมูลวิเคราะห์ YouTube โดยค่าเริ่มต้น ลำดับการจัดเรียงจะเป็นจากน้อยไปมาก คำนำหน้า - ทำให้เกิดลำดับการจัดเรียงจากมากไปน้อย
startIndex integer
ดัชนีแบบ 1 ของเอนทิตีแรกที่จะดึงข้อมูล (ค่าเริ่มต้นคือ 1) ใช้พารามิเตอร์นี้เป็นกลไกการแบ่งหน้าพร้อมกับพารามิเตอร์ max-results
หมายเหตุ: ใน API เวอร์ชัน 1 พารามิเตอร์นี้มีชื่อว่า start-index
พารามิเตอร์มาตรฐาน
access_token OAuth 2.0 โทเค็นสำหรับผู้ใช้ปัจจุบัน
alt พารามิเตอร์นี้ไม่รองรับใน API เวอร์ชัน 2 ซึ่งรองรับเฉพาะการตอบกลับ JSON รูปแบบข้อมูลสำหรับการตอบกลับ API
  • ค่าที่ถูกต้อง: json, csv
  • ค่าเริ่มต้น: json
callback ฟังก์ชัน Callback
  • ชื่อฟังก์ชัน Callback ของ JavaScript ที่จัดการการตอบกลับ
  • ใช้ในคำขอ JavaScript JSON-P
prettyPrint

แสดงผลการตอบกลับพร้อมการเยื้องและการขึ้นบรรทัดใหม่

  • แสดงผลการตอบกลับในรูปแบบที่มนุษย์อ่านได้หาก true
  • ค่าเริ่มต้น: true
  • เมื่อเป็น false จะช่วยลดขนาดเพย์โหลดการตอบกลับ ซึ่งอาจส่งผลให้ประสิทธิภาพดีขึ้นในบางสภาพแวดล้อม
quotaUser พารามิเตอร์นี้รองรับใน API เวอร์ชัน 1 ซึ่งตอนนี้เลิกใช้งานแล้ว API เวอร์ชัน 2 ไม่รองรับพารามิเตอร์นี้
userIp พารามิเตอร์นี้รองรับใน API เวอร์ชัน 1 ซึ่งตอนนี้เลิกใช้งานแล้ว API เวอร์ชัน 2 ไม่รองรับพารามิเตอร์นี้

เนื้อความของคำขอ

อย่าส่งเนื้อหาคำขอเมื่อเรียกใช้เมธอดนี้

การตอบกลับ

ดังที่ระบุไว้ในคำจำกัดความพารามิเตอร์ alt API สามารถแสดงการตอบกลับในรูปแบบ JSON หรือ CSV ข้อมูลเกี่ยวกับเนื้อหาการตอบกลับสำหรับแต่ละประเภทจะแสดงด้านล่าง

JSON
{
  "kind": "youtubeAnalytics#resultTable",
  "columnHeaders": [
    {
      "name": string,
      "dataType": string,
      "columnType": string
    },
    ... more headers ...
  ],
  "rows": [
    [
      {value}, {value}, ...
    ]
  ]
}
พร็อพเพอร์ตี้
kind string
ค่านี้ระบุประเภทของข้อมูลที่รวมอยู่ในการตอบกลับของ API สำหรับเมธอด query ค่าพร็อพเพอร์ตี้ kind จะเป็น youtubeAnalytics#resultTable อย่างไรก็ตาม หาก API เพิ่มการรองรับวิธีการอื่นๆ การตอบกลับ API สำหรับวิธีการเหล่านั้นอาจทำให้เกิดค่าพร็อพเพอร์ตี้ kind อื่นๆ
columnHeaders[] list
ค่านี้จะระบุข้อมูลเกี่ยวกับข้อมูลที่แสดงในช่อง rows แต่ละรายการในcolumnHeaders list จะระบุฟิลด์ที่ส่งคืนในค่า rows ซึ่งมีรายการข้อมูลที่คั่นด้วยคอมมา

columnHeaders list จะเริ่มต้นด้วยมิติข้อมูลที่ระบุในคำขอ API ตามด้วยเมตริกที่ระบุในคำขอ API ลำดับของทั้งมิติข้อมูลและเมตริกจะตรงกับลำดับในคำขอ API

ตัวอย่างเช่น หากคำขอ API มีพารามิเตอร์ dimensions=ageGroup,gender&metrics=viewerPercentage การตอบกลับของ API จะแสดงผลคอลัมน์ตามลำดับนี้ ageGroup, gender, viewerPercentage
columnHeaders[].name string
ชื่อของมิติข้อมูลหรือเมตริก
columnHeaders[].columnType string
ประเภทของคอลัมน์ (DIMENSION หรือ METRIC)
columnHeaders[].dataType string
ประเภทของข้อมูลในคอลัมน์ (STRING, INTEGER, FLOAT ฯลฯ)
rows[] list
รายการประกอบด้วยแถวทั้งหมดของตารางผลลัพธ์ แต่ละรายการในลิสต์คืออาร์เรย์ที่มีข้อมูลที่คั่นด้วยคอมมาซึ่งสอดคล้องกับข้อมูล 1 แถว ลำดับของฟิลด์ข้อมูลที่คั่นด้วยคอมมาจะตรงกับลำดับของคอลัมน์ที่แสดงในฟิลด์ columnHeaders

หากไม่มีข้อมูลสำหรับคำค้นหาที่ระบุ ระบบจะไม่รวมองค์ประกอบ rows ไว้ในการตอบกลับ

การตอบกลับสำหรับคำค้นหาที่มีมิติข้อมูล day จะไม่มีแถวสำหรับวันล่าสุด

CSV
day, views, likes, ...
"2012-01-01", 12.0, 3, ...
"2012-01-02", 16.0, 2, ...
"2012-01-03", 18.0, 8, ...
...

ตัวอย่าง

หมายเหตุ: ตัวอย่างโค้ดต่อไปนี้อาจไม่ได้แสดงถึงภาษาโปรแกรมที่รองรับทั้งหมด ดูรายการภาษาที่รองรับได้ในเอกสารประกอบไลบรารีของไคลเอ็นต์

JavaScript

ตัวอย่างนี้เรียกใช้ YouTube Analytics API เพื่อดึงข้อมูลยอดดูรายวันและเมตริกอื่นๆ สำหรับช่องของผู้ใช้ที่ให้สิทธิ์ ในปีปฏิทิน 2017 ตัวอย่างใช้ไลบรารีของไคลเอ็นต์ JavaScript สำหรับ Google APIs

ก่อนเรียกใช้ตัวอย่างนี้ในเครื่องเป็นครั้งแรก คุณต้องตั้งค่าข้อมูลเข้าสู่ระบบการให้สิทธิ์สำหรับโปรเจ็กต์ของคุณโดยทำดังนี้
  1. สร้างหรือเลือกโปรเจ็กต์ในคอนโซล Google API
  2. เปิดใช้ YouTube Analytics API สำหรับโปรเจ็กต์
  3. ที่ด้านบนของหน้าข้อมูลเข้าสู่ระบบ ให้เลือกแท็บหน้าจอขอความยินยอม OAuth เลือกอีเมล ป้อนชื่อผลิตภัณฑ์หากยังไม่ได้ตั้งค่า แล้วคลิกปุ่มบันทึก
  4. ในหน้าข้อมูลเข้าสู่ระบบ ให้คลิกปุ่มสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกรหัสไคลเอ็นต์ Oauth
  5. เลือกประเภทแอปพลิเคชันเป็นเว็บแอปพลิเคชัน
  6. ในช่องต้นทาง JavaScript ที่ได้รับอนุญาต ให้ป้อน URL ที่คุณจะใช้แสดงตัวอย่างโค้ด เช่น คุณอาจใช้ http://localhost:8000 หรือ http://yourserver.example.com คุณเว้นช่อง URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตว่างไว้ได้
  7. คลิกปุ่มสร้างเพื่อสร้างข้อมูลเข้าสู่ระบบให้เสร็จสมบูรณ์
  8. ก่อนปิดกล่องโต้ตอบ ให้คัดลอกรหัสไคลเอ็นต์ ซึ่งคุณจะต้องใส่ลงในตัวอย่างโค้ด

จากนั้นบันทึกตัวอย่างลงในไฟล์ในเครื่อง ในตัวอย่าง ให้ค้นหาบรรทัดต่อไปนี้ แล้วแทนที่ YOUR_CLIENT_ID ด้วยรหัสไคลเอ็นต์ที่คุณได้รับเมื่อตั้งค่าข้อมูลเข้าสู่ระบบการให้สิทธิ์

gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});

ตอนนี้คุณพร้อมที่จะทดสอบตัวอย่างแล้ว โดยทำดังนี้

  1. เปิดไฟล์ในเครื่องจากเว็บเบราว์เซอร์ แล้วเปิดคอนโซลการแก้ไขข้อบกพร่องในเบราว์เซอร์ คุณควรเห็นหน้าเว็บที่แสดงปุ่ม 2 ปุ่ม
  2. คลิกปุ่มให้สิทธิ์และโหลดเพื่อเปิดขั้นตอนการให้สิทธิ์ผู้ใช้ หากให้สิทธิ์แอปในการดึงข้อมูลช่อง คุณควรเห็นบรรทัดต่อไปนี้พิมพ์ลงในคอนโซลในเบราว์เซอร์
    Sign-in successful
    GAPI client loaded for API
  3. หากเห็นข้อความแสดงข้อผิดพลาดแทนบรรทัดด้านบน ให้ยืนยันว่าคุณกำลังโหลดสคริปต์จาก URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตซึ่งคุณตั้งค่าไว้สำหรับโปรเจ็กต์ และคุณได้ใส่รหัสไคลเอ็นต์ลงในโค้ดตามที่อธิบายไว้ข้างต้น
  4. คลิกปุ่มเรียกใช้เพื่อเรียก API คุณควรเห็นออบเจ็กต์ response พิมพ์ไปยังคอนโซลในเบราว์เซอร์ ในออบเจ็กต์นั้น พร็อพเพอร์ตี้ result จะแมปกับออบเจ็กต์ที่มีข้อมูล API
<script src="https://apis.google.com/js/api.js"></script>
<script>
  function authenticate() {
    return gapi.auth2.getAuthInstance()
        .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"})
        .then(function() { console.log("Sign-in successful"); },
              function(err) { console.error("Error signing in", err); });
  }
  function loadClient() {
    return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2")
        .then(function() { console.log("GAPI client loaded for API"); },
              function(err) { console.error("Error loading GAPI client for API", err); });
  }
  // Make sure the client is loaded and sign-in is complete before calling this method.
  function execute() {
    return gapi.client.youtubeAnalytics.reports.query({
      "ids": "channel==MINE",
      "startDate": "2017-01-01",
      "endDate": "2017-12-31",
      "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained",
      "dimensions": "day",
      "sort": "day"
    })
        .then(function(response) {
                // Handle the results here (response.result has the parsed body).
                console.log("Response", response);
              },
              function(err) { console.error("Execute error", err); });
  }
  gapi.load("client:auth2", function() {
    gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
  });
</script>
<button onclick="authenticate().then(loadClient)">authorize and load</button>
<button onclick="execute()">execute</button>

Python

ตัวอย่างนี้เรียกใช้ YouTube Analytics API เพื่อดึงข้อมูลยอดดูรายวันและเมตริกอื่นๆ สำหรับช่องของผู้ใช้ที่ให้สิทธิ์ ในปีปฏิทิน 2017 ตัวอย่างใช้ไลบรารีของไคลเอ็นต์ Python สำหรับ Google APIs

ก่อนเรียกใช้ตัวอย่างนี้ในเครื่องเป็นครั้งแรก คุณต้องตั้งค่าข้อมูลเข้าสู่ระบบการให้สิทธิ์สำหรับโปรเจ็กต์ของคุณโดยทำดังนี้
  1. สร้างหรือเลือกโปรเจ็กต์ในคอนโซล Google API
  2. เปิดใช้ YouTube Analytics API สำหรับโปรเจ็กต์
  3. ที่ด้านบนของหน้าข้อมูลเข้าสู่ระบบ ให้เลือกแท็บหน้าจอขอความยินยอม OAuth เลือกอีเมล ป้อนชื่อผลิตภัณฑ์หากยังไม่ได้ตั้งค่า แล้วคลิกปุ่มบันทึก
  4. ในหน้าข้อมูลเข้าสู่ระบบ ให้คลิกปุ่มสร้างข้อมูลเข้าสู่ระบบ แล้วเลือกรหัสไคลเอ็นต์ Oauth
  5. เลือกประเภทแอปพลิเคชันอื่นๆ ป้อนชื่อ "Quickstart ของ YouTube Analytics API" แล้วคลิกปุ่มสร้าง
  6. คลิกตกลงเพื่อปิดกล่องโต้ตอบที่ปรากฏขึ้น
  7. คลิกปุ่ม (ดาวน์โหลด JSON) ทางด้านขวาของรหัสไคลเอ็นต์
  8. ย้ายไฟล์ที่ดาวน์โหลดไปยังไดเรกทอรีการทำงาน

นอกจากนี้ คุณยังต้องติดตั้งไลบรารีของไคลเอ็นต์ Google APIs สำหรับ Python และไลบรารีเพิ่มเติมบางรายการด้วย

pip install --upgrade google-api-python-client
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2

ตอนนี้คุณพร้อมที่จะทดสอบตัวอย่างแล้ว โดยทำดังนี้

  1. คัดลอกตัวอย่างโค้ดด้านล่างไปยังไดเรกทอรีการทำงาน
  2. ในตัวอย่าง ให้อัปเดตค่าของตัวแปร CLIENT_SECRETS_FILE ให้ตรงกับตำแหน่งของไฟล์ที่คุณดาวน์โหลดหลังจากตั้งค่าข้อมูลเข้าสู่ระบบการให้สิทธิ์
  3. เรียกใช้โค้ดตัวอย่างในหน้าต่างเทอร์มินัล
    python yt_analytics_v2.py
  4. ทำตามขั้นตอนการให้สิทธิ์ ขั้นตอนการให้สิทธิ์อาจโหลดในเบราว์เซอร์โดยอัตโนมัติ หรือคุณอาจต้องคัดลอก URL การให้สิทธิ์ลงในหน้าต่างเบราว์เซอร์ ในตอนท้ายของขั้นตอนการให้สิทธิ์ ให้วางรหัสการให้สิทธิ์ที่แสดงในเบราว์เซอร์ลงในหน้าต่างเทอร์มินัล แล้วคลิก [return] หากจำเป็น
  5. การค้นหา API จะทำงานและการตอบสนอง JSON จะแสดงในหน้าต่างเทอร์มินัล
# -*- coding: utf-8 -*-

import os
import google.oauth2.credentials
import google_auth_oauthlib.flow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from google_auth_oauthlib.flow import InstalledAppFlow

SCOPES = ['https://www.googleapis.com/auth/yt-analytics.readonly']

API_SERVICE_NAME = 'youtubeAnalytics'
API_VERSION = 'v2'
CLIENT_SECRETS_FILE = 'YOUR_CLIENT_SECRET_FILE.json'
def get_service():
  flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
  credentials = flow.run_console()
  return build(API_SERVICE_NAME, API_VERSION, credentials = credentials)

def execute_api_request(client_library_function, **kwargs):
  response = client_library_function(
    **kwargs
  ).execute()

  print(response)

if __name__ == '__main__':
  # Disable OAuthlib's HTTPs verification when running locally.
  # *DO NOT* leave this option enabled when running in production.
  os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'

  youtubeAnalytics = get_service()
  execute_api_request(
      youtubeAnalytics.reports().query,
      ids='channel==MINE',
      startDate='2017-01-01',
      endDate='2017-12-31',
      metrics='estimatedMinutesWatched,views,likes,subscribersGained'
      dimensions='day',
      sort='day'
  )

ลองใช้งาน

ใช้ APIs Explorer เพื่อเรียก API นี้และดูคำขอและการตอบกลับของ API