どのようにお手伝いできますか?

ROI360:コストETLレポートの設定と利用 プレミアム機能

  • 更新

概要:AppsFlyer ROI360の一部であるコストETLは、メディアソースごとに利用可能な最高の粒度を持つキャンペーンコストデータを広告主に提供します。毎日4回更新されるデータは、広告主のBIシステムに格納できるようクラウドサービス経由で格納できます。

5896_CostETL_graphic__2_.png

AppsFlyer ROI360の一部であるコストETLは、メディアソースごとに利用可能な最高の粒度を持つキャンペーンコストデータを広告主に提供します。毎日最大4回、データが更新され、Data Lockerクラウドサービスに配信され、広告主のBIシステムにロードする準備が整います。

広告主は、一度に複数のクラウド接続先にレポートを簡単に格納できます。例えば、あるクラウドサービスから別のクラウドサービスに移行する際、データが複数のサービスで同時にアクセスできるため、各作業を簡素化・強化できます。

コストETLレポートには、インストール、リアトリビューションCV、リエンゲージメントCVなどのアトリビューション指標を含む、AppsFlyerアトリビューションに紐付けられたコストデータが含まれています。 

Four types of cost ETL reports

AppsFlyerは、異なる分析ニーズをサポートするために2種類のレポートを提供します。

  • サマリーレポート:(デフォルト)メディアソース別に集計されたハイレベルのコストデータ。コストとパフォーマンス指標を広範囲に分析するために推奨されます。
  • 国別レポート:(オプション)国(2文字コード)別に分解されたコストデータ、例えばUS、CA、FRなど。国レベルのパフォーマンスとコスト分析に推奨されます。
  • チャネルレポート:(オプション)チャネル(例:YouTube、ショッピング)別にセグメント化されたコストデータ。チャネルレベルのパフォーマンスとコスト分析に最適です。View sample file
  • すべてのコストレポートは、アドネットワークから直接取得したモバイルおよびウェブのコストデータの包括的なビューを提供し、アトリビューション統合はありません。現在、Google Ads、Meta Ads、TikTokをサポートしています。View sample file

     注意

    すべてのコストレポートでGoogle AdsとMeta Adsの受信を開始するには、AppsFlyerの担当者にお問い合わせください。

コストETLレポート

  Summary geo(国) チャネル すべてのコストレポート
レポート項目の確認 Enable Cost ETL. The Summary report is selected by default. Enable Cost ETL and select the Geo report. Enable Cost ETL and select the Channel report. Enable Cost ETL and select the Geo report. (All Cost report doesn't have a specific selector in cost ETL page)
Where to find the report Depends on the cloud connector service you choose. It can be a folder (Summary) or a dedicated table. Depends on the cloud connector service you choose. It can be a folder (Geo) or a dedicated table. Depends on the cloud connector service you choose. It can be a folder (Channel) or a dedicated table. Depends on the cloud connector service you choose. It can be a folder (All Cost) or a dedicated table.
Cost type coverage

Mobile cost: No limitation.
CTV and web cost: Limited to:
 

  1. Campaigns with at least one conversion
  2. Cost source is InCost API, Cost Import, or CPI
Same as Summary. Same as Summary. Mobile, Web, CTV, PC, and Console cost from Google Ada, Meta Ads and TikTok.
メディアソースにより計測 No limitation No limitation No limitation
  • TikTok: Data is automatically added.
  • Google and Meta: Contact your CSM to enable.
Schema granularity Based on customer configuration in Cost ETL settings.

Based on customer configuration in Cost ETL settings.


For Meta, the channel dimension has no values.

Based on customer configuration in Cost ETL settings.


For Meta, the geo dimension has no value.

Based on customer configuration in Cost ETL settings.

For Meta, the Channel dimension is not supported.
Platform: A new dimension from the ad network indicating where the campaign runs (e.g., mobile, desktop, tablet).

Attribution data Supported Supported Supported

Not supported.


Attribution metrics values are displayed as zero (0), if they are configured by the customer to be part of the Cost ETL schema.

AppsFlyerにより計測 If the ad network does not support App ID granularity, the App ID is extracted from the attribution data. Same as Summary. Same as Summary.

Extracted from the ad network.


アプリIDが取得できない場合は、unknown として表示されます。

Cost source API integration (Cost + InCost), Cost Import, CPI Same as Summary. Same as Summary. API integration only.
CNC Supported Supported Supported Not supported.
Agency data Supported Supported Supported
  • Facebook and Meta: Not supported.
  • TikTok: Supported only for campaigns with App ID in AppsFlyer.
Agency fee Supported Supported Supported Not supported. Value is always 0.
Freshness Data is collected from the ad network 6 times per day.
Reports can be delivered up to 4 times per day (based on customer configuration).

レポート詳細

Data freshness

キャンペーンのコストデータは次のように書き込まれます:

  • To your cloud service or bucket for viewing, transferring, and loading cost data into your systems.
  • コストETLに含めることを選択したすべてのアプリにおいて、1日あたり、1バージョンあたり
  • 1日4回まで(データ鮮度:日中)
  • 当日と過去6日間(本記事では7日間と表記)のほか、14日目、29日目、88日目も同様に配信できます。データロードプロセスでは、この点を考慮に入れてください。
    • 例:2024年10月14日の場合、ファイルには10月14日(当日)、10月13日(1日遡り)、10月12日(2日遡り)、10月11日(3日遡り)、10月10日(4日遡り)、10月9日(5日遡り)、10月8日(6日遡り)、9月30日(14日遡り)、9月15日(29日遡り)、7月18日(88日遡り)のデータが含まれています。
    • 過去にさかのぼったデータにより、コストデータレポートの更新や訂正が可能になります。
  • For cost matched with an attribution, click, or impression.
    Note:
    • 過去7日分のデータは、メディアソースから新たに取得したものです。 14日目、29日目、88日目のデータは再処理しています。
    • コストデータのみ遡及して更新され、アトリビューションデータは更新されません。

ディレクトリとファイル名の構造

Data written to the cloud service or bucket has the directory and file structure described:

  • コストETLがディレクトリへの書き込みを完了すると、成功ファイルを作成してフラグが設定されます。これが、常にディレクトリ内の最新のタイムスタンプになります。
  • フォルダ/ファイル数は、次のとおりです:
    • 概要:1日4バージョンまで。
      • 各バッチフォルダには、7日間のデータを含むParquetファイルが含まれています。
    • 地域(国)またはチャネル別のレポート:各レポートには、1日あたり最大4つのバージョンフォルダが含まれます。
      • 各バッチフォルダには、番号付けが1から始まるデータを含むParquetファイルが含まれています。
    •  All cost: Based on the geo dimension, contains up to 4 files per day.

Data Locker接続ディレクトリ構造

///t=/dt=/v=<1/2/3/4>/

変数 コンテンツ
client-bucket クラウドサービスで設定されているバケット名
DL-generated-partition ユニークなパーティションを生成
connection-name Data Lockerのセットアップ時に定義された接続名
t

特定のレポートの名前。以下いずれか:

  • cost_etl_summary
  • cost_etl_geo
  • cost_etl_channel
  •  cost_etl_all_cost_geo
dt
  • レポート日付、つまりレポートが送信された日付。
  • YYYY-MM-DD
v
  • 1日ごとのレポートの時系列バージョン(最大4つの日次レポートが可能)
  • 1-4の整数
Parquet file number
  • 00000から始まる番号
  • 例: part-

コストETL接続ディレクトリ構造

<advertiser bucket name>/cost_etl/version/dt=<yyyy-mm-dd>/b=<n>/<dimension>/<file name/<parquet file number>

変数 コンテンツ
advertiser_bucket_name コストETL設定で定義された通り: af-xpend-cost-etl-<af-account-id>-[your bucket name suffix]
cost_etl この値は常に「cost_etl」です
version コストETLのバージョン
date

コストの日付

形式: yyyy-mm-dd

batch 数値 1-4
ディメンション

Data dimension:

  • geo(国)
  • channel
file_name
  • summary
  • all-cost
Parquet file number
  • 00000から始まる番号
  • 例: part-

例:2020年6月23日の最初のデータ抽出では、ディレクトリとファイル名の構造は次のようになります:/bucket-name/cost_etl/v1/dt=2020-06-23/b=1/geo/part-00001

ファイル項目

フィールド / ディメンション

フィールド Remarks 常に記入 形式 サマリーファイルに含まれる
ad 広告階層のコンポーネント いいえ 文字列 -
ad_account
  • コストデータが取得される広告アカウント
  • oAuth(認証情報でのログイン)を使用して連携したネットワーク(例: GoogleやMeta)に関連します
いいえ 文字列 -
ad_id 広告階層のコンポーネント いいえ 文字列 - 
adset 広告階層のコンポーネント いいえ 文字列 -
adset_id 広告階層のコンポーネント いいえ 文字列 -
af_bid_strategy AppsFlyerによってマッピングされ正規化された入札ストラテジー。キャンペーンプロパティのコンポーネント。詳細はこちら いいえ 文字列  -
af_cost_model AppsFlyerによってマッピングされ正規化されたコストモデル。キャンペーンプロパティのコンポーネント。詳細はこちら いいえ 文字列  -
agency 広告を配信する代理店 いいえ 文字列 -
app_id AppsFlyerプラットフォームのアプリID はい 文字列 ✓
bid_amount キャンペーンプロパティのコンポーネント。詳細はこちら いいえ 整数 -
bid_strategy キャンペーンプロパティのコンポーネント。詳細はこちら いいえ 文字列  -
campaign 広告階層のコンポーネント いいえ 文字列 -
campaign_id 広告階層のコンポーネント いいえ 文字列 -
campaign_objective キャンペーンプロパティのコンポーネント。詳細はこちら いいえ 文字列  -
channel 広告階層のディメンション いいえ 文字列 - 
cost_model キャンペーンプロパティのコンポーネント。詳細はこちら いいえ 文字列  -
currency AppsFlyer管理画面のアプリ設定画面で設定された通貨 はい ISO-4217 に準拠した3文字の文字列 ✓
date メディアソースによってレポートされたコストの日付 はい String yyyy-mm-dd ✓
備考 広告階層のディメンション いいえ ISO 3166に準拠した2文字の文字列 ✓
keyword_id ASAキーワード用語のID はい 文字列 -
keyword_term ユーザーがオンライン検索に使用する単語 はい 文字列  -
media_source 広告が表示すれたメディアソース はい 文字列 ✓
original_bid_amount キャンペーンプロパティのコンポーネント。詳細はこちら いいえ 整数 -
original_currency コンバージョン前にネットワークから報告されたコストの通貨 いいえ ISO-4217 に準拠した3文字の文字列 -
os

Operating system of the device. Possible values:

  • android
  • windowsphone
  • ios
はい 文字列 -
platform キャンペーンを実行するために使用されるプラットフォーム(モバイル、タブレット、デスクトップ、CTV) すべてのコストレポートのみ 文字列 -
site_id パブリッシャーID はい 文字列  -
timezone
  • AppsFlyer管理画面のアプリ設定画面で設定されたタイムゾーン
  • 広告媒体によって、AppsFlyerで設定されているものとは異なるタイムゾーンでデータをレポートすることがあります。このデータポイントは、AppsFlyerとネットワーク間のコストの乖離の一因になります。
はい 文字列  -

指標

フィールド Remarks 常に記入 形式 サマリーファイルに含まれる
ccvr
  • コンバージョン当たりのコスト
  • 数式:コスト ÷ (インストール数+リアトリビューション+リエンゲージメント数)
  整数 - 
clicks
  • Counted by AppsFlyer.
  • UA(新規獲得)とリターゲティングの両方を含む
  • エンゲージクリックは、総クリック数から差し引かれます。
  整数 ✓
clicks_discrepancy
  • アドネットワークとAppsFlyerでカウントされる乖離
  • 以下の場合は、この指標は無視されます:
    • コストとアトリビューションが一致していない場合
    • アドネットワークが、 レポートされたクリックに対応していない場合
  整数 -
cost 支出額(設定されている場合は代理店手数料を含むグロスコスト)   値(Value) ✓
cost_without_fees 通常の広告コストに加えて代理店が請求する手数料。 AppsFlyerにより計測 はい 整数 -
cpi
  • AppsFlyerにより計測
  • 数式:コスト ÷ インストール
  整数 - 
ctr
  • クリック率。 AppsFlyerにより計測
  • 数式:クリック ÷ インプレッション
いいえ 整数 -
cvr
  • コンバージョン率。 AppsFlyerにより計測
  • 数式:インストール ÷ クリック
  整数  -
cvvr
  • 動画の視聴完了率。 AppsFlyerにより計測
  • 数式:動画の再生完了数 ÷ インプレッション数
  整数 -
ecpc
  • AppsFlyerにより計測
  • 数式:コスト ÷ クリック数
  整数 -
ecpm
  • AppsFlyerにより計測
  • 数式:(コスト ÷ インプレッション) x 1000 
  整数 - 
fees Fees an agency charges in addition to the usual ad cost. AppsFlyerにより計測 はい 整数 -
Impressions
  • Counted by AppsFlyer.
  • UA(新規獲得)とリターゲティングの両方を含む
  • エンゲージビューは、総インプレッション数から差し引かれます。

はい。

特定の指標で使用可能な値がない場合は、0が入力されます。

整数 ✓
impressions_discrepancy
  • アドネットワークとAppsFlyerでカウントされる乖離
  • 以下の場合は、この指標は無視されます:
  整数 -
installs AppsFlyerにより計測   整数 ✓
installs_discrepancy
  • アドネットワークとAppsFlyerでカウントされる乖離
  • 以下の場合は、この指標は無視されます:
  整数 -
original_cost アドネットワークによってレポートされたコスト - 通貨換算前のネットワークによってレポートされた通貨(関連する場合はAppsFlyerによって計算された代理店手数料が追加されます)   値(Value)  -
original_cost_without_fees アドネットワークからレポートされた、広告代理店手数料を含まないオリジナルコスト はい 整数 -
re_attributions AppsFlyerにより計測   整数 ✓
re_engagements AppsFlyerにより計測   整数 ✓
reported_clicks メディアソースにより計測   整数 ✓
reported_conversions AppsFlyerにより計測   整数  
reported_cvr
  • レポートされたコンバージョン率
  • 数式:レポートされたコンバージョン ÷ レポートされたクリック
  整数 - 
reported_impressions メディアソースにより計測   整数 ✓
video_25p_views 動画25%再生。アドネットワークによりレポートされます。   整数 - 
video_50p_views 動画50%再生。アドネットワークによりレポートされます。   整数 - 
video_75p_views 動画75%再生。アドネットワークによりレポートされます。   整数 - 
video_completions アドネットワークによりレポートされます。   整数 - 

手順

コストETLの設定

この設定手順は、アドミン(管理者)ユーザが行う必要があります。

アトリビューション、クリック、インプレッションと一致したコスト
注意:

ETLセットアップの前提条件:

  • AppsFlyerがデータの書き込みを許可するように設定されたクラウドサービス。つまり、以下のクラウドサービスのいずれか1つ以上をセットアップする必要があります:
  • コストETLの設定を完了するには、 AppsFlyerの管理者権限とAppsFlyer管理画面へのアクセス権限が付与されている必要があります。

AppsFlyerAdmin_us-en.png コストETLを設定する: 

  1. AppsFlyer管理画面 左メニュー エクスポート > コストETLへ移動します。
  2. データ接続を選択または設定します:
    • すでにデータ接続が設定されている場合は、接続ドロップダウンでコストETLに必要な接続を選択します。
    • まだデータ接続をお持ちでない場合は、Data Lockerの +新規接続をクリックし、そこで接続を作成してください:
      1. 接続に名前を付けます。
      2. クラウドサービスのデータ保存先の選択してください。次のいずれかを実行してください:
        • S3を選択します。
          1. AWS S3バケット名を入力します。プレフィックス af- は必須であり、手動で入力する必要があります。
          2. 接続テストをするをクリックしてください。
          3. バケットパスが無効であることを示すエラーメッセージなどが表示されないことを確認します。
          4. この接続をAdobe Experience Platformと互換性を持たせるかどうかを選択します。
          5. 保存をクリックしてください。
          6. コストETLセットアップで、接続ドロップダウンで、作成したクラウドサービスを選択します。
        • GCSを選択します。
          1. GCSバケット名を入力します。
          2. 接続テストをするをクリックしてください。
          3. バケットパスが無効であることを示すエラーメッセージなどが表示されないことを確認します。
          4. この接続をAdobe Experience Platformと互換性を持たせるかどうかを選択します。
          5. 保存をクリックしてください。
          6. コストETLセットアップで、接続ドロップダウンで、作成したクラウドサービスを選択します。
        • ベータ版Azureを選択します。
          1. 接続名、ストレージアカウント名、キーを入力します。
          2. バケットパスが無効であることを示すエラーメッセージなどが表示されないことを確認します。
          3. この接続をAdobe Experience Platformと互換性を持たせるかどうかを選択します。
          4. 保存をクリックしてください。
          5. コストETLセットアップで、接続ドロップダウンで、作成したクラウドサービスを選択します。
        • [Beta] Yandexを選択します。
          1. バケット名、アクセスキー、シークレットキーを入力します。
          2. バケットパスが無効であることを示すエラーメッセージなどが表示されないことを確認します。
          3. この接続をAdobe Experience Platformと互換性を持たせるかどうかを選択します。
          4. 保存をクリックしてください。
          5. コストETLセットアップで、接続ドロップダウンで、作成したクラウドサービスを選択します。
        • BigQueryを選択します。
          1. BigQueryプロジェクトIDとデータセット名を入力します。
          2. 接続テストをするをクリックしてください。
          3. バケットパスが無効であることを示すエラーメッセージなどが表示されないことを確認します。
          4. 保存をクリックしてください。
          5. コストETLセットアップで、接続ドロップダウンで、作成したクラウドサービスを選択します。
        • Snowflakeを選択してください。
          1. Snowflake地域とアカウントIDを入力します。
          2. 接続テストをするをクリックしてください。
          3. バケットパスが無効であることを示すエラーメッセージなどが表示されないことを確認します。
          4. 保存をクリックしてください。
          5. コストETLセットアップで、接続ドロップダウンで、作成したクラウドサービスを選択します。
  3. 次へをクリックしてください。
  4. レポートのバージョンスケジュール(UTC)を設定:
    1. 毎日受信するレポートの数(1、2、3、4)を選択します。
    2. レポートを受け取る時間を選択します。詳細はこちら
    3. 次へをクリックしてください。
  5. レポートの詳細を設定する:
    1. ピボットに含めるアプリを1つ以上選択します。今後追加されるすべてのアプリを選択すると、自動的に今後追加するアプリも含まれるようになります。
    2. 分析ニーズに最も適したレポートを選択してください。レポートタイプセクションの説明を参照してください。
      • サマリーレポートはデフォルトで選択されています。
      • すべてのコストレポートを受け取るには、国別レポートを選択する必要があります。
    3. レポートに含めるディメンションを選択します。注意:Geoレポートの受信を選択した場合、デフォルトでGeoディメンションが含まれます。チャネルレポートの受信を選択した場合、デフォルトでチャネルディメンジョンが含まれます。 
    4. レポートに含める指標を選択します。 
  6. 適用をクリックします。

接続の編集または変更

接続を編集または変更することで、データを別の(または追加の)場所に送ることができます。 

注意:既存の接続に切り替えた後、以前のコストETL接続に戻すことはできません。

接続の編集

接続の詳細を編集する:

  1. AppsFlyer管理画面 左メニュー エクスポート > コストETLへ移動します。
  2. データ接続セクションで:
    • Data Locker接続の場合、接続ドロップダウンで編集したい接続にカーソルを合わせます。接続の詳細が表示されます。 Data Lockerの編集をクリックします。
    • コストETL接続の場合は、接続の詳細ドロップダウンをクリックします。接続の詳細が表示されます。
  3. 画面の指示に従って、接続の詳細を編集します。
  4. プロンプトが表示されたら、変更を保存 または 適用をクリックします。

Data Lockerの接続を変更する

Data Lockerの接続を別の接続に変更する:

  1. AppsFlyer管理画面 左メニュー エクスポート > コストETLへ移動します。
  2. データ接続セクションで:
    • すでにData Locker接続が設定されている場合は、接続ドロップダウンでコストETLに必要な接続を選択します。
    • ご希望のデータ接続がまだ設定されていない場合は、Data Lockerの +新しい接続をクリックし、そこで接続を作成します。その後、コストETL設定に戻り、接続ドロップダウンから選択します。
  3. 変更を保存をクリックします。

コストETLからData Locker接続への変更

はじめる前に

  • Data Locker接続に切り替え後は、以前のコストETL接続に戻すことはできません。
  • Data Locker接続に切り替えると、フォルダーパス構造が次の形式に変更され、レポートデータには影響しません: 

    ///t=/dt=/v=<1/2/3/4>/

非推奨のコストETL接続からData Locker接続に変更するには:

  1. AppsFlyer管理画面 左メニュー エクスポート > コストETLへ移動します。
  2. データ接続セクションで、Data Locker接続をクリックします。
  3. Data Lockerの接続を設定するには、以下のいずれかを行ってください:
    • すでに必要なデータ接続が設定されている場合は、接続ドロップダウンでコストETLに必要な接続を選択します。
    • ご希望のData Locker接続がまだ設定されていない場合は、Data Lockerの+ 新しい接続をクリックし、そこで接続を作成してください。その後、コストETL設定に戻り、接続ドロップダウンから選択します。
  4. 変更を保存をクリックします。

AWSオブジェクトの所有権

AWSでは、デフォルトで、AppsFlyerがオブジェクトをバケットに書き込む場合、そのオブジェクトのオーナーはAppsFlyerです。データ取り込みプロセスによっては、デフォルトの所有権をあなた(バケット所有者)に変更する必要がある場合があります。  

自社バケットのオブジェクトの所有権を変更する方法:

  1. AWS Management Consoleにサインインし、Amazon S3 console https://console.aws.amazon.com/s3/ を開いてください。
  2. Bucketsリストにて、S3 Object Ownershipを有効にしたいバケット名を選択してください。
  3. 権限タブへ進んでください。
  4. Object Ownership で Edit をクリックしてください。
  5. Bucket owner preferred を選択してください。
  6. 保存をクリックしてください。

ベストプラクティス

レポート購読

レポートのスケジュール設定により、必要な時に新鮮なデータを入手することができます。 

レポートのスケジュールを選ぶ際には - 

  • BIシステムでデータ処理を開始する時刻にできるだけ近いレポートを取得する時刻を選択します。
  • 前日のデータを他より遅れて提供するアドネットワークがある場合は、そのアドネットワークのデータが準備できた時点で追加レポートを設定します。

データの上書き

データを取得し分析する際は、特定の日付とバッチのデータを取得するか、全ての過去のデータを現在のバッチのデータで上書きすることをお勧めします。そうしないと、同じデータが繰り返し表示される可能性があります。

例:2月20日のバッチ1には2月14-20日のデータが含まれています。しかし、2月19日に書かれたバッチにも、2月14日~2月19日のデータが含まれています。 2月19日に受信した以前のデータを、直近の2月20日のバッチで受信したデータで上書きします。

Geo versus channel

全てのネットワークが全てのディメンションのデータを一緒に提供しているわけではありません。 Meta Adsの地域データやチャネルデータは、その代表的な例です。 2つの別々のデータセットが提供されるのは、このためです。地域データセットには地域データが、チャネルデータセットにはチャネルデータが含まれることが保証されています。

多くの場合、大部分のメディアソースでは、地域とチャネルデータは同じになります。そのため、ビジネスニーズに応じて、いずれかのデータセット(地域またはチャネル)を取り込んでください。

メディアソースとの連携に関する契約にチャネルが含まれておらず、チャネルが空白の場合、そのデータにチャネルが含まれているものとして扱います。 

集計データ

コストETLは、アドネットワークから抽出できる最も粒度の細かい、柔軟なデータを提供します。このような膨大な量のデータから実用的なインサイトを引き出すには、ビジネスニーズに最適な方法でデータを集約することをお勧めします。例えば、キャンペーンおよび国レベルでコストデータを理解する必要がある場合は、これらのディメンションを使用してください。

ネットワーク全体の標準化

すべてのネットワークが同じ粒度のデータを提供するわけではありません。例:Meta AdsはサイトIDレベルのコストデータを提供しません。コストETLデータを集計する場合は、このようなケースに注意し、ネットワークを比較する時に同様のデータを確認します。

データの比較

コストETLは、お客様のすべてのコストデータに関する情報を提供します。コストETLで提供された一部のキャンペーンは、一部の AppsFlyer 管理画面に表示されません。 例えば、非アクティブなキャンペーンのデータ、つまり、 インストールが記録されていないキャンペーン です。データを比較するためには、オーバービュー管理画面で特定のキャンペーンIDを見つけ、コストETLでのコストデータと比較してください。コストデータの入手方法について詳しくはこちら

Combine Geo report and All Cost report

To get complete cost data tied with attribution for Google, Meta, TikTok (mobile and non-mobile), and other media sources (mobile only), use the following query:

with etl as (
    select *
    from etl
    where media_source = 'Facebook Ads'
      and date = '2025-07-16'
),

allcost as (
    select *
    from allcost
    where media_source = 'Facebook Ads'
      and date = '2025-07-16'
),

main as (
    select
        case when etl.date is null then 'all cost' else 'cost etl' end as report,
        coalesce(etl.date, allcost.date) as date,
        coalesce(etl.app_id, allcost.app_id) as app_id,
        etl.os,
        allcost.platform,
        coalesce(etl.media_source, allcost.media_source) as media_source,
        coalesce(etl.agency, allcost.agency) as agency,
        coalesce(etl.campaign_id, allcost.campaign_id) as campaign_id,
        coalesce(etl.campaign, allcost.campaign) as campaign,
        coalesce(etl.adset_id, allcost.adset_id) as adset_id,
        coalesce(etl.adset, allcost.adset) as adset,
        coalesce(etl.ad_id, allcost.ad_id) as ad_id,
        coalesce(etl.ad, allcost.ad) as ad,
        coalesce(etl.geo, allcost.geo) as geo,
        coalesce(etl.channel, allcost.channel) as channel,
        coalesce(etl.site_id, allcost.site_id) as site_id,
        coalesce(etl.ad_account, allcost.ad_account) as ad_account,
        coalesce(etl.keyword_id, allcost.keyword_id) as keyword_id,
        coalesce(etl.keywords, allcost.keywords) as keywords,
        coalesce(etl.campaign_objective, allcost.campaign_objective) as campaign_objective,
        coalesce(etl.af_cost_model, allcost.af_cost_model) as af_cost_model,
        coalesce(etl.bid_strategy, allcost.bid_strategy) as bid_strategy,
        coalesce(etl.af_bid_strategy, allcost.af_bid_strategy) as af_bid_strategy,
        coalesce(etl.currency, allcost.currency) as currency,
        coalesce(etl.cost, allcost.cost) as cost,
        coalesce(etl.impressions, allcost.impressions) as impressions,
        coalesce(etl.clicks, allcost.clicks) as clicks,
        coalesce(etl.installs, allcost.installs) as installs,
        coalesce(etl.re_attributions, allcost.re_attributions) as re_attributions,
        coalesce(etl.re_engagements, allcost.re_engagements) as re_engagements,
        coalesce(etl.original_cost, allcost.original_cost) as original_cost,
        coalesce(etl.reported_impressions, allcost.reported_impressions) as reported_impressions,
        coalesce(etl.reported_clicks, allcost.reported_clicks) as reported_clicks,
        coalesce(etl.reported_conversions, allcost.reported_conversions) as reported_conversions,
        coalesce(etl.ctr, allcost.ctr) as ctr,
        coalesce(etl.cvr, allcost.cvr) as cvr,
        coalesce(etl.ecpm, allcost.ecpm) as ecpm,
        coalesce(etl.cpi, allcost.cpi) as cpi,
        coalesce(etl.ccvr, allcost.ccvr) as ccvr,
        coalesce(etl.cvvr, allcost.cvvr) as cvvr,
        coalesce(etl.reported_cvr, allcost.reported_cvr) as reported_cvr,
        coalesce(etl.install_diff, allcost.install_diff) as install_diff,
        coalesce(etl.click_diff, allcost.click_diff) as click_diff,
        coalesce(etl.impression_diff, allcost.impression_diff) as impression_diff,
        coalesce(etl.ecpc, allcost.ecpc) as ecpc,
        coalesce(etl.video_25p_views, allcost.video_25p_views) as video_25p_views,
        coalesce(etl.video_50p_views, allcost.video_50p_views) as video_50p_views,
        coalesce(etl.video_75p_views, allcost.video_75p_views) as video_75p_views,
        coalesce(etl.video_completions, allcost.video_completions) as video_completions
    from etl
    full join allcost
        on etl.date = allcost.date
        and etl.app_id = allcost.app_id
        and etl.media_source = allcost.media_source
        and etl.campaign_id = allcost.campaign_id
        and etl.adset_id = allcost.adset_id
        and etl.ad_id = allcost.ad_id
        and etl.channel = allcost.channel
        and etl.geo = allcost.geo
        and etl.agency = allcost.agency
        and etl.site_id = allcost.site_id
        and etl.keyword_id = allcost.keyword_id
),

dedup as (
    select *,
           row_number() over (
               partition by date, media_source, agency, campaign_id, adset_id, ad_id, geo, channel, site_id, keyword_id
               order by report desc, cost desc
           ) as rank_for_dedup
    from main
)

select *
from dedup
where rank_for_dedup = 1;

コストETLとコホートレポートを組み合わせる

BIシステムにおいて、コストETLレポートと集計された高度なコホートレポート(またはData Locker経由の通常のコホートレポート)を組み合わせることを検討します。クリック数、インプレッション数、コスト、収益、アプリ内イベントなど、新鮮で正確なデータにより、マーケティングパフォーマンスの全体像を把握することができます。)そして、この組み合わせたデータを使って、ROASやCPAなどを求めることができます。 詳細はこちら

追加情報

特性と制限

備考 Remarks
タイムゾーン タイムゾーンが変更された場合、コストデータは変更された日と翌日に複製されます。詳細はこちら
Data freshness
  • 日中コストETLの設定時に、レポートのスケジュール、つまりレポートがいつ到着するかを設定します。レポートを構成するには、コストETLの設定を参照してください。
  • データは通常、選択した時間から1時間以内に届きます。つまり、朝6時までにレポートが届くように選択すれば、朝5時から6時の間にレポートが届きます。

注意:コストデータがバケットに到着した後、BIシステムへのさらなるデータ転送は、レポートとParquetファイルのサイズ(数KBから数 GBまで)によって大きく異なります。 

レポート項目の確認
  • Google Performance Maxキャンペーンのコストデータは含まれていません。
  • キャンペーン名の変更はサポートされていません
包括的なキャンペーンのコストデータ
  • コストETLは、キャンペーンに少なくとも1つのAppsFlyer計測コンバージョンがある場合にのみ、SKANキャンペーンのコストデータを提供します。
  • SKAN専用のコンバージョンを持つキャンペーンの場合、コストデータは次の場合にのみ利用可能です:
    • 関連するアドネットワークがTwitter (X) またはMetaであるか、または
    • 関連する広告ネットワークとの統合が非アクティブキャンペーンとしてマークされている場合(このリストの列 M= "Yes")。
CTV and PC apps support PC and CTV apps are not supported in Cost ETL reporting.
Google Web and Meta Web cost availability
 
To include cost data from Google Web (pid=googleads_int) and Meta Web (pid=metaweb_int) in the All Cost report, you must create a cost connection in the Cost tab of your Google Ads (pid=googleadwords_int) and Meta Ads (pid=facebook_int) active integrations. Without these connections Google and Meta Web cost data won’t appear in the report.