YouTube Analytics API から分析データを取得するプロジェクトに取り組んでいます (v1、v1beta1 で同じ結果が得られます)。バッチ呼び出しで行が返されなくなり始め、当然のことながら、自分の側でエラーが発生したのではないかと疑っていました。
Google API Explorer で自分のプログラムからクエリの 1 つを再作成し、どこが間違っているのかを確認しました。そして、それが物事が複雑になったところです。
注: 私は OAuth を使用しており、すべての場所で同じユーザーの OAuth 認証を使用してプログラムと API エクスプローラーを実行しています。Authorization Bearer [token]
明らかな理由により、この記事の詳細は省略しました。
Google API Explorer クエリ:
GET https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-05-31&metrics=views%2CestimatedMinutesWatched&dimensions=insightTrafficSourceType&filters=video%3D%3DEeEHdFmKrGo%3Bcountry%3D%3DUS&fields=rows&key={YOUR_API_KEY}
Google API Explorer の結果:
200 HTTP/2.0 200
- Show headers -
{
}
郵便配達員のクエリ:
GET https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-05-31&metrics=views%2CestimatedMinutesWatched&dimensions=insightTrafficSourceType&filters=video%3D%3DEeEHdFmKrGo%3Bcountry%3D%3DUS&fields=rows
郵便配達員の結果:
{
"rows": [
[
"YT_PLAYLIST_PAGE",
83,
153
],
[
"YT_CHANNEL",
21,
38
],
[
"PLAYLIST",
103,
193
],
[
"SUBSCRIBER",
41,
63
],
[
"NOTIFICATION",
16,
5
],
[
"ADVERTISING",
1954,
2973
],
[
"RELATED_VIDEO",
179,
294
],
[
"YT_OTHER_PAGE",
16,
20
],
[
"EXT_URL",
98,
189
],
[
"NO_LINK_OTHER",
603,
23
],
[
"YT_SEARCH",
80,
130
]
]
}
というわけで、データは入手可能です。API Explorer に表示されないのはなぜですか? API Explorer は、私のプログラムの動作と一致します: 行が返されません。
はい、fields
値を省略すると、列ヘッダーが表示されます。
200 HTTP/2.0 200
- Show headers -
{
"kind": "youtubeAnalytics#resultTable",
"columnHeaders": [
{
"name": "insightTrafficSourceType",
"columnType": "DIMENSION",
"dataType": "STRING"
},
{
"name": "views",
"columnType": "METRIC",
"dataType": "INTEGER"
},
{
"name": "estimatedMinutesWatched",
"columnType": "METRIC",
"dataType": "INTEGER"
}
]
}
他の同様の質問:
- Youtube Analytics API で ROWS が返されませんか?
- YouTube アナリティクス API が特定の動画のクエリに対して ROWS を返さない
- YouTube アナリティクス API は人口統計クエリの行を返しませんが、視聴回数は返します
- YouTube アナリティクス API チャネル: レスポンスに行パラメータがありません
これらの質問のいくつかのリードを確認しました。
- クエリのデータを取得しています...バッチでもAPIエクスプローラーでもありません。
- #1と同じですね。日付範囲を変更または延長すると、API Explorer は依然として行を返さず、Postman のクエリは行を表示します。
- #4 の調査を参照
- API エクスプローラーと私のプログラムに使用されているのと同じユーザーとして、YouTube インターフェイスでレポートを取得し、データを確認できます。
このデータは、Postman のクエリから取得したものと一致します。これは、API Explorer とバッチ リクエストを介して同じデータを使用できる必要があることを意味しますが、それらは明らかに異なります。
何か不足していますか?API Explorer からの応答で行を受け取るべきではありませんか? GET
同様に、バッチ応答には、 Postman 経由で表示されている直接要求と同じ内容が含まれているべきではありませんか?
さらなる調査のための洞察や提案をいただければ幸いです。ここまでお付き合いいただきありがとうございました。
ギャレット