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

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

  • 更新

概要:AppsFlyer ROI360のコストETLでは、メディアソースごとに取得できる最も詳細なキャンペーン広告費データを、広告主に提供します。データは1日最大4回更新され、広告主のBIシステムに取り込める形式でクラウドサービスに配信されます。

5896_CostETL_graphic__2_.png

AppsFlyer ROI360のコストETLでは、メディアソースごとに取得できる最も詳細なキャンペーン広告費データを、広告主に提供します。データは1日最大4回更新され、広告主のBIシステムに取り込める形式で、Data Lockerの配信先クラウドサービスに送信されます。

複数のクラウド配信先に、同時にレポートを送信することも簡単にできます。複数のサービスでデータを同時に利用できるため、クラウドサービスを移行する際にも役立ちます。

コストETLレポートには、AppsFlyerのアトリビューションに紐づく広告費データと、インストール数、リアトリビューション数、リエンゲージメント数などのアトリビューション指標が含まれます。 

4種類のコストETLレポート

分析の目的に応じて、4種類のコストETLレポートを利用できます。

  • サマリーレポート:(デフォルト)メディアソース別に集計した、広告費の概要データ。広告費と成果指標の全体的な傾向を分析する場合に推奨します。
  • 国別レポート:(任意)US、CA、FRなど、2文字の国コードで国別に分類した広告費データ。地域ごとの成果と広告費の分析に推奨します。
  • チャネル別レポート:(任意)YouTubeやショッピングなど、チャネル別に分類した広告費データ。チャネルごとの成果と広告費の分析に適しています。
    サンプルファイルを確認
  • 全広告費レポート:アドネットワークから直接取得した、モバイルおよびモバイル以外の広告費データをまとめたレポートです。アトリビューションデータは含まれません。現在は、Google広告、Meta広告、TikTokに対応しています。
    サンプルファイルを確認

     注意

    全広告費レポートでGoogle広告とMeta広告のデータを受信するには、AppsFlyerの担当者にお問い合わせください。

コストETLレポートの種類と概要

  サマリー 国別 チャネル別 全広告費レポート
レポートの取得方法 コストETLを有効にします。サマリーレポートはデフォルトで選択されています。 コストETLを有効にし、国別レポートを選択します。 コストETLを有効にし、チャネル別レポートを選択します。 コストETLを有効にし、国別レポートを選択します。(コストETLページに、全広告費レポート専用の選択項目はありません)
レポートの保存先 選択したクラウド接続サービスによって異なります。 Summaryフォルダー、または専用のテーブルに保存されます。 選択したクラウド接続サービスによって異なります。 Geoフォルダー、または専用のテーブルに保存されます。 選択したクラウド接続サービスによって異なります。 Channelフォルダー、または専用のテーブルに保存されます。 選択したクラウド接続サービスによって異なります。 All Costフォルダー、または専用のテーブルに保存されます。
対象となる広告費の種類

モバイルの広告費:制限なし。
CTVとWebの広告費:次の条件を満たすものに限定されます。
 

  1. コンバージョンが1件以上あるキャンペーン
  2. 広告費の取得元がInCost API、コストインポート、CPIのいずれかであること
サマリーと同じ。 サマリーと同じ。 Google広告、Meta広告、TikTokのモバイル、Web、CTV、PC、ゲーム機の広告費。
対応するメディアソース 制限なし 制限なし 制限なし
  • TikTok:データが自動的に追加されます。
  • GoogleとMeta:有効化するには担当のCSMにお問い合わせください。
スキーマの詳細度 コストETLの設定内容によって異なります。

コストETLの設定内容によって異なります。


Metaでは、channelディメンションに値が入りません。

コストETLの設定内容によって異なります。


Metaでは、geoディメンションに値が入りません。

コストETLの設定内容によって異なります。

Metaでは、channelディメンションは非対応です。
プラットフォーム:キャンペーンの配信先(モバイル、デスクトップ、タブレットなど)を表す、アドネットワークから取得する新しいディメンション。

アトリビューションデータ 対応 対応 対応

非対応。


コストETLスキーマにアトリビューション指標を含めるよう設定している場合、その値は0と表示されます。

アプリID アドネットワークがアプリID単位のデータに対応していない場合、アトリビューションデータからアプリIDを取得します。 サマリーと同じ。 サマリーと同じ。

アドネットワークから取得します。


アプリIDが報告されていない場合、値はunknownになります。

広告費の取得元 API連携(広告費API+InCost)、コストインポート、CPI サマリーと同じ。 サマリーと同じ。 API連携のみ。
CNC 対応 対応 対応 非対応。
代理店データ 対応 対応 対応
  • FacebookとMeta:非対応。
  • TikTok:AppsFlyerにアプリIDがあるキャンペーンのみ対応。
代理店手数料 対応 対応 対応 非対応。値は常に0です。
更新頻度 アドネットワークから1日6回データを収集します。
レポートは、設定に応じて1日最大4回配信できます。

レポートの詳細

データの更新・反映

キャンペーン広告費のデータは、以下の条件で書き込まれます。

  • 広告費データの確認、転送、自社システムへの読み込みに使用できるよう、クラウドサービスまたはバケットに書き込まれます。
  • コストETLの対象に選択したすべてのアプリについて、日付別・バージョン別に書き込まれます。
  • 1日最大4回書き込まれます(データは1日に複数回更新)。
  • 当日と過去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日前)のデータが含まれます。
    • 過去のデータも対象に含めることで、広告費レポートの更新や修正を反映できます。
  • アトリビューション、クリック、インプレッションのいずれかと一致する広告費が対象です。
    注意:
    • 直近7日分のデータは、メディアソースから改めて取得します。 14日前・29日前・88日前のデータは、再処理されます。
    • 過去にさかのぼって更新されるのは広告費データのみで、アトリビューションデータは更新されません。

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

クラウドサービスまたはバケットに書き込まれるデータのディレクトリ・ファイル構造は、以下のとおりです。

  • コストETLがディレクトリへの書き込みを完了すると、successファイルを作成し、完了を示します。このファイルのタイムスタンプが、常にそのディレクトリ内で最も新しいものになります。
  • フォルダー・ファイルの数は、以下のとおりです。
    • サマリー:1日あたり最大4つのバージョンフォルダー。
      • 各バージョンフォルダーには、7日分のデータを含むParquetファイルが保存されます。
    • 国別・チャネル別レポート:各レポートにつき、1日あたり最大4つのバージョンフォルダー。
      • 各バージョンフォルダーには、1から始まる番号が付いたParquet形式のデータファイルが保存されます。
    •  全広告費:geoディメンションに基づき、1日あたり最大4ファイル。

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

<client-bucket>/<DL-generated-partition>/<connection-name>/t=<report-name>/dt=<YYYY-MM-DD>/v=<1/2/3/4>/<parquet file number>

変数 内容
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ファイル番号
  • 00000から始まる連番
  • 例:part-<number>

コスト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の数値
dimension

データのディメンション:

  • geo
  • channel
file_name
  • summary
  • all-cost
Parquetファイル番号
  • 00000から始まる連番
  • 例:part-<number>

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

ファイルのフィールド

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

フィールド 補足 常に値が入るか 形式 サマリーファイルに含まれるか
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 メディアソースが報告した広告費の発生日 はい 文字列:yyyy-mm-dd ✓
geo 広告階層のディメンション いいえ ISO 3166に準拠した2文字の文字列 ✓
keyword_id ASAのキーワードID はい 文字列 -
keyword_term ユーザーがオンライン検索で使用した語句 はい 文字列  -
media_source 広告を表示したメディアソース はい 文字列 ✓
original_bid_amount キャンペーン設定情報を構成する項目。詳細はこちら いいえ 整数 -
original_currency 通貨換算前の、アドネットワークが報告した広告費の通貨 いいえ ISO-4217に準拠した3文字の文字列 -
os

端末のOS。設定される値:

  • android
  • windowsphone
  • ios
はい 文字列 -
platform キャンペーンを配信するプラットフォーム(モバイル、タブレット、デスクトップ、CTV) 全広告費レポートのみ 文字列 -
site_id パブリッシャーID いいえ 文字列  -
timezone
  • AppsFlyerにデータが保存されているタイムゾーン
  • アドネットワークが、AppsFlyerで設定したものとは異なるタイムゾーンでデータを報告することがあります。このフィールドは、AppsFlyerとアドネットワークの広告費に差異が生じる理由を把握するのに役立ちます。
はい 文字列  -

指標

フィールド 補足 常に値が入るか 形式 サマリーファイルに含まれるか
ccvr
  • コンバージョン単価
  • 計算式:広告費/(インストール数+リアトリビューション数+リエンゲージメント数)
  整数 - 
clicks
  • AppsFlyerによる計測値。
  • ユーザー獲得とリターゲティングの両方を含みます。
  • クリック総数から、Engaged clickを差し引きます。
  整数 ✓
clicks_discrepancy
  • アドネットワークとAppsFlyerの計測値の差
  • 次の場合、この指標は参照しないでください。
    • 広告費とアトリビューションが一致していない場合。
    • アドネットワークがクリック数の報告に対応していない場合。
  整数 -
cost 広告費の金額(該当する場合は代理店手数料を含む)   数値 ✓
cost_without_fees 代理店手数料を除いた広告費。 AppsFlyerによる計測値 はい 整数 -
cpi
  • AppsFlyerによる計測値
  • 計算式:広告費/インストール数
  整数 - 
ctr
  • クリック率。 AppsFlyerによる計測値
  • 計算式:クリック数/インプレッション数
いいえ 整数 -
cvr
  • コンバージョン率。 AppsFlyerによる計測値
  • 計算式:インストール数/クリック数
  整数  -
cvvr
  • 動画の完全視聴率。 AppsFlyerによる計測値
  • 計算式:動画の完全視聴数/インプレッション数
  整数 -
ecpc
  • AppsFlyerによる計測値
  • 計算式:広告費/クリック数
  整数 -
ecpm
  • AppsFlyerによる計測値
  • 計算式:(広告費/インプレッション数)×1000 
  整数 - 
fees 通常の広告費に加えて代理店が請求する手数料。 AppsFlyerによる計測値 はい 整数 -
impressions
  • AppsFlyerによる計測値。
  • ユーザー獲得とリターゲティングの両方を含みます。
  • インプレッション総数から、Engaged viewを差し引きます。

はい。

対象の指標に値がない場合は、0が設定されます。

整数 ✓
impressions_discrepancy
  • アドネットワークとAppsFlyerの計測値の差
  • 次の場合、この指標は参照しないでください。
  整数 -
installs AppsFlyerによる計測値   整数 ✓
installs_discrepancy
  • アドネットワークとAppsFlyerの計測値の差
  • 次の場合、この指標は参照しないでください。
    • 広告費とアトリビューションが一致していない場合。
    • アドネットワークがコンバージョン数の報告に対応していない場合。
  整数 -
original_cost アドネットワークが報告した、通貨換算前の通貨による広告費(該当する場合は、AppsFlyerが計算した代理店手数料を加算)   数値  -
original_cost_without_fees アドネットワークが報告した、代理店手数料を含まない元の広告費 はい 整数 -
re_attributions AppsFlyerによる計測値   整数 ✓
re_engagements AppsFlyerによる計測値   整数 ✓
reported_clicks メディアソースによる計測値   整数 ✓
reported_conversions メディアソースによる計測値   整数  
reported_cvr
  • 報告されたコンバージョン率
  • 計算式:報告されたコンバージョン数/報告されたクリック数
  整数 - 
reported_impressions メディアソースによる計測値   整数 ✓
video_25p_views 動画が25%まで再生された回数。アドネットワークの報告値   整数 - 
video_50p_views 動画が50%まで再生された回数。アドネットワークの報告値   整数 - 
video_75p_views 動画が75%まで再生された回数。アドネットワークの報告値   整数 - 
video_completions アドネットワークの報告値   整数 - 

手順

コストETLの設定

この設定は、管理者が行う必要があります。

事前準備:

コストETLの設定には、以下が必要です。

  • AppsFlyerによるデータの書き込みを許可した、設定済みのクラウドサービス。以下のクラウドサービスのうち、1つ以上を設定する必要があります。
  • コストETLの設定を完了するための、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の設定画面で、[接続]ドロップダウンから、作成したクラウドサービスの接続を選択します。
        • [ベータ版][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日に受信するレポート数(1~4回)を選択します。
    2. レポートを受信する時刻を選択します。詳細はこちら
    3. [次へ]をクリックします。
  5. レポートの詳細を設定します。
    1. レポートに含めるアプリを1つ以上選択します。今後追加するアプリも自動的に含めるには、[今後追加するすべてのアプリを含める]を選択します。
    2. 分析の目的に合ったレポートを選択します。各レポートの説明は、レポートの種類を参照してください。
      • サマリーレポートはデフォルトで選択されています。
      • 全広告費レポートを受信するには、国別レポートを選択する必要があります。
    3. レポートに含めるディメンションを選択します。注意:国別レポートを選択した場合、geoディメンションはデフォルトで含まれます。チャネル別レポートを選択した場合、channelディメンションはデフォルトで含まれます。 
    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接続に切り替えると、フォルダーのパス構造が以下の形式に変わります。レポートのデータには影響しません。 

    <client-bucket>/<DL-generated-partition>/<connection-name>/t=<report-name>/dt=<YYYY-MM-DD>/v=<1/2/3/4>/

非推奨のコストETL接続からData Locker接続に切り替えるには:

  1. AppsFlyerのサイドメニューから[エクスポート]>[コストETL]に移動します。
  2. [データ接続]セクションで、[Data Locker接続]をクリックします。
  3. 次のいずれかの方法で、Data Locker接続を設定します。
    • 使用するデータ接続が設定済みの場合は、[接続]ドロップダウンから、コストETLで使用する接続を選択します。
    • まだ設定していない場合は、[+Data Lockerで新しい接続を作成]をクリックし、接続を作成します。その後、コストETLの設定画面に戻り、[接続]ドロップダウンから選択します。
  4. [変更を保存]をクリックします。

AWSのオブジェクト所有権の変更

AWSでは、AppsFlyerがバケットに書き込んだオブジェクトの所有者は、デフォルトでAppsFlyerになります。データの読み込み処理によっては、所有者をバケット所有者であるお客様に変更する必要があります。  

バケット内のオブジェクトの所有権を変更するには:

  1. AWS Management Consoleにログインし、https://console.aws.amazon.com/s3/からAmazon S3コンソールを開きます。
  2. [バケット]一覧で、S3 Object Ownershipを有効にするバケットの名前を選択します。
  3. [アクセス許可]タブを開きます。
  4. [オブジェクト所有者]で、[編集]をクリックします。
  5. [希望するバケット所有者]を選択します。
  6. [保存]をクリックします。

推奨事項

レポート配信スケジュール

配信スケジュールを設定すると、必要なタイミングで最新のデータを取得できます。 

レポート配信スケジュールを決める際は、以下を考慮してください。 

  • BIシステムでのデータ処理を開始する時刻に、できるだけ近い受信時刻を選択します。
  • 他の媒体より前日分のデータの提供が遅いアドネットワークがある場合は、そのデータが利用可能になる時刻にレポートの配信を追加します。

既存データの上書き

データを取得・分析する際は、特定の日付とバッチのデータを取得するか、現在のバッチに含まれる日付の既存データをすべて上書きすることを推奨します。そうしないと、同じデータが重複して表示される場合があります。

例えば、2月20日のバッチ1には、2月14日~20日のデータが含まれます。一方、2月19日に書き込まれたバッチにも、2月14日~19日のデータが含まれています。 2月19日に受信した過去の日付のデータを、2月20日の最新バッチで受信したデータで上書きしてください。

国別データとチャネル別データ

すべてのディメンションを組み合わせたデータを提供しているとは限らず、対応状況はアドネットワークによって異なります。代表的な例が、Meta広告の地域データとチャネルデータです。このため、2つのデータセットを個別に提供しています。国別データセットには必ず地域データが含まれ、チャネル別データセットには必ずチャネルデータが含まれます。

多くのメディアソースでは、国別とチャネル別のデータセットの内容は同じになります。そのため、目的に適した方のデータセット(国別またはチャネル別)を使用してください。

メディアソースとの連携契約にチャネルが含まれず、channelが空欄の場合も、チャネルを含むデータとして扱います。 

データの集計

コストETLは、アドネットワークから取得できる最も詳細な単位まで、柔軟にデータを提供します。大量になる可能性があるデータから施策に役立つ知見を得るため、ビジネスの目的に合った単位で集計することを推奨します。例えば、キャンペーン別・国別に広告費を把握したい場合は、そのディメンションで集計します。

アドネットワーク間でのデータの統一

取得できるデータの詳細度は、アドネットワークによって異なります。例えば、Meta広告はサイトID別の広告費を提供せず、X広告は地域別の広告費を提供しません。コストETLデータを集計する際は、こうした違いを考慮し、アドネットワーク間で比較するデータの条件を揃えてください。

データの比較

コストETLでは、すべての広告費データを確認できます。コストETLに含まれるキャンペーンでも、一部のAppsFlyerダッシュボードには表示されないことがあります。例えば、インストールが記録されていない非アクティブなキャンペーンなどです。比較するには、Overview dashboardで特定のキャンペーンIDを探し、その広告費をコストETLのデータと比較してください。広告費データの利用条件について詳しくはこちら

国別レポートと全広告費レポートの結合

Google、Meta、TikTok(モバイルとモバイル以外)およびその他のメディアソース(モバイルのみ)の、アトリビューションに紐づく広告費データを漏れなく取得するには、以下のクエリを使用します。

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などを算出できます。詳細はこちら

補足情報

仕様と制限事項

項目 補足
タイムゾーン タイムゾーンを変更すると、変更当日と翌日に広告費データが重複します。詳細はこちら
データの更新・反映
  • 1日に複数回更新。コストETLの設定時に、レポートを受信する時刻をスケジュールで指定します。
  • データは通常、指定した時刻の1時間前から、その時刻までの間に届きます。例えば、午前6時までに届くよう設定した場合、午前5時~6時に届きます。

注意:広告費データがバケットに届いた後、BIシステムへの転送にかかる時間は、レポートやParquetファイルのサイズによって大きく異なります。ファイルサイズは数KBから数GB以上までさまざまです。 

全広告費レポート
  • Google Performance Maxキャンペーンの広告費データは含まれません。
  • キャンペーン名の変更には対応していません。
SKANキャンペーンの広告費データ
  • コストETLでSKANキャンペーンの広告費を取得するには、そのキャンペーンに従来方式のコンバージョンが1件以上ある必要があります。
  • SKANコンバージョンのみのキャンペーンでは、次のいずれかの条件を満たす場合にのみ広告費データを取得できます。
    • 対象のアドネットワークがTwitter(X)またはMetaである場合。
    • 対象のアドネットワークの連携が、非アクティブキャンペーンに対応すると指定されている場合(この一覧のM列が「Yes」)。
CTV・PCアプリへの対応 コストETLレポートは、PCアプリとCTVアプリに対応していません。
Google Web・Meta Webの広告費データの利用条件
 
全広告費レポートにGoogle Web(pid=googleads_int)とMeta Web(pid=metaweb_int)の広告費データを含めるには、有効な連携にあるGoogle広告(pid=googleadwords_int)とMeta広告(pid=facebook_int)の広告費タブで、広告費の接続を作成する必要があります。これらの接続がない場合、GoogleとMetaのWeb広告費データはレポートに表示されません。