Skip to content
Last updated

Facebook Conversions API Export Integration

Treasure Data から Facebook に直接ジョブ結果(イベントデータの形式)を送信するために Facebook Conversions API を使用できます。これにより、Facebook 広告が購入、登録、申し込み、その他のウェブコンバージョンなどの実世界での成果にどの程度つながっているかを測定できます。

Facebook Pixel が3rdパーティデータとして取り込むコンバージョンデータに加えて、1stパーティデータをコンバージョンデータとしてアップロードできます。

また、ウェブサーバーログから抽出した CV ログを Facebook Conversion API にアップロードすることもできます。

このインテグレーションを使用して、オフラインイベント(実店舗で行われたコンバージョン)をアップロードすることを推奨します。

前提条件

  • Treasure Data の基本知識

  • Facebook Conversions と Facebook Event の基本知識

  • イベントデータをアップロードするには、Facebook の以下のいずれかへのアクセスが必要です:

    • Business Manager admin
    • イベントセットを作成した Admin system user
  • イベントセットに接続されている ad_account の Admin

  • Facebook Pixel ID

  • Facebook Access Token

Facebook Pixel ID と Access Token の取得

  1. Business Manager ダッシュボードを開き、Event Manager を選択します。

  1. Event Set を選択します。Settings を選択すると、Pixel ID が表示されます。

  1. Create Access Token を選択します。

  1. Pixel を選択します。
  2. Next を選択します。

  1. Generate Access Token を選択します。

  1. アクセストークンをコピーして保存します。セキュリティのため、サンプルではトークンを非表示にしています。
  2. Next を選択します。

アップロードの検証

アップロードテストを試すには、Test Events タブでテストコードを確認してください。

TD Console を使用した接続の作成

新しい接続の作成

Treasure Data では、クエリを実行する前に、エクスポート中に使用するデータ接続を作成して設定する必要があります。データ接続の一部として、インテグレーションにアクセスするための認証情報を提供します。

  1. TD Console を開きます。
  2. Integrations Hub > Catalog に移動します。
  3. Facebook Conversion API を検索して選択します。

  1. Create Authentication を選択します。

以下のフィールドを入力します:

  • Pixel ID

  • Access Token

  1. Continue を選択します。接続名を入力し、Done を選択します。

クエリの定義

クエリで列マッピングを定義する必要があります。クエリ内の列は、Facebook にアップロードされるイベントデータを表します。

Conversions API を使用して共有されるすべてのウェブサイトイベントには、以下のデータパラメータが必要です:

  • client_user_agent
  • action_source
  • event_source_url

ただし、非ウェブイベントには action_source パラメータのみが必要です。

これらのパラメータは、広告配信に使用されるイベントの品質を向上させ、キャンペーンのパフォーマンスを改善する可能性があります。さらに、一部の列については、Facebook に送信される前にデータがハッシュ化および正規化されます。

エクスポート結果を設定するには、少なくとも1つの顧客情報列が必要です。ハッシュ化と正規化の要件および Facebook Conversions API の詳細をご覧ください。

Facebook Conversions API のインテグレーションパラメータ

パラメータ説明
Test Event Code (optional)Events Manager の Test Events 機能でサーバーイベントをテストするためのコード
Pre-hashed Columns(オプション)SHA256 を使用してすでにハッシュ化されており、API の受け入れ要件を満たしているカンマ区切りの列
Skip Invalid Data (オプション)無効なレコードが検出された際にジョブを終了(ロールバックなし)するために使用されます。例えば、レコードに必須カラム(event_name、event_time など)が欠けている場合などです。

クエリの例

オフラインイベントの場合、action_source = physical_store となります。

custom_data に属する currency などのデータをエクスポートする場合は、JSON 形式でデータを設定する必要があります。

例えば、クエリは次のようになります:

WITH sample_data AS(
  SELECT
     *
  FROM
    (
    VALUES(
      1,
      'USD',
      104.2
    ),
    (
      2,
      'JPY',
      10000.2
    ),
    (
      3,
      'USD',
      103.4
    )
    ) AS t(
      id,
      currency,
      VALUE
    )
) SELECT
  CAST(
    MAP(
      ARRAY['currency',
      'value'],
      ARRAY[currency,
      CAST(
        VALUE AS VARCHAR
      ) ]
    ) AS JSON
  ) AS custom_data,
  id
FROM
  sample_data

同じ名前で複数の値をクエリするには、クエリ内で名前を複数回指定します。

イベントデータを取得するクエリの例

Treasure Data から、Facebook Conversions への接続にエクスポート結果を出力する次のクエリを実行します:

  • テーブルからの通常の SELECT クエリ
SELECT
  an_event_name_column AS event_name,
  an_event_time_column AS event_time,
  an_email_column AS em,
  a_country_column AS country
FROM your_table;
  • custom_data カラムのクエリ
SELECT
  'PageView' as event_name,
  1598531676 as event_time,
  'elizabetho@fb.com' as em,
  '{"a":12, "b":"c"}' as custom_data

App Data Event のクエリ例

SELECT
  event_name,
  event_time,
  em,
  action_source,
  advertiser_tracking_enabled,
  application_tracking_enabled,
  campaign_ids,
  install_referrer,
  installer_package,
  url_schemes,
  vendor_id,
  windows_attribution_id,
  extinfo_version,
  app_package_name,
  short_version,
  long_version,
  os_version,
  device_model_name,
  locale,
  timezone_abbr,
  carrier,
  screen_width,
  screen_height,
  screen_density,
  cpu_core,
  external_storage_size,
  free_space_in_external_storage_size,
  device_time_zone,
  anon_id,
  madid,
  client_ip_address,
  client_user_agent
FROM
  conversion_table

Facebook Conversions API の統合パラメータ

Treasure Data は、送信前にFacebook側のデータ要件に基づいて、統合内でデータの正規化とハッシュ化を処理します。

カラム名データ型必須ハッシュ化必須?説明
サーバーイベント
event_nameString
event_timeLong
custom_dataString/JSONカスタムプロパティの配列。詳細はこちらを参照
event_source_urlString
opt_outBoolean
event_idString
action_sourceStringアプリイベントの場合、action_source の値は app である必要があります
data_processing_optionsStringLDU 用
data_processing_options_countryLongLDU 用
data_processing_options_stateLongLDU 用
顧客情報(少なくとも1つのキーが必要)
emStringメールアドレス
phString電話番号
geString性別
dbString生年月日
lnString
fnString
ctString市区町村
stString都道府県
zpString郵便番号
countryString
external_idString外部ID
client_ip_addressString使用する場合両方必須クライアント IP アドレス
client_user_agentStringクライアントユーザーエージェント
fbcStringFacebook クリック ID
fbpStringFacebook ブラウザ ID
subscription_idStringサブスクリプション
lead_idLongリード ID
fb_login_idLongFB ログイン ID
anon_idStringアプリイベント専用。インストール ID。このフィールドは一意のアプリケーションインストールインスタンスを表します。
madidStringアプリイベント専用。モバイル広告主 ID、Android デバイスからの広告 ID、または Apple デバイスからの広告識別子(IDFA)。
アプリデータイベント
advertiser_tracking_enabledString- 0: 無効 - 1: 有効
application_tracking_enabledString- 0: 無効 - 1: 有効
extinfo_versionString- a2: Android - i2: iOS
app_package_nameStringアプリパッケージ名
short_versionString短縮バージョン
long_versionString長いバージョン
os_versionStringOS バージョン
device_model_nameStringデバイスモデル名
localeStringロケール
timezone_abbrStringタイムゾーン略称
carrierStringキャリア
screen_widthString画面幅
screen_heightString画面高さ
screen_densityString画面密度
cpu_coreStringCPU コア
external_storage_sizeString外部ストレージサイズ(GB)
free_space_in_external_storage_sizeString外部ストレージの空き容量(GB)
device_time_zoneStringデバイスのタイムゾーン
campaign_idsStringユーザーが Facebook からのリンクをクリックした際に、アウトバウンド URL(例:ad_destination_url)またはディープリンク(App Aggregated Event Manager の場合)に追加される暗号化された文字列と非ユーザーメタデータ。
install_referrerStringサードパーティインストールリファラー、現在 Android のみで利用可能
installer_packageStringAndroid SDK で内部的に使用
url_schemesStringiOS および Android SDK で内部的に使用
vendor_idStringベンダー ID
windows_attribution_idStringWindows 10 で使用されるアトリビューショントークン

詳細は Facebook のコンテンツページを参照してください。

(オプション) Query Export ジョブをスケジュールする

Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。

Treasure Data のスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。

2 つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行するよう要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。

例えば、cron スケジュールが '0 0 1 * 1' の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。

TD Console を使用してジョブをスケジュールする

  1. Data Workbench > Queries に移動します

  2. 新しいクエリを作成するか、既存のクエリを選択します。

  3. Schedule の横にある None を選択します。

  4. ドロップダウンで、次のスケジュールオプションのいずれかを選択します:

    ドロップダウン値説明
    Custom cron...Custom cron... の詳細を参照してください。
    @daily (midnight)指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。
    @hourly (:00)毎時 00 分に実行します。
    Noneスケジュールなし。

Custom cron... の詳細

Cron 値説明
0 * * * *1 時間に 1 回実行します。
0 0 * * *1 日 1 回午前 0 時に実行します。
0 0 1 * *毎月 1 日の午前 0 時に 1 回実行します。
""スケジュールされた実行時刻のないジョブを作成します。
 *    *    *    *    *
 -    -    -    -    -
 |    |    |    |    |
 |    |    |    |    +----- day of week (0 - 6) (Sunday=0)
 |    |    |    +---------- month (1 - 12)
 |    |    +--------------- day of month (1 - 31)
 |    +-------------------- hour (0 - 23)
 +------------------------- min (0 - 59)

次の名前付きエントリを使用できます:

  • Day of Week: sun, mon, tue, wed, thu, fri, sat.
  • Month: jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.

各フィールド間には単一のスペースが必要です。各フィールドの値は、次のもので構成できます:

フィールド値 例の説明
各フィールドに対して上記で表示された制限内の単一の値。
フィールドに基づく制限がないことを示すワイルドカード '*''0 0 1 * *'毎月 1 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
範囲 '2-5' フィールドの許可される値の範囲を示します。'0 0 1-10 * *'毎月 1 日から 10 日までの午前 0 時 (00:00) に実行するようにスケジュールを設定します。
カンマ区切りの値のリスト '2,3,4,5' フィールドの許可される値のリストを示します。0 0 1,11,21 * *'毎月 1 日、11 日、21 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
周期性インジケータ '*/5' フィールドの有効な値の範囲に基づいて、 スケジュールが実行を許可される頻度を表現します。'30 */2 1 * *'毎月 1 日、00:30 から 2 時間ごとに実行するようにスケジュールを設定します。 '0 0 */5 * *' は、毎月 5 日から 5 日ごとに午前 0 時 (00:00) に実行するようにスケジュールを設定します。
'*' ワイルドカードを除く上記の いずれかのカンマ区切りリストもサポートされています '2,*/5,8-10''0 0 5,*/10,25 * *'毎月 5 日、10 日、20 日、25 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
  1. (オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

クエリを実行する

クエリに名前を付けて保存して実行するか、単にクエリを実行します。クエリが正常に完了すると、クエリ結果は指定された宛先に自動的にエクスポートされます。

設定エラーにより継続的に失敗するスケジュールジョブは、複数回通知された後、システム側で無効化される場合があります。

(オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

Workflow でエクスポート結果をオプションで設定する

Treasure Workflow 内で、この統合を使用してデータをエクスポートするように指定できます。

詳細は パラメータを使用したデータのエクスポートを参照してください。

timezone: UTC

_export:
  td:
    database: sample_datasets

+td-result-into-target:
  td>: queries/sample.sql
  result_connection: facebook_conversions
  result_settings:
    test_event_code: 361738844830373
    skip_invalid: false