コストETL—バケット内の粒度の細かいキャンペーンコスト

概要: AppsFlyer Xpendの一部であるコストETLは、メディアソースごとに最高の粒度を持つキャンペーンコストデータを広告主に提供します。毎日4回更新されるデータは、AWS S3またはGCSバケットに配信され、広告主のBIシステムに読み込まれる準備ができます。

5896_CostETL_graphic.png

コストETLの原則

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

  • コストデータの表示、転送、およびシステムへのロードを行うためバケットへ配信されます。
  • 毎日4回バケットへ配信されます(更新頻度:日中)。
  • 当日と過去6日間(本記事では7日間と表記)の他、14日目、29日、88日も同様に配信できます。過去にさかのぼったデータにより、コストデータ報告の更新や訂正が可能になります。
  • アトリビューション、クリック、インプレッションと一致したコスト。
    注記
    • 過去7日分のデータは、メディアソースから新たに取得したものです。14日目、29日目、88日目のデータは再処理しています。
    • コストデータのみ遡及して更新され、アトリビューションデータは更新されません。

データは次の主なディメンションで提供されます。

  • 地域:国別の内訳
  • チャネル:メディアソースのチャネル。例えば、Googleの場合「YouTube」等

レポートに含まれる他のディメンションと指標は、必要に応じてカスタマイズできます。

サンプルファイルを見る
注意: こちらのサンプルはExcelファイルです。Cost ETLファイルはparquetファイルとしてあなたのバケットに送信されます。

実装について

レポートのディメンション

  • レポートは、コストETLに含まれる全てのアプリを対象に、1日あたり、バッチごとに配信されます。
  • データがバケットに書き込まれるたびに(1日4回)、過去6日間および、14日目、29日目、88日目の履歴、更新、修正を含む、すべての利用可能なデータが記入されます。データ格納プロセスでは、この点を考慮してください。
  • レポート構造の詳細については、ファイル項目の表をご確認ください。構造は次のとおりです。
    • サマリーレポートは、より簡単かつ迅速に取り込めるよう粒度が低くなっています。
    • ディメンションレポートには、常に含まれているプライマリーディメンションが含まれています。つまり全てのメディアソースで利用できるディメンションがこのレポートに含まれています。一方、メディアソースが主要なディメンションデータを提供していない場合、そのデータは特定のディメンションレポートには含まれません。セカンダリーディメンションが利用可能な場合は、これらも含まれていますが、これらは常に含まれているものではありません。
    • 利用可能なプライマリー(保証)は次のとおりです:
      • 地域:国別にグループ化されたデータ
      • チャネル:メディアソースのチャネル。例えば、Googleでいう「YouTube」、Facebookでいう「Instagram」等
    • ビジネスニーズに最も適したディメンションを使用してください。メディアソースにより可用性が異なる場合があります。

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

  • Bucketに書き込まれたデータは、ディレクトリとファイル構造が記述されています。サンプルファイルを見る
    注意: 提供されたサンプルはExcelファイルです。Cost ETLファイルはparquetファイルとしてあなたのバケットに送信されます。
  • Cost ETL がディレクトリへの書き込みを完了すると、 success ファイルが作成され、フラグが設定されます。これは、常にディレクトリ内の最新のタイムスタンプとなります。
  • データが書き込まれるたびに、当日と過去6日間(記事内では7日間分のデータと記載されています)、および14日間、29日間、88日間のデータが含まれます。
  • フォルダ/ファイル数は、次のとおりです。
    • サマリー:1日あたり4つのバッチフォルダ。
      • 各バッチフォルダには、7日間のデータを含むParquetファイルが含まれています。
    • ディメンション:常に含まれる各ディメンションには、1日あたり4つのバッチフォルダが含まれています。
      • 各バッチフォルダには、番号付けが1から始まるデータを含むParquetファイルが含まれています。

ディレクトリ構造の例

cost_etl_structure_4.jpg

ディレクトリ構造

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

変数

コンテンツ

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
ディメンション

データディメンション:

  • geo
  • channel
file 00001から始まる番号
ディレクトリ構造

ファイル名の構造 

part-<number>

2020年6月23日の最初のデータプルでは、ディレクトリとファイル名の構造は次のようになります。

/bucket-name/cost_etl/v1/dt=2020-06-23/b=1/geo/part-00001

ファイル項目

項目

備考

常に記入

形式

サマリーファイルに含まれる

date

メディアソースによって報告されたコストの日付

はい

String yyyy-mm-dd

app_id

AppsFlyerプラットフォームのアプリID

はい

String

media_source

広告を表示するメディアソース

はい

String

os

端末のOS
想定値:

  • android
  • Windows Phone
  • iOS

はい

String

-

agency

広告を配信する代理店

いいえ

String

-

campaign

広告階層のコンポーネント

いいえ

String

-

campaign_id

広告階層のコンポーネント

いいえ

String

-

adset

広告階層のコンポーネント

いいえ

String

-

adset_id

広告階層のコンポーネント

いいえ

String

-

ad

広告階層のコンポーネント

いいえ

String

-

ad_id

広告階層のコンポーネント

いいえ

String

ad_account

  • コストデータが取得される広告アカウント
  • oAuth(認証情報でのログイン)を使用して連携するネットワーク(例: GoogleやFacebook)に関連します

いいえ

String

-

currency

AppsFlyerでアプリに対して定義された広告主支出の通貨

はい

ISO-4217 に準拠した3文字の文字列

original_currency

変換前にネットワークから報告されたコストの通貨

はい

ISO-4217 に準拠した3文字の文字列

-

timezone

  • AppsFlyerに保存されているデータのタイムゾーン
  • ネットワークは、AppsFlyerで定義されているものとは異なるタイムゾーンでデータを報告することがあります。このデータポイントは、AppsFlyerとネットワーク間のコストの不一致を説明するのに役立ちます

はい

String型

-

geo

広告階層のディメンション

いいえ

ISO 3166に準拠した2文字の文字列

channel

広告階層のディメンション

いいえ

String

- 

keyword_term

ユーザーがオンライン検索に使用する単語

はい

String型

-

keyword_id

ASAキーワード用語のID

はい

String

-

site_id

パブリッシャーID/配信面

いいえ

String型

-

campaign_objective

キャンペーンプロパティのコンポーネント。詳細はこちら

いいえ

String型

-

cost_model

キャンペーンプロパティのコンポーネント。詳細はこちら

いいえ

String型

-

af_cost_model

AppsFlyerによってマッピングされ正規化されたコストモデル。キャンペーンプロパティのコンポーネント。詳細はこちら

いいえ

String型

-

bid_strategy

キャンペーンプロパティのコンポーネント。詳細はこちら

いいえ

String型

-

af_bid_strategy

AppsFlyerによってマッピングされ正規化された入札ストラテジー。キャンペーンプロパティのコンポーネント。詳細はこちら

いいえ

String型

-

bid_amount

キャンペーンプロパティのコンポーネント。詳細はこちら

いいえ

Integer

-

original_bid_amount

キャンペーンプロパティのコンポーネント。詳細はこちら

いいえ

Integer

-

ファイル/ディメンション

項目

備考

常に記入

形式

サマリーファイルに含まれる

impressions

  • AppsFlyerにより計測
  • UA(新規インストール)とリターゲティングの両方を含む

はい。

特定のメトリックで使用可能な値がない場合は、0が入力されます。

Integer

clicks

  • AppsFlyerにより計測
  • UA(新規インストール)とリターゲティングの両方を含む

Integer

reported_impressions

メディアソースにより計測

Integer

reported_clicks

メディアソースにより計測

Integer

installs

AppsFlyerにより計測

Integer

reported_conversions

メディアソースにより計測

Integer

 

re_engagements

AppsFlyerにより計測

Integer

re_attributions

AppsFlyerにより計測

Integer

cost

支出額(関連する場合、代理店手数料を含む)

value

original_cost

ネットワークによって報告されたコスト、通貨換算前のネットワークによってレポートされた通貨(関連する場合はAppsFlyerによって計算された代理店手数料が追加されます)

値 

-

impressions_discrepancy

  • アドネットワークとAppsFlyerでカウントされる乖離
  • 以下の場合は、この指標は無視されます:
Integer

-

clicks_discrepancy

  • アドネットワークとAppsFlyerでカウントされる乖離
  • 以下の場合は、この指標は無視されます:
    • コストとアトリビューションが一致していない場合
    • アドネットワークが、 レポートされたクリックに対応していない場合
Integer

-

installs_discrepancy

  • アドネットワークとAppsFlyerでカウントされる乖離
  • 以下の場合は、この指標は無視されます:
Integer

-

fees

代理店が通常の広告費とは別に請求する料金 (AppsFlyerにより算出)

 

Integer

-

cost_without_fees

コストから代理店手数料を差し引いた金額 (AppsFlyerにより算出)

 

Integer

-

original_cost_without_fees

広告ネットワークからレポートされた、広告代理店手数料を含まないオリジナルコスト

 

Integer

-

ctr

クリック率。AppsFlyerにより計測

 

 

 

 

いいえ

Integer

-

cvr

コンバージョン率。AppsFlyerにより計測

整数型

-

ecpm

AppsFlyerにより計測

Integer

cpi

AppsFlyerにより計測

Integer

ccvr

コンバージョン当たりのコスト

Integer

cvvr

完了したビデオ視聴率。AppsFlyerにより計測

Integer

-

reported_cvr

報告されたコンバージョン率

Integer

ecpc

AppsFlyerにより計測

Integer

-

video_25p_views

動画が25%再生されました。アドネットワークにより報告されます

Integer

video_50p_views

動画が50%再生されました。アドネットワークにより報告されます

Integer

video_75p_views

動画が75%再生されました。アドネットワークにより報告されます

Integer

video_completions

アドネットワークにより報告されます

Integer

指標

AWS S3のCost ETLのセットアップ

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

はじめる前に

  • コストETLの設定には、独自のAWSバケットの設定(そしてそれにAppsFlyerがデータを書き込む権限の付与)、およびAppsFlyerでのコストETL設定が必要です。
  • コストETLの設定を完了するには、AWSアドミン権限とAppsFlyer管理画面へのアクセス権限の両方が必要です。
  • セットアップ中は、AWSとAppsFlyerの両方にタブを開いたままにしておいてください。
  • :KMSバケット暗号化はAppsFlyerではサポートされていません。 

AppsFlyerAdmin_us-en.pngAWSバケットとコストETLの設定方法:

  1. AWSコンソールにサインインします。
  2. S3サービスへ進みます。
  3. バケットの作成方法
    1. Create bucketをクリックしてください。
    2. バケット名を次の通り入力してください:必須のpredix af-xpend-cost-etl-<af-account-id>- で始め、この後にフリーテキストのサフィックスを追加してください。
    3. Create bucketをクリックしてください。
  4. AppsFlyerにて、インテグレーション > コストETLへ進みます。
  5. コストETLを有効にしてください。
  6. レポートスケジュールにて、最初のレポートを受信するタイミングを選択してください。その後のレポートは、その後約6時間間隔で到着します。
  7. Amazon S3の設定に進みます。

  8. ドロップダウンメニューから、S3バケットの地域を選択してください。対象の地域が表示されない場合は、CSMまでお問合せください。
  9. Amazon S3バケット名を入力してください。
  10. 次へ をクリックします。
    バケットポシリーのコードスニペットが表示されます。

  11. バケットポリシーのコードスニペットをコピーし、AWSの設定画面に貼り付けてください。
    1. AWSにて、コストETL用に作成したバケットを選択してください。
    2. 権限タブへ進んでください。
    3. Bucket policy セクションにて、Edit(編集)をクリックしてください。
    4. バケットポリシー画面が開きます。
    5. バケットポリシースニペットを画面に貼り付けてください。
  12. AppsFlyerのコストETL設定にて、次へをクリックしてください。
    バケットの検証ステップが表示されます。
  13. 検証をクリックしてください。
    検証が成功しましたというメッセージが表示されることを確認してください。
  14. [次へ] をクリックします。
  15. 1つ以上または全てのアプリを選択してください。  全て を選択すると、今後追加したアプリが自動的に含まれるようになります。
  16. 適用をクリックしてください。 
  17. 少なくとも常に含まれるディメンションを一つ選択してください:チャネルおよび/または地域。
  18. 少なくとも追加のディメンションを1つ選択してください。

  19. レポートに含まれる指標を少なくとも1つ選択してください。

  20. 適用をクリックしてください。

GCSのコストETLのセットアップ

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

はじめる前に

  • コストETLの設定には、独自のAWSバケットの設定(そしてそれにAppsFlyerがデータを書き込む権限の付与)、およびAppsFlyerでのコストETL設定が必要です。
  • コストETLの設定を完了するには、AWSアドミン権限とAppsFlyer管理画面へのアクセス権限の両方が必要です。
  • セットアップ中は、AWSとAppsFlyerの両方にタブを開いたままにしておいてください。

AppsFlyerAdmin_us-en.png GCSバケットとCost ETLをセットアップする:

  1. GCSコンソールにサインインします。
  2. バケットを作成します。
    バケットに以下のような名前をつけます。
    • 必須のprefix af-xpend-cost-etl-<af-account-id>- で開始し、フリーテキストでサフィックスを追加します。
    • 御社の af-account-idは、次の手順6-8に示すように、AppsFlyer管理画面で見つけることができます。
    • 参照:GCS バケットの命名要件
  3. AppsFlyerにて、インテグレーション > コストETLへ進みます。
  4. コストETLを有効にしてください。
  5. レポートスケジュールにて、最初のレポートを受信するタイミングを選択してください。その後のレポートは、その後約6時間間隔で到着します。
  6. データ保存先 (Data destination) にアクセスし、 を選択します。
  7. GCSバケット名を入力します。
  8. 次へ をクリックします。
    GCSの権限設定に使用する、AppsFlyerのサービスアカウントが表示されます。
  9. GCS コンソールで、バケットの IAM パーミッション を設定します。
    1. AppsFlyerのサービスアカウントをCost ETLバケットのプリンシパルとして追加します。

    2. Storage Object Admin のロールを割り当てます。
  10. AppsFlyerのコストETL設定にて、次へをクリックしてください。
    バケットの検証ステップが表示されます。
  11. 検証をクリックしてください。
    検証が成功しましたというメッセージが表示されることを確認してください。
  12. [次へ] をクリックします。
  13. 1つ以上または全てのアプリを選択してください。  全て を選択すると、今後追加したアプリが自動的に含まれるようになります。
  14. 適用をクリックしてください。 
  15. 少なくとも常に含まれるディメンションを一つ選択してください:チャネルおよび/または地域。
  16. 少なくとも追加のディメンションを1つ選択してください。

  17. レポートに含まれる指標を少なくとも1つ選択してください。

  18. 適用をクリックしてください。

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. 保存 をクリックしてください。

ベストプラクティス

データの上書き

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

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

地域 vs. チャネル

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

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

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

集計データ

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

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

すべてのネットワークが同じ粒度のデータを提供するわけではありません。例えば、FacebookはサイトID別のコストデータを提供せず、Twitterは地域別のコストデータを提供していません。コストETLデータを集計する場合は、このようなケースに注意し、ネットワークを比較する時に同様のデータを確認します。

データの比較

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

特性と制限

特性 備考
タイムゾーン

タイムゾーンが変更された場合、変更当日にコストデータが複製されます。 詳細情報

データ更新頻度

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