Cmdlets for YouTube Analytics

Build 22.0.8479

接続の確立

CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でYouTubeAnalytics Cmdlets を使用する例を示します。

インストールおよび接続

PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。

Install-Module YouTubeAnalyticsCmdlets

プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。

Import-Module YouTubeAnalyticsCmdlets;

Connect-YouTubeAnalytics cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。

$conn = Connect-YouTubeAnalytics -ContentOwnerId 'MyContentOwnerId' -ChannelId 'MyChannelId'

YouTube Analytics への接続

認証プロパティを追加する前に、次の接続プロパティを設定してください。

  • ChannelId:YouTube チャンネルのId に設定。指定しない場合、認証されたユーザーのチャンネルのデータが返されます。
  • ContentOwnerId:コンテンツ所有者のレポートを生成する場合に設定。

YouTube Analytics への認証

YouTube Analytics へのすべての接続はOAuth を使用して認証されます。本製品 は、認証にユーザーアカウント、サービスアカウントおよびGCP インスタンスアカウントの使用をサポートします。

ユーザーアカウント

すべてのユーザーアカウントフローで、AuthSchemeOAuth に設定されている必要があります。 デスクトップアプリケーションでは、本製品 の組み込みアプリケーションが最も簡単な認証方法です。

ドライバーが起動すると、ブラウザが開き、YouTube Analytics がログイン情報を要求します。 本製品 は提供された資格情報を使用してYouTube Analytics データにアクセスします。 これらの資格情報は保存され、必要に応じて自動的にリフレッシュされます。 デスクトップアプリケーションでは、本製品 のデフォルトのアプリケーションが最も簡単な認証方法です。

ドライバーが起動すると、ブラウザが開き、YouTube Analytics がログイン情報を要求します。 本製品 は提供された資格情報を使用してYouTube Analytics データにアクセスします。 これらの資格情報は保存され、必要に応じて自動的にリフレッシュされます。

サービスアカウント

サービスアカウントを使用して認証するには、新しいサービスアカウントを作成し、アカウント証明書のコピーを用意する必要があります。

JSON ファイルの場合は、以下のプロパティを設定する必要があります。

  • AuthScheme:必須。OAuthJWT に設定。
  • OAuthJWTCertType:必須。GOOGLEJSON に設定。
  • OAuthJWTCert:必須。Google が提供する.json ファイルへのパスに設定。
  • OAuthJWTSubject:オプション。この値は、サービスアカウントがGSuite ドメインの一部で、委任を有効にする場合にのみ設定します。このプロパティの値は、データにアクセスしたいユーザーのE メールアドレスでなければなりません。

PFX ファイルの場合は、代わりに以下のプロパティを設定する必要があります。

  • AuthScheme:必須。OAuthJWT に設定。
  • OAuthJWTCertType:必須。PFXFILE に設定。
  • OAuthJWTCert:必須。Google が提供する.pfx ファイルへのパスに設定。
  • OAuthJWTCertPassword:オプション。.pfx ファイルのパスワードに設定。Google はPFX 証明書を暗号化するため、ほとんどの場合、これを提供する必要があります。
  • OAuthJWTCertSubject:オプション。複数の証明書を格納するOAuthJWTCertType を使用している場合にのみ設定します。Google によって生成されたPFX 証明書には設定しないでください。
  • OAuthJWTIssuer:必須。サービスアカウントのE メールアドレスに設定。このアドレスには、通常iam.gserviceaccount.com ドメインが含まれます。
  • OAuthJWTSubject:オプション。この値は、サービスアカウントがGSuite ドメインの一部で、委任を有効にする場合にのみ設定します。このプロパティの値は、データにアクセスしたいユーザーのE メールアドレスでなければなりません。

サービスアカウントを持っていない場合は、カスタムAzureAD アプリの作成 の手順に従って作成できます。

GCP インスタンスアカウント

GCP 仮想マシン上で実行している場合は、本製品 は仮想マシンに関連付けられたサービスアカウントを使用して認証できます。 このモードを使用するには、AuthSchemeGCPInstanceAccount に設定します。

データの取得

Select-YouTubeAnalytics cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。

$results = Select-YouTubeAnalytics -Connection $conn -Table "Groups" -Columns @("Snippet_Title, ContentDetails_ItemType") -Where "Id='S'"
Invoke-YouTubeAnalytics cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。

cmdlet 出力のパイプ処理

cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。

Select-YouTubeAnalytics -Connection $conn -Table Groups -Where "Id = 'S'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myGroupsData.csv -NoTypeInformation

Select-YouTubeAnalytics からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。

ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。

 
PS C:\> $conn  = Connect-YouTubeAnalytics -ContentOwnerId 'MyContentOwnerId' -ChannelId 'MyChannelId'
PS C:\> $row = Select-YouTubeAnalytics -Connection $conn -Table "Groups" -Columns (Snippet_Title, ContentDetails_ItemType) -Where "Id = 'S'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
  "Connection":  {

  },
  "Table":  "Groups",
  "Columns":  [

  ],
  "Snippet_Title":  "MySnippet_Title",
  "ContentDetails_ItemType":  "MyContentDetails_ItemType"
} 

データの削除

以下は、抽出条件に合うあらゆるレコードを削除します。

Select-YouTubeAnalytics -Connection $conn -Table Groups -Where "Id = 'S'" | Remove-YouTubeAnalytics

データの変更

cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをYouTube Analytics にロードします。

Import-Csv -Path C:\MyGroupsUpdates.csv | %{
  $record = Select-YouTubeAnalytics -Connection $conn -Table Groups -Where ("Id = `'"+$_.Id+"`'")
  if($record){
    Update-YouTubeAnalytics -Connection $conn -Table Groups -Columns @("Snippet_Title","ContentDetails_ItemType") -Values @($_.Snippet_Title, $_.ContentDetails_ItemType) -Where "Id  = `'$_.Id`'"
  }else{
    Add-YouTubeAnalytics -Connection $conn -Table Groups -Columns @("Snippet_Title","ContentDetails_ItemType") -Values @($_.Snippet_Title, $_.ContentDetails_ItemType)
  }
}

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8479