Skip to content
Last updated

Google Search Analytics Import Integration

Google Search Analyticsのデータを Treasure Data にインポートできます。ページ、クエリ、国、デバイスなどのディメンションでデータをフィルタリングおよびグループ化できます。定期的にデータをインポートするスケジュールを指定できます。

前提条件

  • Treasure Data の基本知識
  • Google Search Analytics の基本知識
  • Google Search Console アカウント

TD Console を使用して接続を作成する

新しい接続を作成する

データ接続を設定する際、統合にアクセスするための認証を提供します。Treasure Data では、認証を設定してからソース情報を指定します。

Integrations Hub > Catalog に移動し、Google Search Analytics を検索して選択します。

次のダイアログが開きます

Treasure Data Google Search Analytics へのアクセスには OAuth2 認証が必要です。この認証では、ユーザーが手動で Treasure Data アカウントを各自の Google Search Analytics アカウントに接続する必要があります。

認証を行うには、次の手順を実行します。

Click here を選択して新しいアカウントに接続します。

ポップアップウィンドウで Google アカウントにログインし、Treasure Data Connector アプリへのアクセスを許可します。

TD Console にリダイレクトされます。最初のステップ(新しい接続の作成)を繰り返し、新しい OAuth 接続を選択します。

新しい OneDrive 接続に名前を付けます。Done を選択します。

Google Search Analytics データを Treasure Data に転送する

Authentications で、New Source を設定します。

詳細を入力し、Next を選択します。

パラメータ

Site URL

Google Search Console で追跡されるプロパティ。Google はプロトコル(http:// または https://)、ドメイン、サブドメイン(例: example.com、m.example.com、www.example.com)を異なるものとして認識するため、データを取得したいドメイン、サブドメイン、またはパスブランチの正確な URL を入力する必要があります。

ドメインプロパティを使用する場合は、ドメインを指定する際に次の形式を使用します: sc-domain:example.com。

Group by Dimension

インポートするデータを 1 つ以上のディメンションでグループ化できます。サポートされているディメンションは、Page、Country、Device、Query、Search Appearance です。

Search Appearance を他の Dimensions とグループ化することはできません。有効なディメンショングループの例: Page、Country、Device。

選択したディメンションの数は、出力スキーマに影響します。例えば、ディメンション Country、Device、Query が選択された場合、インポートには Country、Device、Query のカラムが含まれます。

+----------------+---------------------+---------------+--------------+--------------------+------------+-----------------+----------------------------------+
| country:string |        query:string | device:string | click:double | impressions:double | ctr:double | position:double | response_aggregation_type:string |
+----------------+---------------------+---------------+--------------+--------------------+------------+-----------------+----------------------------------+
|            usa |       a sample data |       DESKTOP |          3.0 |                8.0 |      0.375 |            1.25 |                       byProperty |
|            usa |       a sample data |        MOBILE |          3.0 |                5.0 |        0.6 |             1.0 |                       byProperty |
|            twn | a sample data japan |        TABLET |          2.0 |                2.0 |        1.0 |             1.0 |                       byProperty |
+----------------+---------------------+---------------+--------------+--------------------+------------+-----------------+----------------------------------+

Filter by Dimension

複数のカテゴリでデータをフィルタリングできます。例えば、現在クエリでデータをグループ化している場合、「query contains 'treasure data'」というフィルタを追加できます。

Google Search Analytics は現在「AND」演算子のみをサポートしています。そのため、「Country equals'USA'」AND「Device equals'Mobile'」AND「Query contains 'sample data'」のようなフィルタはデータを返しますが、「Country equals'USA'」AND「Country equals 'JPN'」AND「query contains 'sample data'」はデータを返しません。

Search Type

検索タイプで分析データをフィルタリングします。サポートされている値: Web、Image、Video。デフォルトでは Web が選択されます。選択された値は、search_type カラムの下の出力スキーマに含まれます。

Start Date and End Date

要求された日付範囲、Start DateEnd Date は必須です。YYYY-MM-DD 形式で指定します。End DateStart Date 以上である必要があります。値は包括的です: Start Date の開始時刻(Start Date の 00:00:00)から End Date の終了時刻(End Date の 23:59:59)までです。特定の日にインポートする場合は、Start DateEnd Date と等しく設定します。例: Start Date = 2018-06-11、End Date = 2018-06-11。

データは Start DateEnd Date によって集約されます。日付範囲を 1 日より長く設定すると、クリック、ctr、インプレッション、ポジションの値は、指定された日付範囲内の個別の日の合計になります。

結果のデータは PST 時間(UTC-8:00)です。

データには 2~3 日の遅延がある可能性があり、Google Search Console でデータが利用可能になるまで待機します。ベストプラクティスとして、データが利用可能な日付よりも大きい End Date を設定しないでください。

Incremental Loading

Incremental Loading を有効にすることで、ジョブを反復的に実行するようにスケジュールできます。ジョブ実行の次の反復は、Start DateEnd Date の値から計算されます。

次は single daymultiple days の時間範囲の次の反復の例です:

Single-day range

JobsStart DateEnd Date
First run2018-01-012018-01-01
Second run2018-01-022018-01-02
Third run2018-01-032018-01-03

1 Week range

JobsStart DateEnd Date
First run2018-01-012018-01-07
Second run2018-01-082018-01-15
Third run2018-01-162018-01-23

プレビューと詳細設定

次のダイアログのようなデータのプレビューが表示されます。Preview の詳細をご覧ください。

Advanced Settings を選択して、データコネクタの動作をカスタマイズします。

Include Report Duration

Include Report Duration オプションは出力スキーマに影響します。チェックボックスが選択されている場合(デフォルト)、インポートジョブの結果には 2 つの追加カラム(Start DateEnd Date、タイプは string)が含まれます。次の例のように表示されます:

+--------------------------+--------------+--------------------+--------------------+--------------------+------------------+-----------------+
|             query:string | click:double | impressions:double |         ctr:double |    position:double |start_date:string | end_date:string |
+--------------------------+--------------+--------------------+--------------------+--------------------+------------------+-----------------+
|            a sample data |         11.0 |               35.0 | 0.3142857142857143 |  1.342857142857143 |       2018-05-05 |      2018-05-05 |
|             a sampledata |          3.0 |                8.0 |              0.375 |              1.625 |       2018-05-05 |      2018-05-05 |
|      a sample data japan |          2.0 |                2.0 |                1.0 |                1.0 |       2018-05-05 |      2018-05-05 |
|               cdp vs dmp |          1.0 |                3.0 | 0.3333333333333333 | 1.6666666666666665 |       2018-05-05 |      2018-05-05 |
|               cmp vs dmp |          1.0 |                1.0 |                1.0 |                7.0 |       2018-05-05 |      2018-05-05 |
|        a sample treasure |          1.0 |                1.0 |                1.0 |                1.0 |       2018-05-05 |      2018-05-05 |
|               hive guide |          1.0 |                2.0 |                0.5 |                4.5 |       2018-05-05 |      2018-05-05 |
| postgresql elasticcloud  |          1.0 |                4.0 |               0.25 |                8.5 |       2018-05-05 |      2018-05-05 |
|         s3 elasticcloud  |          1.0 |                1.0 |                1.0 |               11.0 |       2018-05-05 |      2018-05-05 |
|            a sample data |          1.0 |                1.0 |                1.0 |                1.0 |       2018-05-05 |      2018-05-05 |
+--------------------------+--------------+--------------------+--------------------+--------------------+------------------+-----------------+

Retry Limit

Treasure Data へのデータインポート中には、ネットワークの変動や Google サーバーの同時実行制限など、プロセスに影響を与える多くの要因があります。コネクタは、指定した回数だけインポートを再試行します。

Initial retry time wait in millis

コネクタは、インポートを再試行する前に、指定したミリ秒数だけ最初に待機します。次の再試行は 2 * initial retry time、というように続きます。

Max retry wait in millis

待機時間が指定した制限に達すると、コネクタは再試行を中止します。

ターゲットデータベースとテーブルを選択する

既存のデータベースとテーブルを選択するか、新しいデータベースとテーブルを作成します。

新しいデータベースを作成し、データベースに名前を付けます。Create new table についても同様の手順を実行します。

既存のテーブルにレコードを append するか、既存のテーブルを replace するかを選択します。

デフォルトのキーではなく別の partition key seed を設定する場合は、ポップアップメニューを使用して指定できます。

スケジューリング

Schedule タブでは、1 回限りの転送を指定するか、自動化された繰り返し転送をスケジュールできます。Once now を選択した場合は、Start Transfer を選択します。Repeat… を選択した場合は、スケジュールオプションを指定してから、Schedule Transfer を選択します。

New Source 名を入力し、Done を選択します。

CLI を使用する

'td' コマンドをインストールする

Treasure Data Toolbelt をインストールします。

必要な Google API 認証情報を取得する

'td' コマンドのコネクタ設定には以下が必要です:

* client_id
* client_secret
* refresh_token

これらのパラメータは次の手順で取得できます:

client_id、client secret を取得する

すでに OAuth 2 を設定し、Google Search Console APIs アクセスを有効にし、client ID と client secret を持っている場合は、このステップをスキップできます。

client ID と client secret を取得するには、開発者向け Google Search Console APIs の手順に従ってください: https://developers.google.com/webmaster-tools/search-console-api-original/v3/how-tos/authorizing

また、Google Search Console API Wizard を使用することもできます。これにより、プロジェクトをすばやく作成し、Google Search Console API をオンにすることができます。Credentials > Create Credentials > OAuth ClientID > Web Application に移動します。名前を入力して Create を選択します。次の画面に client ID と client secret が表示されます。

refresh_token を取得する

取得する必要がある残りの認証情報は refresh token です。refresh token を取得する 1 つの方法は、Google OAuth 2.0 Playground を使用することです。こちらで利用できます: Google OAuth 2.0 Playground

まず、OAuth 2.0 Playground 内で、右上隅の歯車アイコンを選択し、Use your own OAuth credentials チェックボックスを選択してください。OAuth Client ID と OAuth Client secret に、API コンソールから取得した認証情報を挿入します。

ステップ 1 で、Search Console API v3 を選択します。次に "https://www.googleapis.com/auth/webmasters.readonly" を選択し、"Authorize APIs" を選択して、指示に従って Search Console API から Google Search Console アカウントへのアクセスを許可します。

ステップ 2 で、Exchange authorization code for tokens を選択すると、Refresh Token と Access Token フィールドが入力されます。refresh token フィールドの値が、次のステップでコネクタ設定を準備するために使用されます。

設定を準備してデータをプレビューする

次のように config.yml を準備します:

in:
  type: "google_search_analytics"
  client_id: "[Your Client ID]"
  client_secret: "[Your Client Secret]"
  refresh_token: "[Your Refresh Token]"
  site_url: "[Your tracked site]"
  dimensions: ["query"]
  filters:
    - {
        "dimension": "query",
        "operator": "equals",
        "expression": "a sample"
      }
  search_type: web
  start_date: "2018-06-01"
  end_date: "2018-06-01"
  include_report_period: false
out:
  mode: append
filters:
  - {
      type: "add_time",
      to_column: {"name": "time"},
      from_value: {"mode": "upload_time"}
    }

利用可能な out モードの詳細については、Appendix A を参照してください

filters の詳細については、Appendix B を参照してください

その後、preview コマンドを使用してデータのプレビューを表示できます。

$ td connector:preview config.yml

Google Search Analytics コネクタでは td connector:guess を実行する必要はありません。

ロードジョブを実行する

ロードジョブを送信します。データのサイズによっては、処理に数時間かかる場合があります。

$ td connector:issue config.yml --database td_sample_db --table td_sample_table

スケジュール実行

Search Analytics データの増分インポートのために、定期的なデータコネクタ実行をスケジュールできます。

スケジュールされたインポートの場合、最初の実行時に、Search Analytics 用 Data Connector は "start_date" と "end_date" で指定されたすべてのデータをインポートします。

2 回目以降の実行では、コネクタは前回のロードよりも新しいデータのみをインポートします。

スケジュールを作成する

td connector:create コマンドを使用してスケジュールを作成できます。次の項目が必要です: スケジュールの名前、cron 形式のスケジュール、データが保存されるデータベースとテーブル、データコネクタ設定ファイル。

$ td connector:create \
    daily_import \
    "10 0 * * *" \
    td_sample_db \
    td_sample_table \
    config.yml

cron パラメータは、3 つの特別なオプション @hourly@daily@monthly も受け付けます。| デフォルトでは、スケジュールは UTC タイムゾーンで設定されます。-t または --timezone オプションを使用して、タイムゾーンでスケジュールを設定できます。--timezone オプションは、'Asia/Tokyo'、'America/Los_Angeles' などの拡張タイムゾーン形式のみをサポートしています。PST、CST などのタイムゾーンの略語は*サポートされておらず*、予期しないスケジュールになる可能性があります。

すべてのスケジュールをリストする

td connector:list コマンドで、現在のすべてのスケジュールエントリのリストを確認できます。

$ td connector:list

スケジュール設定と履歴を表示する

td connector:show は、スケジュールエントリの実行設定を表示します。

$ td connector:show daily_import

td connector:history は、スケジュールエントリの実行履歴を表示します。個々の実行の結果を調査するには、td job jobid を使用します。

$ td connector:history daily_import

スケジュールを削除する

td connector:delete は、スケジュールを削除します。

$ td connector:delete daily_import

設定

次の表は、モードで利用可能なオプションの詳細を示しています。

Option nameDescriptionTypeRequired?Default Value
client_idアプリ client idstringyes
client_secretアプリ client secretstringyes
refresh_tokenアプリ refresh tokenstringyes
site_url追跡するサイト URLstringyes
dimensions結果をグループ化する search analytics dimensionenumoptional
filtersディメンションでフィルタリングenumoptional
search_type検索タイプでフィルタリング。web、image、videostringoptionalweb
start_dateリクエスト日付範囲の開始日stringyes
end_dateリクエスト日付範囲の終了日stringyes
incrementalスケジュールインポート用の次の start_date と end_date を生成booloptionaltrue
include_report_period出力結果に start_date と end_date を含めるかどうかを指定booloptionaltrue
retry_limit再試行可能なエラーが発生したときに諦める回数integeroptional7 (times)
retry_initial_wait_millis再試行可能なエラーが発生したときの初期待機時間。次の値は前の値の 2 倍になりますintegeroptional15000 (15 seconds)
max_retry_wait_millis各再試行の最大待機時間integeroptional1800000 (30 minutes)

Appendix

Out Plugin のモード

config.yml の out セクションで mode を指定することにより、新しいデータを Treasure data にインポートする方法を指定できます。

append (default)

これはデフォルトのモードで、レコードはターゲットテーブルに追加されます。

in:
  ...
out:
  mode: append

replace (td 0.11.10 以降)

このモードは、ターゲットテーブルのデータを置き換えます。ターゲットテーブルに対して行われた手動のスキーマ変更は、このモードでもそのまま維持されます。

in:
  ...
out:
  mode: replace

add_time Filter

Data Connector 用の add_time フィルタプラグインを使用すると、スキーマ内の既存の別のカラムから値をコピーするか、値を指定することにより、スキーマに新しい時間ベースのカラムを追加できます。詳細については、add_time Filter Plugin for Integrations のドキュメントを参照してください。

Dimensions

  • Page
  • Country
  • Device
  • Query
  • Search Appearance

Supported Filter Operators

  • Contains
  • Equals
  • NotContains
  • NotEquals

Added New Column

バージョン v0.1.4 から、Search Type フィルタをサポートしているため、新しいカラム名 search_type がジョブ結果に追加されます。ジョブ設定を変更しない場合、デフォルト値は "web" です。