Google Ads コネクター
Tajo を介して Google Ads を Brevo に接続し、広告オーディエンスを同期、コンバージョンデータをインポートし、有料獲得とライフサイクルマーケティングをつなぐ統合顧客プロファイルを作成します。
概要
| 項目 | 値 |
|---|---|
| プラットフォーム | Google Ads |
| カテゴリー | マーケティング |
| セットアップ難易度 | 上級 |
| 公式統合 | なし |
| 同期データ | キャンペーン、オーディエンス、コンバージョン、顧客 |
| 利用可能なスキル | 7 |
機能
- Customer Match 同期 - Brevo のコンタクトリストを Customer Match オーディエンスとして Google Ads にアップロード
- コンバージョントラッキング - Brevo イベントからのオフラインコンバージョンを Google Ads にインポート
- オーディエンス同期 - Brevo リストと Google Ads オーディエンス間の双方向同期
- キャンペーンレポート - キャンペーンパフォーマンスデータを Tajo ダッシュボードに取り込み
- GCLID トラッキング - オフラインコンバージョン帰属用に Google Click ID をキャプチャ
- スマート入札データ - コンバージョン値データを Google にフィードバックして入札最適化に活用
- リードフォーム同期 - Google Ads のリードフォーム送信を Brevo コンタクトにインポート
前提条件
開始する前に、以下をご用意ください。
- API アクセスが有効化された Google Ads アカウント
- Google Ads API が有効化された Google Cloud プロジェクト
- OAuth 2.0 認証情報 (Client ID と Client Secret)
- Google Ads 開発者トークン (Google Ads API Center で申請)
- API アクセス付きの Brevo アカウント
- API 認証情報付きの Tajo アカウント
認証
OAuth 2.0
Google Ads API は認証に OAuth 2.0 を使用します。OAuth 同意フローを介してリフレッシュトークンを取得する必要があります。
# Required OAuth scopeshttps://www.googleapis.com/auth/adwords開発者トークン
開発者トークンはすべての Google Ads API リクエストに必要であり、Google の承認が必要です。
# Set up authentication headerscurl -X POST https://googleads.googleapis.com/v18/customers/1234567890/googleAds:search \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "developer-token: DEVELOPER_TOKEN" \ -H "login-customer-id: MANAGER_ACCOUNT_ID"設定
基本セットアップ
connectors: google_ads: enabled: true developer_token: "your-developer-token" oauth: client_id: "your-client-id" client_secret: "your-client-secret" refresh_token: "your-refresh-token" customer_id: "123-456-7890" login_customer_id: "111-222-3333" # Manager account (optional)
# Data sync options sync: customer_match: true conversions: true campaigns: true lead_forms: true
# Conversion tracking conversions: action_id: "123456789" default_currency: "USD"Customer Match の設定
Brevo コンタクトを Google Ads オーディエンスとしてアップロードします。
customer_match: enabled: true lists: - brevo_list_id: 5 audience_name: "All Customers" match_type: "CONTACT_INFO" - brevo_list_id: 7 audience_name: "High Value Customers" match_type: "CONTACT_INFO"
# Data fields to match match_fields: - email - phone - first_name - last_name - country_code - zip_code
# Sync schedule schedule: "daily" sync_mode: "mirror" # mirror, append, or removeオフラインコンバージョンインポート
conversion_import: enabled: true conversion_action: "purchase" gclid_attribute: "GCLID" # Brevo attribute storing GCLID conversion_events: - brevo_event: "order_completed" conversion_name: "Purchase" value_field: "revenue" - brevo_event: "subscription_created" conversion_name: "Subscription" value_field: "plan_value"API エンドポイント
| メソッド | エンドポイント | 説明 |
|---|---|---|
POST | /v18/customers/{id}/googleAds:search | キャンペーンとリソースを検索 (GAQL) |
POST | /v18/customers/{id}/googleAds:searchStream | 検索結果をストリーム |
POST | /v18/customers/{id}/offlineUserDataJobs:create | Customer Match アップロードジョブを作成 |
POST | /v18/customers/{id}/conversionUploads:uploadClickConversions | オフラインコンバージョンをアップロード |
POST | /v18/customers/{id}/conversionUploads:uploadCallConversions | コールコンバージョンをアップロード |
GET | /v18/customers/{id}/campaignBudgets | キャンペーン予算を取得 |
POST | /v18/customers/{id}/customerLists:mutate | 顧客リストを管理 |
コード例
Google Ads コネクターの初期化
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Google Ads accountawait tajo.connectors.connect('google-ads', { developerToken: process.env.GOOGLE_ADS_DEV_TOKEN, clientId: process.env.GOOGLE_OAUTH_CLIENT_ID, clientSecret: process.env.GOOGLE_OAUTH_CLIENT_SECRET, refreshToken: process.env.GOOGLE_OAUTH_REFRESH_TOKEN, customerId: '123-456-7890'});Customer Match オーディエンスのアップロード
// Sync a Brevo list to Google Ads Customer Matchawait tajo.connectors.syncAudience('google-ads', { brevoListId: 5, audienceName: 'High Value Customers', matchType: 'CONTACT_INFO', syncMode: 'mirror'});オフラインコンバージョンのインポート
// Upload offline conversions from Brevo order eventsawait tajo.connectors.uploadConversions('google-ads', { conversionAction: 'customers/123456/conversionActions/789', conversions: [ { gclid: 'CjwKCAiA...', conversionDateTime: '2024-01-15 10:30:00-05:00', conversionValue: 89.99, currencyCode: 'USD' } ]});キャンペーンパフォーマンスのクエリ (GAQL)
// Query campaign metrics using Google Ads Query Languageconst query = ` SELECT campaign.name, campaign.status, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions FROM campaign WHERE segments.date DURING LAST_30_DAYS ORDER BY metrics.impressions DESC LIMIT 20`;
const results = await tajo.connectors.query('google-ads', { gaql: query });レート制限
| リソース | 制限 | 詳細 |
|---|---|---|
| API リクエスト | 15,000/日 | 開発者トークン単位 |
| Mutate 操作 | 10,000/日 | 顧客アカウント単位 |
| GAQL クエリ | 1,500/日 | 顧客アカウント単位 |
| Customer Match アップロード | 10 ジョブ/日 | 顧客リスト単位 |
| コンバージョンアップロード | 2,000/リクエスト | アップロードバッチ単位 |
| ページサイズ | 10,000 行 | 検索レスポンスごとの最大値 |
開発者トークンの承認
Google Ads API には承認済みの開発者トークンが必要です。マネージャーアカウントの Google Ads API Center から申請してください。テストアカウントではレート制限が低くなります。
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
DEVELOPER_TOKEN_NOT_APPROVED | トークンが審査中 | Google の承認を待つかテストアカウントを使用 |
CUSTOMER_NOT_FOUND | 顧客 ID が誤り | 顧客 ID からハイフンを削除するかマネージャーアカウントを確認 |
| Customer Match のマッチ率が低い | データが不足 | 複数の識別子を含める (メール、電話、氏名、郵便番号) |
| コンバージョンが表示されない | アトリビューションウィンドウ | コンバージョンの処理には最大 24 時間かかる場合あり |
OAUTH_TOKEN_EXPIRED | リフレッシュトークン無効 | 再認証してリフレッシュトークンを新たに取得 |
PERMISSION_DENIED | アクセス権限不足 | API アクセスレベルとアカウントリンクを確認 |
ベストプラクティス
- マネージャーアカウントを使用 - 単一のマネージャー (MCC) アカウントで複数の広告アカウントを管理
- Customer Match データをハッシュ化 - アップロード前に必ず PII を SHA-256 でハッシュ化
- GCLID を追跡 - オフラインコンバージョントラッキング用に Google Click ID を Brevo 属性に保存
- コンバージョンアップロードをバッチ化 - リアルタイムアップロードではなく日次バッチでコンバージョンをまとめる
- レポートに GAQL を使用 - 柔軟なキャンペーンレポートには Google Ads Query Language を活用
- マッチ率を監視 - Customer Match オーディエンスのマッチ率を追跡し、データ品質を向上
- 拡張コンバージョンを設定 - より正確なコンバージョン計測のため拡張コンバージョンを使用
セキュリティ
- OAuth 2.0 - リフレッシュトークン付きのセキュアなトークンベース認証
- SHA-256 ハッシュ化 - Customer Match データはアップロード前にハッシュ化
- データ最小化 - 必要なフィールドのみ Google に送信
- Google Cloud コンプライアンス - SOC 2、ISO 27001、GDPR 準拠
- スコープ付きアクセス - API 権限は特定の顧客アカウントに制限
- 監査ログ - すべての API リクエストは Google Ads 変更履歴に記録