次の方法で共有


Azure Data Factory または Azure Synapse Analytics を使用して Google Ads からデータをコピーする

適用対象: Azure Data Factory Azure Synapse Analytics

ヒント

企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。

この記事では、Azure Data Factory および Azure Synapse Analytics パイプラインで Copy アクティビティを使用して、Google Ads からデータをコピーする方法について説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要に関する記事に基づいています。

重要

2024 年 2 月 18 日までに Google Ads ドライバーのバージョンをアップグレードしてください。 そうでない場合は、レガシ ドライバが廃止されたためにエラーが発生して接続が失敗するようになります。

サポートされる機能

この Google Ads コネクタは、次の機能でサポートされます。

サポートされる機能 IR
Copy アクティビティ (ソース/-) ① ②
Lookup アクティビティ ① ②

① Azure 統合ランタイム ② セルフホステッド統合ランタイム

ソースおよびシンクとしてサポートされているデータ ストアの一覧については、「サポートされているデータ ストア」の表を参照してください。

このサービスでは接続を有効にする組み込みのドライバーが提供されるので、このコネクタを使用してドライバーを手動でインストールする必要はありません。

作業の開始

パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。

UI を使用して Google Ads のリンク サービスを作成する

次の手順を使用して、Azure portal UI で Google Ads のリンク サービスを作成します。

  1. Azure Data Factory または Synapse ワークスペースの Manage タブに移動して、[Linked Services](リンク サービス)、[New](新規) を順にクリックします。

  2. Google Ads を検索し、Google Ads コネクタを選択します。

    Google 広告コネクタのスクリーンショット。

  3. サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。

    Google 広告のリンク サービスの構成を示すスクリーンショット。

コネクタの構成の詳細

次のセクションでは、Google Ads コネクタに固有の Data Factory エンティティを定義するために使用されるプロパティについて詳しく説明します。

リンクされたサービス プロパティ

Google Ads のリンクされたサービスには、次のプロパティがサポートされます。

プロパティ 内容 必須
type type プロパティは、次のように設定する必要があります:GoogleAdWords はい
googleAdsApiVersion 推奨されるドライバー バージョンを選んだときの Google Ads API のバージョン。 API のバージョン情報については、こちらの記事を参照してください。 はい
clientCustomerID レポート データをフェッチする対象の、Ads アカウントのクライアント顧客 ID。 はい
loginCustomerID 特定の顧客のレポート データのフェッチに使用する、Google Ads マネージャー アカウントの顧客 ID。 いいえ
developerToken Ads API へのアクセスを許可するために使用する、マネージャー アカウントに関連付けられている開発者トークン。 このフィールドを SecureString としてマークして ADF に安全に格納するか、Azure Key Vault にパスワードを格納し、データ コピーの実行時に Copy アクティビティでそこからプルするかを選択できます。詳しくは、Key Vault への資格情報の格納に関するページをご覧ください。 はい
authenticationType 認証に使用される OAuth 2.0 認証メカニズム。
使用可能な値: ServiceAuthenticationUserAuthentication
ServiceAuthentication はセルフホステッド IR のみで使用できます。
はい
UserAuthentication の場合:
refreshToken UserAuthentication で Ads へのアクセスを承認するために Google から取得した更新トークン。 このフィールドを SecureString としてマークして ADF に安全に格納するか、Azure Key Vault にパスワードを格納し、データ コピーの実行時に Copy アクティビティでそこからプルするかを選択できます。詳しくは、Key Vault への資格情報の格納に関するページをご覧ください。 いいえ
clientId 更新トークンを取得するために使用される Google アプリケーションのクライアント ID。 このフィールドを SecureString としてマークして ADF に安全に格納するか、Azure Key Vault にパスワードを格納し、データ コピーの実行時に Copy アクティビティでそこからプルするかを選択できます。詳しくは、Key Vault への資格情報の格納に関するページをご覧ください。 いいえ
clientSecret 更新トークンを取得するために使用される google アプリケーションのクライアント シークレット。 このフィールドを SecureString としてマークして ADF に安全に格納するか、Azure Key Vault にパスワードを格納し、データ コピーの実行時に Copy アクティビティでそこからプルするかを選択できます。詳しくは、Key Vault への資格情報の格納に関するページをご覧ください。 いいえ
ServiceAuthentication の場合:
メール ServiceAuthentication で使用されるサービス アカウントの電子メール ID。これはセルフホステッド IR のみで使用できます。 いいえ
privateKey 推奨ドライバー バージョンの ServiceAuthentication で使用されるサービス プライベート キーは、セルフホステッド IR のみで使用できます。 このフィールドを SecureString としてマークして ADF に安全に格納するか、Azure Key Vault にパスワードを格納し、データ コピーの実行時に Copy アクティビティでそこからプルするかを選択できます。詳しくは、Key Vault への資格情報の格納に関するページをご覧ください。 いいえ
レガシ ドライバーのバージョンを使用する ServiceAuthentication の場合:
メール ServiceAuthentication で使用されるサービス アカウントの電子メール ID。これはセルフホステッド IR のみで使用できます。 いいえ
keyFilePath サービス アカウントのメール アドレスを認証するために使用される .p12 または .json キー ファイルへの完全なパス。これはセルフホステッド IR でのみ使用できます。 いいえ
trustedCertPath TLS 経由で接続するときにサーバーを検証するための信頼された CA 証明書を含む .pem ファイルの完全なパス。 このプロパティは、セルフホステッド IR 上で TLS を使用している場合にのみ設定できます。 既定値は、IR でインストールされる cacerts.pem ファイルです。 いいえ
useSystemTrustStore システムの信頼ストアと指定した PEM ファイルのどちらの CA 証明書を使用するかを指定します。 既定値は false です。 いいえ

例:

{
    "name": "GoogleAdsLinkedService",
    "properties": {
        "type": "GoogleAdWords",
        "typeProperties": {
            "clientCustomerID": "<clientCustomerID>",
            "loginCustomerID": "<loginCustomerID>",
            "developerToken": {
                "type": "SecureString",
                "value": "<developerToken>"
            },
            "authenticationType": "UserAuthentication",
            "refreshToken": {
                "type": "SecureString",
                "value": "<refreshToken>"
            },
            "clientId": {
                "type": "SecureString",
                "value": "<clientId>"
            },
            "clientSecret": {
                "type": "SecureString",
                "value": "<clientSecret>"
            },
            "googleAdsApiVersion": "v14"
        }
    }
}

データセットのプロパティ

データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、Google Ads データセットでサポートされるプロパティの一覧を示します。

Google Ads からデータをコピーするには、データセットの type プロパティを GoogleAdWordsObject に設定します。 次のプロパティがサポートされています。

プロパティ 内容 必須
type データセットの type プロパティは、次のように設定する必要があります:GoogleAdWordsObject はい
tableName テーブルの名前。 レガシ ドライバーのバージョンを使用する場合は、このプロパティを指定してください。 いいえ (アクティビティ ソースの "query" が指定されている場合)

{
    "name": "GoogleAdsDataset",
    "properties": {
        "type": "GoogleAdWordsObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<GoogleAds linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

コピー アクティビティのプロパティ

アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、Google Ads ソースでサポートされるプロパティの一覧を示します。

Google Ads からデータをコピーするには、コピー アクティビティでのソースの種類を GoogleAdWordsSource に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。

プロパティ 内容 必須
type コピー アクティビティのソースの type プロパティは、次のように設定する必要があります:GoogleAdWordsSource はい
クエリ GAQL クエリを使用してデータを読み取ります。 (例: SELECT campaign.id FROM campaign)。 いいえ (データセットの "tableName" が指定されている場合)

例:

"activities":[
    {
        "name": "CopyFromGoogleAds",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<GoogleAds input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "GoogleAdWordsSource",
                "query": "SELECT campaign.id FROM campaign"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Lookup アクティビティのプロパティ

プロパティの詳細については、Lookup アクティビティに関するページを参照してください。

Google Ads ドライバーのバージョンをアップグレードする

Google Ads ドライバーのバージョンをアップグレードするには、リンク サービスを更新し、SQL から Google Ads Query Language (GAQL) への移行方法を学ぶ必要があります。

リンク サービス構成を更新する

[リンク サービスの編集] ページで、[ドライバーのバージョン][推奨] を選択し、[リンクされたサービスのプロパティ] を参照してリンク サービスを構成します。

SQL から GAQL への移行

SQL から GAQL への移行時に、クエリ ステートメントとフィールド名を変換します。

クエリ ステートメント

レガシ Google Ads リンク サービスを参照するコピー アクティビティのソースまたは検索アクティビティで SQL クエリを使用する場合は、それらを GAQL クエリに更新する必要があります。

SQL とは対照的に、GAQL のクエリは次の 6 種類の句で構成されています。

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT
  • PARAMETERS

GAQL の概要については、「Google Ads Query 言語の文法」を参照してください。

例として、次の SQL ステートメントを取り上げます。

SELECT *|FieldName FROM ResourceName WHERE FieldName Operator Value

次のガイダンスに従って、SQL ステートメントを対応する GAQL ステートメントに変換できます。

  1. SELECT 句の後に * (アスタリスク) を使用した場合、GAQL は SELECT * をサポートしていないため、アスタリスクの代わりにすべての必須フィールドを指定する必要があります。 この記事にアクセスすると、特定のリソースで選択可能なすべてのフィールドを確認できます。
  2. フィールド名が SELECT 句の後に使用されている場合、GAQL の命名規則が異なるため、その名前を GAQL の対応するフィールド名に変換する必要があります。 たとえば、SQL クエリ ステートメントのフィールド名 campaign_id は、GAQL では campaign.id に変換する必要があります。 フィールド名の変換に関する詳細については、「フィールド名」を参照してください。
  3. リソース名は、ここで指定されたものと大文字と小文字の区別が矛盾しない限り、そのままにすることができます。
  4. WHERE 句は、GAQL でサポートされる演算子が SQL と整合していないため、GAQL 文法に従って更新する必要があります。また、フィールド名も 2 番目のポイントで説明したとおりに変換する必要があります。

以下は、Google で提供される 2 つの非常に便利なツールで、対応する GAQL クエリ ステートメントを構築する際に強くお勧めします。

フィールド名

SQL で使用されるフィールド名は、GAQL と一致していません。 また、SQL のフィールド名から GAQL のフィールド名への変換規則も学ぶ必要があります。 この変換規則をまとめると次のようになります。

  • フィールド名がリソースに属する場合、SQL のアンダースコア (_) は GAQL ではドット (.) に変更されます。 また、ドット間の単語については、SQL で使用されているキャメルケースのステートメントの種類が、ドット間にアンダースコアを追加した単独の単語に変更されます。 SQL の PascalCase 型の最初の文字列は、GAQL の対応するリソース名に変更されます。

  • フィールド名がセグメントまたはメトリックに属する場合、GAQL ではプレフィックス segments. または metrics. を付加します。その後、最初のポイントで説明した同じ規則に従って、名前を変換します。

フィールド名変換の具体例を次に示します。

カテゴリ SQL のフィールド名 GAQL のフィールド名
リソースのフィールド Campaign_startDate campaign.start_date
リソースのフィールド Customer_conversionTrackingSetting_conversionTrackingStatus customer.conversion_tracking_setting.conversion_tracking_status
セグメント DayOfWeek segments.day_of_week
メトリック VideoViews metrics.video_views

次の表は、推奨ドライバー バージョンとレガシ ドライバー バージョンを使った Google 広告の機能の違いを示しています。

推奨ドライバー バージョン レガシ ドライバー バージョン
Google 広告 API のバージョンの指定がサポートされています。 Google 広告 API のバージョンの指定はサポートされていません。
ServiceAuthentication は次の 2 つのプロパティをサポートしています。
  • email
  • privateKey
ServiceAuthentication は次の 4 つのプロパティをサポートしています。
  • email
  • keyFilePath
  • trustedCertPath
  • useSystemTrustStore
データセット内のテーブルの選択はサポートされていません。 データセット内のテーブルの選択と、コピー アクティビティでのテーブルのクエリをサポートします。
クエリ言語として GAQL 構文をサポートします。 クエリ言語として SQL 構文をサポートします。
出力列名は、Google 広告で定義されているフィールド名と同じです。 出力列名は Google 広告で定義されたフィールド名と一致しません。
Google 広告のデータ型から、サービスによって内部的に使用される中間データ型への、以下のマッピングが使用されます。

float -> float
int32 -> int
int64 -> long
Google 広告のデータ型から、サービスによって内部的に使用される中間データ型への、以下のマッピングが使用されます。

float -> string
int32 -> string
int64 -> string

Google AdWords コネクタを Google Ads コネクタにアップグレードする

以下の手順に従って、Google AdWords リンク サービスを最新の Google Ads リンク サービスにアップグレードしてください。

  1. ドライバーのバージョンとして [推奨] を選択して、新しい Google Ads のリンク サービスを作成し、「リンク サービスのプロパティ」を参照して構成します。

  2. レガシ Google AdWords リンク サービスを参照するパイプラインを更新します。 Google Ads のリンク サービスは、クエリを使用したデータのコピーのみサポートしていることを考慮してください。

    1. パイプラインが Google AdWords のレポートから直接データを取得する場合は、以下の表で対応する Google Ads のリソース名を見つけ、このツールを使用してクエリを作成します。

      Google AdWords レポート Google Ads リソース
      ACCOUNT_PERFORMANCE_REPORT 顧客
      AD_PERFORMANCE_REPORT ad_group_ad
      ADGROUP_PERFORMANCE_REPORT ad_group
      AGE_RANGE_PERFORMANCE_REPORT age_range_view
      AUDIENCE_PERFORMANCE_REPORT campaign_audience_view、ad_group_audience_view
      AUTOMATIC_PLACEMENTS_PERFORMANCE_REPORT group_placement_view
      BID_GOAL_PERFORMANCE_REPORT bidding_strategy
      BUDGET_PERFORMANCE_REPORT campaign_budget
      CALL_METRICS_CALL_DETAILS_REPORT call_view
      CAMPAIGN_AD_SCHEDULE_TARGET_REPORT ad_schedule_view
      CAMPAIGN_CRITERIA_REPORT campaign_criterion
      CAMPAIGN_PERFORMANCE_REPORT キャンペーン
      CAMPAIGN_SHARED_SET_REPORT campaign_shared_set
      CAMPAIGN_LOCATION_TARGET_REPORT location_view
      CLICK_PERFORMANCE_REPORT click_view
      DISPLAY_KEYWORD_PERFORMANCE_REPORT display_keyword_view
      DISPLAY_TOPICS_PERFORMANCE_REPORT topic_view
      GENDER_PERFORMANCE_REPORT gender_view
      GEO_PERFORMANCE_REPORT geographic_view,user_location_view
      KEYWORDLESS_QUERY_REPORT dynamic_search_ads_search_term_view
      KEYWORDS_PERFORMANCE_REPORT keyword_view
      LABEL_REPORT label
      LANDING_PAGE_REPORT landing_page_view、expanded_landing_page_view
      PAID_ORGANIC_QUERY_REPORT paid_organic_search_term_view
      PARENTAL_STATUS_PERFORMANCE_REPORT parental_status_view
      PLACEHOLDER_FEED_ITEM_REPORT feed_item,feed_item_target
      PLACEHOLDER_REPORT feed_placeholder_view
      PLACEMENT_PERFORMANCE_REPORT managed_placement_view
      PRODUCT_PARTITION_REPORT product_group_view
      SEARCH_QUERY_PERFORMANCE_REPORT search_term_view
      SHARED_SET_CRITERIA_REPORT shared_criterion
      SHARED_SET_REPORT shared_set
      SHOPPING_PERFORMANCE_REPORT shopping_performance_view
      TOP_CONTENT_PERFORMANCE_REPORT Google Ads API では利用できなくなりました。
      URL_PERFORMANCE_REPORT detail_placement_view
      USER_AD_DISTANCE_REPORT distance_view
      VIDEO_PERFORMANCE_REPORT ビデオ
    2. パイプラインが Google AdWords からデータを取得するためにクエリを使用している場合は、[クエリ移行ツール] を使用して AWQL (AdWords クエリ言語) を GAQL (Google Ads クエリ言語) に変換します。

  3. このアップグレードには特定の制限があることに注意してください。

    1. AWQL のすべてのレポートの種類が GAQL でサポートされているわけではありません。
    2. すべての AWQL クエリが GAQL クエリに明確に変換されるわけではありません。

Copy アクティビティでソースおよびシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。