YouTube Reporting API - Get Bulk Data Reports
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
מערכת YouTube יוצרת באופן אוטומטי קבוצה של דוחות הכנסות מפרסום שמנוהלים על ידי המערכת עבור בעלי תוכן שיש להם גישה לדוחות המתאימים ב-YouTube Studio. הדוחות האלה נועדו לספק גישה פרוגרמטית לנתונים שזמינים גם בדוחות שאפשר להוריד באופן ידני דרך תפריט הדוחות בסטודיו ליוצרים של YouTube.
הערה: ה-API מספק גישה לקבוצה שונה של דוחות בהשוואה ל-YouTube Studio, אבל הדוחות מכילים נתונים דומים. יכול להיות שבדוחות של API יהיו שדות שונים, וגם שמות שדות שונים מאלה שבדוחות של סטודיו ליוצרים.
מכיוון ש-YouTube יוצרת באופן אוטומטי דוחות שמנוהלים על ידי המערכת, התהליך לאחזור הדוחות האלה שונה מהתהליך לאחזור דוחות של נתונים בכמות גדולה מ-YouTube Analytics שזמינים דרך ה-API.
אחזור דוחות
בשלבים הבאים מוסבר איך לאחזר דוחות שמנוהלים על ידי המערכת באמצעות ה-API.
שלב 1: אחזור פרטי הרשאה
כל הבקשות ל-YouTube Reporting API חייבות להיות מאושרות. במדריך ההרשאות מוסבר איך להשתמש בפרוטוקול OAuth 2.0 כדי לאחזר אסימוני הרשאה.
בקשות ל-YouTube Reporting API משתמשות בהיקפי ההרשאות הבאים:
טווחים |
https://www.googleapis.com/auth/yt-analytics.readonly |
עיון בדוחות YouTube Analytics עבור התוכן שלכם ב-YouTube. ההיקף הזה מספק גישה למדדים של פעילות המשתמשים, כמו מספר הצפיות ומספר הדירוגים. |
https://www.googleapis.com/auth/yt-analytics-monetary.readonly |
עיון בדוחות כספיים של YouTube Analytics לגבי התוכן שלכם ב-YouTube. ההיקף הזה מספק גישה למדדי פעילות המשתמשים ולמדדי ההכנסה המשוערת וביצועי המודעות. |
שלב 2: מאחזרים את מזהה המשרה של הדוח הרצוי
קוראים לשיטה jobs.list
כדי לאחזר רשימה של משימות שמנוהלות על ידי המערכת. מגדירים את הפרמטר includeSystemManaged
לערך true
.
המאפיין reportTypeId
בכל משאב Job
שמוחזר מזהה את סוג הדוח שמנוהל על ידי המערכת שמשויך לאותה משימה. בשלב הבא, האפליקציה שלכם תצטרך את ערך המאפיין id
מאותו מקור.
במסמך Reports מפורטים הדוחות הזמינים, מזהי סוגי הדוחות והשדות שהם מכילים. אפשר גם להשתמש ב-method reportTypes.list
כדי לאחזר רשימה של סוגי דוחות נתמכים.
שלב 3: אחזור כתובת ה-URL להורדה של הדוח
מפעילים את השיטה jobs.reports.list
כדי לאחזר רשימה של דוחות שנוצרו עבור העבודה. בבקשה, מגדירים את הפרמטר jobId
למזהה המשימה של הדוח שרוצים לאחזר.
אפשר לסנן את רשימת הדוחות לפי אחד מהפרמטרים הבאים או לפי כולם:
-
משתמשים בפרמטר createdAfter
כדי לציין שה-API יחזיר רק דוחות שנוצרו אחרי זמן מסוים. אפשר להשתמש בפרמטר הזה כדי לוודא שממשק ה-API מחזיר רק דוחות שעוד לא עיבדתם.
-
משתמשים בפרמטר startTimeBefore
כדי לציין שתגובת ה-API צריכה להכיל דוחות רק אם הנתונים המוקדמים ביותר בדוח הם לפני התאריך שצוין. הפרמטר createdAfter
מתייחס למועד שבו הדוח נוצר, אבל התאריך הזה מתייחס לנתונים שבדוח.
-
משתמשים בפרמטר startTimeAtOrAfter
כדי לציין שתגובת ה-API צריכה להכיל דוחות רק אם הנתונים המוקדמים ביותר בדוח הם בתאריך שצוין או אחריו. בדומה לפרמטר startTimeBefore
, ערך הפרמטר הזה תואם לנתונים בדוח ולא לזמן שבו הדוח נוצר.
תגובת ה-API מכילה רשימה של משאבי Report
עבור העבודה הזו. כל משאב מתייחס לדוח שמכיל נתונים לתקופה ייחודית.
- המאפיינים
startTime
ו-endTime
של המשאב מזהים את פרק הזמן שהנתונים בדוח מתייחסים אליו.
- המאפיין
downloadUrl
של המשאב מזהה את כתובת ה-URL שממנה אפשר לאחזר את הדוח.
- המאפיין
createTime
של המשאב מציין את התאריך והשעה שבהם נוצר הדוח. האפליקציה צריכה לשמור את הערך הזה ולהשתמש בו כדי לקבוע אם חלו שינויים בדוחות שהורדו בעבר.
שלב 4: הורדת הדוח
שולחים בקשת HTTP GET ל-downloadUrl
שהתקבל בשלב 4 כדי לאחזר את הדוח.
דוחות עיבוד
שיטות מומלצות
אפליקציות שמשתמשות ב-YouTube Reporting API צריכות תמיד לפעול בהתאם לשיטות הבאות:
-
אפשר להשתמש בשורת הכותרת של הדוח כדי לקבוע את הסדר של העמודות בדוח. לדוגמה, אל תניחו שהמדד views יהיה המדד הראשון שיוחזר בדוח רק בגלל שהוא המדד הראשון שמופיע בתיאור הדוח. במקום זאת, אפשר להשתמש בשורת הכותרת של הדוח כדי לזהות באיזו עמודה נמצאים הנתונים האלה.
-
כדאי לשמור תיעוד של הדוחות שהורדתם כדי להימנע מעיבוד חוזר של אותו דוח. בהמשך מפורטות כמה דרכים לעשות זאת.
-
כשקוראים לשיטה reports.list
, משתמשים בפרמטר createdAfter כדי לאחזר רק דוחות שנוצרו אחרי תאריך מסוים. (בפעם הראשונה שמאחזרים דוחות, לא מציינים את הפרמטר createdAfter
).
בכל פעם שמאחזרים דוחות ומעבדים אותם בהצלחה, צריך לשמור את חותמת הזמן שמתאימה לתאריך ולשעה שבה נוצר הדוח הכי חדש מבין הדוחות האלה. לאחר מכן, מעדכנים את ערך הפרמטר createdAfter
בכל קריאה עוקבת לשיטה reports.list
כדי לוודא שמאחזרים רק דוחות חדשים, כולל דוחות חדשים עם נתונים שנוספו בדיעבד, בכל פעם שמבצעים קריאה ל-API.
כאמצעי הגנה, לפני שליפת דוח, כדאי גם לבדוק שמזהה הדוח (ID) לא מופיע כבר במסד הנתונים.
-
שומרים את המזהה של כל דוח שהורדתם ועיבדתם. אפשר גם לשמור מידע נוסף כמו התאריך והשעה שבהם נוצר כל דוח, או startTime
ו-endTime
של הדוח, שביחד מציינים את התקופה שעליה הדוח מכיל נתונים. בדוחות שמאחזרים נתונים בכמות גדולה עבור YouTube Analytics, סביר להניח שיהיו הרבה דוחות כי כל דוח מכיל נתונים לתקופה של 24 שעות. יהיו פחות דוחות לגבי משימות שמנוהלות על ידי המערכת ומתייחסות לתקופות זמן ארוכות יותר.
אפשר להשתמש במזהה הדוח כדי לזהות דוחות שעדיין צריך להוריד ולייבא. עם זאת, אם לשני דוחות חדשים יש את אותם ערכי מאפיינים של startTime
ו-endTime
, צריך לייבא רק את הדוח עם הערך החדש יותר של createTime
.
מאפייני הדוח
דוחות API הם קבצים עם ערכים מופרדים בפסיקים (CSV) בפורמט עם מספור גרסאות .csv
, עם המאפיינים הבאים:
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-08-21 (שעון UTC).
[null,null,["עדכון אחרון: 2025-08-21 (שעון UTC)."],[[["\u003cp\u003eYouTube's Reporting API provides access to system-managed ad revenue reports, which differ from Creator Studio reports in terms of fields and naming, yet contain similar data.\u003c/p\u003e\n"],["\u003cp\u003eRetrieving these reports involves four steps: getting authorization credentials, retrieving the job ID, getting the report's download URL, and downloading the report.\u003c/p\u003e\n"],["\u003cp\u003eThe API requires specific authorization scopes, either \u003ccode\u003ehttps://www.googleapis.com/auth/yt-analytics.readonly\u003c/code\u003e for general user activity metrics or \u003ccode\u003ehttps://www.googleapis.com/auth/yt-analytics-monetary.readonly\u003c/code\u003e for monetary and ad performance metrics.\u003c/p\u003e\n"],["\u003cp\u003eBest practices for using the API include using the header row to identify column ordering and keeping a record of downloaded reports to avoid reprocessing the same data, while also checking for updated reports.\u003c/p\u003e\n"],["\u003cp\u003eEach report is a \u003ccode\u003e.csv\u003c/code\u003e file containing data for a specific period, from 12:00 a.m. to 11:59 p.m. Pacific Time, and the data within the reports is not sorted.\u003c/p\u003e\n"]]],["YouTube provides system-managed ad revenue reports accessible via the Reporting API. To retrieve these reports, first, obtain authorization credentials using OAuth 2.0. Next, retrieve the job ID for the desired report type by calling `jobs.list` with `includeSystemManaged` set to `true`. Then, call `jobs.reports.list`, providing the job ID, to get the report's download URL, which may be filtered by creation or start times. Finally, use an HTTP GET request to download the report. Remember to store downloaded report details to avoid reprocessing.\n"],null,["# YouTube Reporting API - Get Bulk Data Reports\n\nYouTube automatically generates a set of system-managed ad revenue reports for content owners that have access to the corresponding reports in [Creator Studio](http://studio.youtube.com/). These reports are designed to provide programmatic access to data that is also available in manually downloadable reports accessible in the [Reports menu](https://support.google.com/youtube/answer/7648605) of the YouTube Creator Studio.\n\n**Note:** The API provides access to a different set of reports than Creator Studio, though the reports contain similar data. API reports might have different fields and also use different field names than Creator Studio reports.\n\nSince YouTube automatically generates system-managed reports, the process for retrieving these reports is different than for the YouTube Analytics bulk data reports available via the API.\n\nRetrieving reports\n------------------\n\nThe following steps explain how to retrieve system-managed reports via the API.\n\n### Step 1: Retrieve authorization credentials\n\nAll YouTube Reporting API requests must be authorized. The [Authorization guide](/youtube/reporting/guides/authorization) explains how to use the OAuth 2.0 protocol to retrieve authorization tokens.\n\nYouTube Reporting API requests use the following authorization scopes:\n\n| Scopes ||\n|----------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| https://www.googleapis.com/auth/yt-analytics.readonly | View YouTube Analytics reports for your YouTube content. This scope provides access to user activity metrics, like view counts and rating counts. |\n| https://www.googleapis.com/auth/yt-analytics-monetary.readonly | View YouTube Analytics monetary reports for your YouTube content. This scope provides access to user activity metrics and to estimated revenue and ad performance metrics. |\n\n### Step 2: Retrieve the job ID for the desired report\n\nCall the `jobs.list` method to retrieve a list of system-managed jobs. Set the [includeSystemManaged](/youtube/reporting/v1/reference/rest/v1/jobs/list#includeSystemManaged) parameter to `true`.\n\nThe [reportTypeId](/youtube/reporting/v1/reference/rest/v1/jobs#reportTypeId) property in each returned `Job` resource identifies the type of system-managed report associated with that job. Your application needs the [id](/youtube/reporting/v1/reference/rest/v1/jobs#id) property value from the same resource in the following step.\n\nThe [Reports](/youtube/reporting/v1/reports/system_managed/reports) document lists available reports, their report type IDs, and the fields they contain. You can also use the [reportTypes.list](/youtube/reporting/v1/reference/rest/v1/reportTypes/list) method to retrieve a list of supported report types.\n\n### Step 3: Retrieve the report's download URL\n\nCall the `jobs.reports.list` method to retrieve a list of reports created for the job. In the request, set the [jobId](/youtube/reporting/v1/reference/rest/v1/jobs.reports/list#jobId) parameter to the job ID of the report that you want to retrieve.\n\nYou can filter the list of reports using any or all of the following parameters:\n\n- Use the [createdAfter](/youtube/reporting/v1/reference/rest/v1/jobs.reports/list#createdAfter) parameter to indicate that the API should only return reports created after a specified time. This parameter can be used to ensure that the API only returns reports that you have not already processed.\n\n- Use the [startTimeBefore](/youtube/reporting/v1/reference/rest/v1/jobs.reports/list#startTimeBefore) parameter to indicate that the API response should only contain reports if the earliest data in the report is before the specified date. Whereas the `createdAfter` parameter pertains to the time the report was created, this date pertains to the data in the report.\n\n- Use the [startTimeAtOrAfter](/youtube/reporting/v1/reference/rest/v1/jobs.reports/list#startTimeAtOrAfter) parameter to indicate that the API response should only contain reports if the earliest data in the report is on or after the specified date. Like the `startTimeBefore` parameter, this parameter value corresponds to the data in the report and not the time the report was created.\n\nThe API response contains a list of `Report` resources for that job. Each resource refers to a report that contains data for a unique period.\n\n- The resource's [startTime](/youtube/reporting/v1/reference/rest/v1/jobs.reports#startTime) and [endTime](/youtube/reporting/v1/reference/rest/v1/jobs.reports#endTime) properties identify the time period that the report's data covers.\n- The resource's [downloadUrl](/youtube/reporting/v1/reference/rest/v1/jobs.reports#downloadUrl) property identifies the URL from which the report can be fetched.\n- The resource's [createTime](/youtube/reporting/v1/reference/rest/v1/jobs.reports#createTime) property specifies the date and time when the report was generated. Your application should store this value and use it to determine whether previously downloaded reports have changed.\n\n### Step 4: Download the report\n\nSend an HTTP GET request to the `downloadUrl` obtained in step 4 to retrieve the report.\n\nProcessing reports\n------------------\n\n### Best practices\n\nApplications that use the YouTube Reporting API should *always* follow these practices:\n\n- Use a report's header row to determine the ordering of the report's columns. For example, do not assume that [views](/youtube/reporting/v1/reports/metrics#views) will be the first metric returned in a report just because it is the first metric listed in a report description. Instead, use the report's header row to determine which column contains that data.\n\n- Keep a record of the reports you have downloaded to avoid repeatedly processing the same report. The following list suggests a couple of ways to do that.\n\n - When calling the [reports.list](/youtube/reporting/v1/reference/rest/v1/jobs.reports/list) method, use the [createdAfter](/youtube/reporting/v1/reference/rest/v1/jobs.reports/list#createdAfter) parameter to only retrieve reports created after a certain date. (Omit the `createdAfter` parameter the first time you retrieve reports.)\n\n Each time you retrieve and successfully process reports, store the timestamp corresponding to the [date and time](/youtube/reporting/v1/reference/rest/v1/jobs.reports#createTime) when the newest of those reports was created. Then, update the `createdAfter` parameter value on each successive call to the [reports.list](/youtube/reporting/v1/reference/rest/v1/jobs.reports/list) method to ensure that you are only retrieving new reports, including new reports with backfilled data, each time you call the API.\n\n As a safeguard, before retrieving a report, also check to ensure that the report's [ID](/youtube/reporting/v1/reference/rest/v1/jobs.reports#id) is not already listed in your database.\n - Store the [ID](/youtube/reporting/v1/reference/rest/v1/jobs.reports#id) for each report that you have downloaded and processed. You can also store additional information like the [date and time](/youtube/reporting/v1/reference/rest/v1/jobs.reports#createTime) when each report was generated or the report's [startTime](/youtube/reporting/v1/reference/rest/v1/jobs.reports#startTime) and [endTime](/youtube/reporting/v1/reference/rest/v1/jobs.reports#endTime), which together identify the period for which the report contains data. For reports that retrieve bulk data for YouTube Analytics, each job will likely have many reports since each report contains data for a 24-hour period. System-managed jobs that cover longer time periods will have fewer reports.\n\n Use the report ID to identify reports that you still need to download and import. However, if two new reports have the same [startTime](/youtube/reporting/v1/reference/rest/v1/jobs.reports#startTime) and [endTime](/youtube/reporting/v1/reference/rest/v1/jobs.reports#endTime) property values, only import the report with the newer [createTime](/youtube/reporting/v1/reference/rest/v1/jobs.reports#createTime) value.\n\n### Report characteristics\n\nAPI reports are versioned `.csv` (comma-separated values) files that have the following characteristics:\n\n- Each report contains data for a unique period lasting from 12:00 a.m. Pacific time on the report's start date through 11:59 p.m. Pacific time on the report's end date.\n\n- Report data is not sorted."]]