Skip to content

Instantly share code, notes, and snippets.

@aik0aaac
Last active June 1, 2023 16:59
Show Gist options
  • Save aik0aaac/58ea63cde3c88844110c9423dde6b344 to your computer and use it in GitHub Desktop.
Save aik0aaac/58ea63cde3c88844110c9423dde6b344 to your computer and use it in GitHub Desktop.
Youtube Analytics APIで定義されている全ての`dimension`内容。(TypeScript)
/**
* Youtube Analytics API > `query`内で指定可能なディメンション一覧。
* 公式Docs: https://developers.google.com/youtube/analytics/dimensions
*/
export const DimensionMaster = {
core: {
/**
* Youtubeの動画ID。
*/
video: "video",
/**
* Youtubeの再生リストID。
*/
playlist: "playlist",
/**
* YoutubeチャンネルID。
*/
channel: "channel",
},
geographicAreas: {
/**
* 国コード。
* 指定方法は[ISO 3166-1 alpha-2](https://www.iso.org/iso-3166-country-codes.html)形式。
* 例: `JP`/`US`/`CN`/`KR`
* Youtube側で国を特定できない場合:`ZZ`の値を指す。
*/
country: "country",
/**
* アメリカの州or準州orコロンビア特別区。
* 指定方法は[ISO 3166-2](https://www.google.com/search?q=ISO+3166-2+US)形式。
* 例: `US-MI`/`US-TX`/`US-ZZ`
*/
province: "province",
/**
* 都市。
* 2022/01/01以降のデータで使用可能。
*/
city: "city",
},
timePeriods: {
/**
* 日単位での分析。
* レスポンスでは値が`YYYY-MM-DD`形式で返却される。
*/
day: "day",
/**
* 月別での分析。
* レスポンスでは値が`YYYY-MM`形式で返却される。
* ※当ディメンションを使用する場合は、リクエストの`startDate`と`endDate`を月の最初日にしないといけない。
*/
month: "month",
},
playbackLocations: {
/**
* 動画再生が行われた場所の種別。
* 以下の値をサポート:
* - `BROWSE`: Youtubeホームページorホーム画面、ユーザーの登録フィード、別のYoutube閲覧サービスで再生
* - `CHANNEL`: チャンネルページで再生
* - `EMBEDDED`: 埋め込みタグ動画で再生
* - `EXTERNAL_APP`: 埋め込みタグ以外の3rdPartyアプリケーションで再生(Android Player API を使用するアプリもこれに含まれる)
* - `SEARCH`: Youtune検索ページで再生
* - `WATCH`: 動画詳細ページor Youtube公式アプリで再生
* - `MOBILE`: YoutubeモバイルWebサイトor承認されたYouTube APIクライアントでの再生
* - `YT_OTHER`: その他の経路から再生
*/
insightPlaybackLocationType: "insightPlaybackLocationType",
/**
* 埋め込みタグ動画(`insightPlaybackLocationType==EMBEDDED`)の詳細。
*/
insightPlaybackLocationDetail: "insightPlaybackLocationDetail",
},
playbackDetails: {
/**
* 対象のコンテンツ種別。
* 以下の値をサポート:
* - `LIVE_STREAM`: ライブ配信
* - `SHORTS`: ショート動画
* - `STORY`: ストーリー
* - `VIDEO_ON_DEMAND`: 上記どれにも当てはまらない動画
* - `UNSPECIFIED`: コンテンツ種別特定不可
*/
creatorContentType: "creatorContentType",
/**
* 対象アクティビティがライブ配信中のアクティビティか、ライブ配信アーカイブでのアクティビティか。
* 以下の値をサポート:
* - `LIVE`: ライブ配信中
* - `ON_DEMAND`: ライブ配信アーカイブ
*/
liveOrOnDemand: "liveOrOnDemand",
/**
* 対象アクティビティが発生した時点で、アクティビティ発生者がチャンネル登録者か非登録者か。
* 以下の値をサポート:
* - `SUBSCRIBED`: チャンネル登録者
* - `UNSUBSCRIBED`: チャンネル非登録者
*/
subscribedStatus: "subscribedStatus",
/**
* アクティビティが発生したサービス対象。
* 以下の値をサポート:
* - `GAMING`: Youtube Gaming
* - `KIDS`: Youtube Kids
* - `MUSIC`: 2021/03/01以降のYoutube Music
* - `CORE`: 上記以外(2021/03/01以前のYoutubeMusicのアクティビティもここに入る)
* - `UNKNOWN`: 2015/07/18以前に発生
*/
youtubeProduct: "youtubeProduct",
},
trafficSource: {
/**
* 動画へのトラフィック(視聴者のリーチ元、リファラー)情報。
* - `ADVERTISING`: 広告
* - `ANNOTATION`: 別動画のアノテーション
* - `CAMPAIGN_CARD`: コンテンツ所有者レポートのみ使用可、宣伝用動画から
* - `END_SCREEN`: 別動画の終了時画面
* - `EXT_URL`: 他サイトから
* - `HASHTAGS`: VODハッシュタグor Youtubeハッシュタグ
* - `LIVE_REDIRECT`: ライブリダイレクト
* - `NO_LINK_EMBEDDED`: 別サイトの埋め込み動画から
* - `NO_LINK_OTHER`: リファラー特定不可、動画への直アクセスやモバイルアプリからのアクセスを含む
* - `NOTIFICATION`: メールレコメンドor通知
* - `PLAYLIST`: 再生リスト連続再生
* - `PRODUCT_PAGE`: 製品ページから
* - `PROMOTED`: 無料プロモーション
* - `RELATED_VIDEO`: 関連動画一覧
* - `SHORTS`: ショート動画の下スワイプ
* - `SOUND_PAGE`: ショートサウンド
* - `SUBSCRIBER`: Youtubeホームorサブスクリプションチャンネル動画一覧欄
* - `YT_CHANNEL`: チャンネルページ
* - `YT_OTHER_PAGE`: 検索一覧or関連動画一覧「以外の」動画一覧
* - `YT_PLAYLIST_PAGE`: 再生リスト初回or再生リストページ
* - `YT_SEARCH`: 検索一覧
* - `VIDEO_REMIXES`: ショート動画のリミックス動画一覧
*/
insightTrafficSourceType: "insightTrafficSourceType",
/**
* `insightTrafficSourceType`の詳細情報。
* `insightTrafficSourceType`の値によって、指定可能な値が異なる。
* 指定可能な`insightTrafficSourceType`の値と、`insightTrafficSourceType`内で指定可能な値一覧:
* - `EXT_URL`: 動画紹介元の他サイトURLを指定可能
* - `HASHTAGS`: ハッシュタグ内容
* - `RELATED_VIDEO`: 関連動画のリンク元動画
* - `YT_CHANNEL`: 動画再生元のチャンネルページ
* - `YT_OTHER_PAGE`: 動画再生元のYoutube内ページ
* - `YT_SEARCH`: 検索から来た場合、どんなワードで検索されてたか
* 以下は指定値の紹介を省略(訳しづらいものばかり…)
* - `ADVERTISING`
* - `CAMPAIGN_CARD`
* - `NOTIFICATION`
* - `SOUND_PAGE`
* - `SUBSCRIBER`
* - `VIDEO_REMIXES`
*/
insightTrafficSourceDetail: "insightTrafficSourceDetail",
},
device: {
/**
* 視聴者のデバイス種別。
* 下記の値が存在:
* - `DESKTOP`
* - `GAME_CONSOLE`
* - `MOBILE`
* - `TABLET`
* - `TV`
* - `UNKNOWN_PLATFORM`
*/
deviceType: "deviceType",
/**
* 視聴者の使用OS。
* 指定できる値の種類が多いため省略、詳しくは公式Docs参照。
*/
operatingSystem: "operatingSystem",
},
gender: {
/**
* 視聴者(ログインユーザーのみ)の年齢。
* 下記の値が存在:
* - `age13-17`
* - `age18-24`
* - `age25-34`
* - `age35-44`
* - `age45-54`
* - `age55-65`
* - `age65-`
*/
ageGroup: "ageGroup",
/**
* 視聴者(ログインユーザーのみ)の性別。
* 下記の値が存在:
* - `female`
* - `male`
* - `user_specified`
*/
gender: "gender",
},
engagementAndContentSharing: {
/**
* 動画の「シェア」時に選択されたサービス。
* 指定できる値の種類が多いため省略、詳しくは公式Docs参照。
*/
sharingService: "sharingService",
},
audienceRetention: {
/**
* 動画の再生時間タイミング。
* `0.01`〜`1`を指定可能。
* 例: `0.5`=動画の半分のタイミングを示す/`1`=動画の終了時間のタイミングを示す
*/
elapsedVideoTimeRatio: "elapsedVideoTimeRatio",
},
adPerformance: {
/**
* 広告の種別。
* 指定できる値の種類が多いため省略、詳しくは公式Docs参照。
*/
adType: "adType",
},
/**
* コンテンツ所有者のみサポートされる値。
*/
onlyContentOwner: {
/**
* 申し立てが行われたコンテンツの指標のみを指定可能。
* `claimed`の値のみサポート。
*/
claimedStatus: "claimedStatus",
/**
* コンテンツ所有者自身がアップロードしたか、第三者がアップロードしたか。
* 以下の値をサポート:
* - `self`
* - `thirdParty`
*/
uploadType: "uploadType",
},
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment