Cmdlets for Google Ads

Build 24.0.9062

接続の確立

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

インストールおよび接続

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

Install-Module GoogleAdsCmdlets

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

Import-Module GoogleAdsCmdlets;

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

$conn = Connect-GAds -ClientCustomerId "MyClientCustomerId" -DeveloperToken "MyDevToken" 

Google Ads への接続

認証に必要なプロパティを追加する前に、以下の接続プロパティを指定する必要があります。

  • DeveloperToken:アカウントの開発者トークン。
  • ClientCustomerId:Google Ads お客様ID。ClientCustomerId を見つけるには、 Google Ads UI の右上隅にある人物のアイコンをクリック後、ヘルプメニューの下部で確認できます。

複数のアカウントからデータを取得

ドライバーの一般的な使用方法は、複数のお客様ID からデータを取得することです。これは、多数のアカウント / ClientCustomerId を含むGoogle Ads MCC アカウントを持っている場合に有効です。WHERE 句にCustomerId を指定することで、必要なアカウントのデータをクエリして取得することができます。次に例を示します。
SELECT * FROM AdGroupAd WHERE CustomerId='3333333333'
SELECT * FROM AdGroupAd WHERE CustomerId IN ('1111111111', '2222222222')

WHERE 句でCustomerId を指定すると、ドライバーはClientCustomerId 接続プロパティを無視します。

Google Ads への認証

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

ユーザーアカウント(OAuth / OAuthPKCE)

Google Ads は埋め込みOAuth クレデンシャルを提供しており、デスクトップアプリケーション またはヘッドレスマシンからの接続を簡単にします。Web アプリケーションから接続するには、カスタムOAuth アプリケーションの作成 で説明するようにカスタムOAuth アプリケーションを作成する必要があります。

すべての認証フローで、OAuth 経由で接続するにはAuthSchemeOAuth に設定する必要があります。

以下のサブセクションでは、利用可能なOAuth フローでのGoogle Ads への認証について詳しく説明します。 カスタムOAuth アプリケーションの作成についての情報と、すでに埋め込みOAuth 認証情報を持つ認証フローでもカスタムOAuth アプリケーションを作成したほうがよい場合の説明については、カスタムOAuth アプリケーションの作成 を参照してください。

Google Ads で利用可能な接続文字列プロパティの全リストは、Connection を参照してください。

デスクトップアプリケーション

CData は、デスクトップでの認証を簡単にする埋め込みOAuth アプリケーションを提供します。 また、Google Ads コンソールで設定および登録するカスタムOAuth アプリケーションを介してデスクトップから認証することもできます。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

接続する前に、次のプロパティを設定します。

  • InitiateOAuthGETANDREFRESHOAuthAccessToken を自動的に取得およびリフレッシュするために使用します。
  • カスタムOAuth アプリケーションのみ:
    • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
    • CallbackURL:カスタムOAuth アプリケーションの登録時に定義されたリダイレクトURI。

接続すると、本製品 はデフォルトブラウザでGoogle Ads のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。

アクセストークンの期限が切れたときは、本製品 は自動でアクセストークンをリフレッシュします。

ヘッドレスマシン

ヘッドレスマシンに置かれているリソースにログインする必要がある場合は、インターネットブラウザに対応した別の端末で認証する必要があります。 以下のいずれかの方法で行います。

  • オプション1:OAuthVerifier 値を取得します。
  • オプション2:インターネットブラウザに対応したマシンに本製品 をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。

オプション1またはオプション2を実行後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにドライバーを設定します。

オプション1:Verifier code を取得および交換

Verifier code を取得するには、次のようにOAuth Authorization URL で認証する必要があります。

  1. インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得します。

    埋め込みOAuth アプリケーションを使用する場合は、GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャによって返されたURL をブラウザで開きます。

    カスタムOAuth アプリケーションを使用するには、以下のプロパティを設定します。

    • InitiateOAuthOFF
    • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。

  2. GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャは、カスタムOAuth アプリケーションが登録されたときに構築されたCallbackURL を返します。 (カスタムOAuth アプリケーションの作成 を参照してください。)

    このURL をコピーして、新しいブラウザのタブに貼り付けます。

  3. ログインして、本製品 にアクセス許可を与えます。OAuth アプリケーションは、code というパラメータを付加したリダイレクトURI にリダイレクトします。このパラメータの値を控えておきます。OAuthVerifier 接続プロパティを設定するために、後で必要になります。

  4. OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換します。ヘッドレスマシンでは、OAuthAccessToken を取得するには次の接続プロパティを設定します。

    • InitiateOAuthREFRESH
    • OAuthVerifier:控えておいたverifier code(リダイレクトURI のcode パラメータの値)。
    • OAuthSettingsLocation:暗号化されたOAuth 認証値を指定されたファイルに永続化。
    • カスタムOAuth アプリケーションのみ:
      • OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId。
      • OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレット。

  5. 接続をテストしてOAuth 設定ファイルを生成します。

  6. これらのプロパティを再設定すると、接続の準備が整います。

    • InitiateOAuthREFRESH
    • OAuthSettingsLocation:暗号化されたOAuth 認証値を含むファイル。アクセストークンの自動リフレッシュを有効にするには、このファイルが本製品 に読み書きのアクセス許可を与えることを確認してください。
    • カスタムOAuth アプリケーションのみ:
      • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
      • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。

オプション2:OAuth 設定を転送

ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバーとの接続をインストールし、作成する必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。

「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定されたパスに暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。

接続をテストしてOAuth 設定ファイルを生成し、OAuth 設定ファイルをヘッドレスマシンにコピーします。

ヘッドレスマシンでデータに接続するには、次の接続プロパティを設定します。

  • InitiateOAuthREFRESH
  • OAuthSettingsLocation:ブラウザでマシンからコピーしたOAuth 設定ファイルへのパス。アクセストークンの自動リフレッシュを有効にするために、このファイルが本製品 に読み書きのアクセス許可を与えることを確認してください。
  • カスタムOAuth アプリケーションのみ:
    • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。

サービスアカウント(OAuthJWT)

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

JSON ファイルの場合は、以下のプロパティを設定します。

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

PFX ファイルの場合は、以下のプロパティを設定します。

  • AuthScheme:サービスアカウントのE メールアドレスに設定。このアドレスには、通常iam.gserviceaccount.com ドメインが含まれます。
  • OAuthJWTSubject:サービスアカウントはGSuite ドメインの一部であり、委任が有効である必要があります。このプロパティの値は、データにアクセスしたいユーザーのE メールアドレスです。

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

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

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

データの取得

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

$results = Select-GAds -Connection $conn -Table "CampaignPerformance" -Columns @("Clicks, Device") -Where "Device='Mobile devices with full browsers'"
Invoke-GAds cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。

cmdlet 出力のパイプ処理

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

Select-GAds -Connection $conn -Table CampaignPerformance -Where "Device = 'Mobile devices with full browsers'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myCampaignPerformanceData.csv -NoTypeInformation

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

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

 
PS C:\> $conn  = Connect-GAds -ClientCustomerId "MyClientCustomerId" -DeveloperToken "MyDevToken" 
PS C:\> $row = Select-GAds -Connection $conn -Table "CampaignPerformance" -Columns (Clicks, Device) -Where "Device = 'Mobile devices with full browsers'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
  "Connection":  {

  },
  "Table":  "CampaignPerformance",
  "Columns":  [

  ],
  "Clicks":  "MyClicks",
  "Device":  "MyDevice"
} 

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062