Data Clean Room(DCR)に共有するカスタムデータソースを設定します。アトリビューションデータとの照合やDCRレポートの作成に使用します。
はじめに
多くのDCRレポートでは、アトリビューションデータとカスタムデータソースのデータを照合します。この記事では、カスタムデータソースの以下の操作について説明します。
- データソースの形式の設定
- DCR内でのソースの作成
- レポート処理を開始するためのソースデータの定期的な更新
- 既存ソースの操作
事前準備
カスタムデータソースを作成する前に、以下を実施してください。
- [必須]DCRがデータを取得するクラウドサービスを設定します。次の2種類のクラウドサービスに対応しています。
- データウェアハウス:BigQuery、Snowflake
- クラウドストレージのバケット:Amazon S3(AWS)、GCS
- [任意]AppsFlyer上で入力用のデータ接続を作成し、クラウドサービスをDCRに接続します。
- 事前に接続を設定しなかった場合は、ソースの作成時に設定を求められます。
ソースの要件
ソースの作成やレポート処理のエラーを防ぐため、以下の要件を満たす必要があります。
データ形式(すべてのデータソースに適用)
ソース内のデータは、以下の要件を満たす必要があります。
-
日付と時刻:
-
形式:yyyy-MMM-dd hh:mm:ss (例:
2023-APR-18 15:30:35) - タイムゾーン:UTC
-
形式:yyyy-MMM-dd hh:mm:ss (例:
- 数値:小数点以下は最大2桁
- 文字列の長さ:最大256文字
-
使用できる文字の制限:
- フィールド名(列見出し):スペースや特殊文字は使用不可
- その他のデータ:制限なし(すべての文字を使用可能)
テーブルの列(データウェアハウス内のソースのみ)
BigQueryやSnowflakeのソーステーブルには、処理対象のデータに加えて、日付とバージョンを示す2つの列が必要です。
-
日付:
-
列見出し:
dt - 列の型:date
-
データ形式:yyyy-mm-dd(例:
2023-04-18) - その他の要件:BigQueryテーブルは、この列でパーティション分割する必要があります。
-
列見出し:
-
バージョン:
-
列見出し:
v - 列の型:string
-
データ形式:数値(例:
1、2、3、10) - 重要: DCRがこの列の新しい値を検出するたびに、レポートの新しいバージョンの作成が開始されます。レポートの完全性を確保するため、この列の値を変更する際は、必ずソーステーブルに一式のデータをすべて格納してください。
-
列見出し:
ソースの作成
ソースを作成するには、以下の手順をすべて実施する必要があります。読みやすさのため、手順を複数のタブに分けて説明しています。
以下の手順に従って、ソースを作成します。
手順1 | ソース名の指定
- Data Clean Roomの[ソース]タブに移動します。
-
[+ 新しいソース]ボタンをクリックします。
[新しいソース]ページが開きます。 - 左上にソース名を入力します。
- DCR上でソースを識別しやすい、一意の名前を指定してください。クラウド連携の場合、ファイル名と一致させる必要はありません。
- 重要:同じアカウント内の他のソースと異なる名前を指定してください。名前が重複していると、ソースを保存できません。
- ソース名の要件:
- 長さ:2~80文字
- 使用できる文字:
- 英字
(A-Z, a-z) - 数字
(0-9)。名前の先頭には使用できません。
- 英字
- 使用できない文字:
- スペース
- 上記以外の記号や特殊文字すべて
手順2 | ソースの保存場所の指定
データソースの保存場所を指定する手順:
- ソースを作成する、または作成済みの場所に対応するデータ接続を選択します。
- ソースデータの保存場所に応じて、以下の該当する手順に進みます。
BigQueryのソースの保存場所
BigQueryのソースの保存場所を指定する手順:
- ソーステーブルを含むデータセットを選択します。
- ソースデータを含むテーブルを選択します。
一覧には、データ接続の作成時に指定したBigQueryプロジェクトで利用可能なデータセットとテーブルが、それぞれ表示されます。
Snowflakeのソースの保存場所
Snowflakeのソースの保存場所を指定する手順:
- ソースデータを含む共有を選択します。
- ソーステーブルを含むスキーマを選択します。
- ソースデータを含むテーブルを選択します。
一覧には、データ接続の作成時に指定したSnowflakeアカウント内の共有、スキーマ、テーブルが、それぞれ表示されます。
クラウドストレージのバケット内のソースの保存場所
Amazon S3やGCSのソースの保存場所は、データ接続で指定したバケットと、その配下のフォルダーパスで構成されます。DCRは更新のたびに、このパスからソースファイルを読み込みます。
データ接続を指定すると、ソースの作成手順の中で、必要なフォルダーパスをAppsFlyerが自動生成できます。
- 自動生成を利用すると、簡単に設定できます。または、こちらの手順に従って手動で作成することもできます。
または
- データ接続からソースファイルの試作版を直接アップロードすることもできます。
- この場合は、さらに以下のいずれかを選択します。
- AppsFlyerによるソースのフォルダー構成の自動作成
- ソースのフォルダー構成の手動作成
- この場合は、さらに以下のいずれかを選択します。
AppsFlyerがフォルダーを生成する場合、追加で必要な情報はソースフォルダーに付ける名前のみです。これは、新しいバージョンのレポートを実行するため、毎回ソースを更新する最上位のフォルダーです。ソースフォルダーを親フォルダーの配下に作成するかどうかも指定できます。親フォルダーには、一般にinputという名前を付けます。
クラウドストレージのバケット内の保存場所を指定するには、ソースフォルダー名を入力します。
- デフォルトで表示されるソースフォルダー名は、以下のようになっています。
- 指定したソース名に基づく名前です。 DCRの命名要件を満たしていれば、フォルダー名は必要に応じて変更できます。
-
inputという親フォルダー内に生成されることを示しています。このフォルダーは、DCRにアップロードするすべてのソースの親フォルダーになります。
- inputフォルダーは必須ではありません。削除するか、DCRの命名要件に従う別の名前に変更することもできます。
- 必須ではありませんが、inputフォルダー、または別名の同等のフォルダーを用意することをおすすめします。特に、同じバケットをデータファイルのアップロード(入力)とレポートの受信(出力)の両方に使用する場合は、この構成を強くおすすめします。
重要
フォルダーパスを手動で作成した場合は、[ソースの保存場所]セクションに入力するデータ接続とパスが、作成したパスと一致していることを確認してください。
手順3 | ソースの構造の定義
DCRがレポートを作成するには、処理用に共有する各ソースのデータフィールドを、どのように使用するか指定する必要があります。ソースの構造の定義では、以下を行います。
- ソースフィールドの読み込み
-
各フィールド(列)を、以下のいずれかに分類します。
-
識別子:アプリユーザーを一意に特定するフィールドです(CUID、AppsFlyer IDなど)。
- DCRで識別子を使う主な目的は、データソースを結合し、対応するユーザーレベルのデータを照合することです。
- ディメンション:アプリユーザーを分類するための属性です(地域、インストール日、キャンペーンなど)。
-
指標:アプリユーザーに関して収集した数値データです(収益、アプリの起動回数、LTVなど)。
- 指標に分類したフィールドには、数値のみを格納できます。
-
識別子:アプリユーザーを一意に特定するフィールドです(CUID、AppsFlyer IDなど)。
ソースフィールドの読み込み
以下の該当する手順で、ソースフィールドを読み込みます。
データウェアハウスのソース
データウェアハウス(BigQuery、Snowflake)のソースからフィールドを読み込むには、ボタンをクリックします。
重要
選択したソーステーブルに、必須の日付列とバージョン列がない場合は、エラーになります。
クラウドストレージのバケットのソース
クラウドストレージのバケット(Amazon S3、GCS)のソースからフィールドを読み込むには、ソースファイルの試作版をアップロードする必要があります。
ソースの構造を定義するには、以下の方法を使用できます。
- データソースの試作版を、ローカルファイルからアップロードできます。
- この場合、AppsFlyerがソースのフォルダーパスを必ず自動作成します。
または
- データ接続からソースファイルの試作版を直接アップロードすることもできます。
- この場合は、さらに以下のいずれかを選択します。
- AppsFlyerによるソースのフォルダー構成の自動作成
- ソースのフォルダー構成の手動作成
- この場合は、さらに以下のいずれかを選択します。
以下の該当するタブの手順に従って、ソースファイルの試作版をアップロードします。
ローカルファイル
-
[ソースの構造]セクションで、
ボタンをクリックします。
- 表示されたウィンドウで、[ローカルファイルをアップロード]を選択します。
- アップロードするCSVまたはGZIPファイルを指定し、[OK]をクリックします。
データ接続(自動作成)
データ接続からファイルを読み込み、AppsFlyerでソースのフォルダー構成を自動作成する手順:
-
[ソースの構造]セクションで、
ボタンをクリックします。
- 表示されたウィンドウで、[データ接続から読み込み]を選択します。
-
[フォルダーを生成]リンクをクリックします。
- 指定したデータ接続上に、指定したソースフォルダー名を使って、必要なフォルダー構成とソースフォルダーが自動作成されます。
- 作成が完了すると、ソースフォルダーへのリンクを含む確認メッセージが表示されます。リンクをクリックし、ソースフォルダーに試作ファイルをアップロードします。
- アップロードが完了したら、[OK]をクリックします。
データ接続(手動作成)
手動で作成したフォルダー構成からソースファイルをアップロードする手順:
-
[ソースの構造]セクションで、
ボタンをクリックします。
- 表示されたウィンドウで、[データ接続から読み込み]を選択します。
- [フォルダーを生成]はクリックしないでください。代わりに、作成済みのソースフォルダーにファイルを直接アップロードします。
- アップロードが完了したら、[OK]をクリックします。
フィールドの分類
フィールドを読み込むと、AppsFlyerがファイルを分析し、すべてのデータフィールド(列)を[利用可能なフィールド]一覧に表示します。
フィールドを分類する手順:
- 左側の[利用可能なフィールド]一覧で1つ以上選択し、画面中央のボタンで識別子、ディメンション、指標のいずれかに分類します。
- 分類すると、画面右側の対応する一覧にフィールドが表示されます。
- 一覧内のフィールドは、検索バーで検索できます。
- フィールドの分類を解除するには、該当する分類の一覧で選択し、[削除]ボタンを使って[利用可能なフィールド]一覧に戻します。
- DCRレポートに含めたいフィールドをすべて分類するまで、この操作を繰り返します。
- [利用可能なフィールド]一覧のすべてを分類する必要はありません。ただし、後でレポートに使用するフィールドは、分類しておく必要があります。
-
ソースを保存する前に元データを編集し、そのフィールドを使いたい場合は、[利用可能なフィールド]一覧の下部にある[フィールドを再読み込み]リンクをクリックします。
- 再読み込みすると、[利用可能なフィールド]一覧の名前が上書きされる点に注意してください。分類済みのフィールドは、[識別子][ディメンション]または[指標]の一覧に残ります。
- 分類済みのフィールドが再読み込みしたデータにない場合も、対応する一覧には残りますが、エラーアイコンが付きます。
注意
保存後にソース内の他のフィールドも使いたい場合は、ソースの構造を編集して追加できます。
手順4 | ソースの保存
ソースを保存する手順:
- [任意]
をクリックし、ソースフィールドの形式や値の妥当性にエラーがないかを確認します。
-
[保存]をクリックしてソースを保存します。
ソースが作成され、確認メッセージが表示されます。
- ローカルファイルからアップロードした場合は、ソースの保存時にフォルダー構成が自動作成され、確認メッセージにソースフォルダーへのリンクが表示されます。
Data Clean Roomの[ソース]タブにある既存ソースの一覧に、新しいソースが表示されます。
ソースの更新によるレポート処理の開始
データソースファイルを処理してレポートを実行するには、新しいバージョンのファイルをソースフォルダーにアップロードします。日付とバージョン番号を示す入れ子のサブフォルダー内に配置し、データの場所を示すサブフォルダーをさらに1つ設けます。
AppsFlyerは、当日とその2日前までのソースファイルについて、新しいバージョンを継続的にスキャンします。ソースファイルの新しいバージョン(以下で説明する_SUCCESSファイルを含む)が見つかるたびに、レポートの新しいバージョンの作成が開始されます。
日付・バージョン別のサブフォルダー構成
サブフォルダーは、以下のように入れ子にします。
- ソースフォルダー内 --> 日付ごとに1つのサブフォルダー(日付フォルダー)
-
形式:
dt=yyyy-mm-dd/ -
例:
dt=2022-12-15/
-
形式:
- 日付フォルダー内 --> その日のバージョンごとに1つのサブフォルダー(バージョンフォルダー)
-
形式:
v=n/ -
例:
v=1/ - 注意:ファイルを1日に1回しかアップロードしない場合も、バージョンフォルダーは必要です。
-
形式:
- バージョンフォルダー内 --> データの場所を示すサブフォルダーを1つ(データフォルダー)
-
形式:
data/ - ソースファイルは、データフォルダーにアップロードします。
-
形式:
通常は、API呼び出しなどのプログラム処理により、ファイルをアップロードするたびに日付・バージョン・データの各フォルダーを自動作成します。詳しくは、クラウドサービスのAPIリファレンスをご覧ください:AWS、GCS。
_SUCCESSファイル
データフォルダーへのアップロードが完了したら、バージョンフォルダーに_SUCCESSという名前の空ファイルをアップロードします。これにより、処理できる新しいファイルがあることをAppsFlyerに知らせます。通常は、APIスクリプトでこのファイルを自動生成・アップロードします。
重要: _SUCCESSファイルは、データフォルダーの外側にあるバージョンフォルダーにアップロードする必要があります。
_SUCCESSファイルの命名要件:
- 英字はすべて大文字にする
- 先頭にアンダースコア
(_)を付ける - 拡張子を付けない
分割GZIPファイルの場合:
- すべてのパートに対して、
_SUCCESSファイルを1つだけアップロードします。 - すべてのパートのアップロードが完了してから、
_SUCCESSファイルをアップロードしてください。
ファイルのアップロード後の例
2日間にわたり、日付・バージョン・データの各フォルダーと_SUCCESSファイルをプログラムで作成してソースファイルをアップロードすると、バケット内は以下のような構成になります。
既存ソースの操作
既存ソースには、以下の操作を行えます。 Data Clean Roomの[ソース]タブから操作を開始します。
ソース名の編集
ソース名を編集する手順:
- Data Clean Roomの[ソース]タブに移動します。
- ソース一覧で、編集するソースの行にカーソルを合わせます。
- 行の右側に表示される編集ボタン
をクリックします。
- [ソースを編集]ページで名前を変更します。
- [保存]ボタンで新しい名前を保存するか、[キャンセル]で変更を取り消します。
ソースの構造の編集
ソースの構造を編集する手順:
- Data Clean Roomの[ソース]タブに移動します。
- ソース一覧で、編集するソースの行にカーソルを合わせます。
- 行の右側に表示される編集ボタン
をクリックします。
- [ソースを編集]ページの右側に、分類済みのフィールドが識別子、ディメンション、指標の各一覧に表示されます。
- ソースファイルからフィールドを再読み込みしなくても、分類を変更できます。以下の操作を行います。
- まず、現在の分類の一覧でフィールドを選択し、[削除]ボタンで[利用可能なフィールド]一覧に戻します。
- 次に、[利用可能なフィールド]一覧でそのフィールドを選択し、画面中央のボタンで識別子、ディメンション、指標のいずれかに分類します。
- 未分類のフィールドを使用するには、ソースの保存場所またはローカルファイルから再読み込みする必要があります。[利用可能なフィールド]一覧の下部にある[フィールドを再読み込み]リンクから、読み込み元を選択します。
- AppsFlyerがファイルを分析し、未分類のデータフィールド(列)をすべて[利用可能なフィールド]一覧に表示します。
- 分類済みのフィールドは、画面右側の識別子、ディメンション、指標の各一覧に残ります。
- 分類済みのフィールドが再読み込みしたファイルにない場合も、対応する一覧には残りますが、エラーアイコンが付きます。
- 左側の[利用可能なフィールド]一覧で1つ以上選択し、画面中央のボタンで識別子、ディメンション、指標に分類します。
- 必要な変更を行ったら、[保存]ボタンで新しい構造を保存するか、[キャンセル]で変更を取り消します。
重要
このソースを使用するレポートにも、新しいソース構造に対応する変更を反映してください。
- 削除、分類解除、分類変更を行ったフィールドは、それを使用するすべてのレポートから自動的に除外されます。
- 追加・分類したフィールドは、既存レポートには自動で追加されません。レポートの定義を編集して追加する必要があります。
ソースの削除
- Data Clean Roomの[ソース]タブに移動します。
- ソース一覧で、削除するソースの行にカーソルを合わせます。
- 行の右側に表示される削除ボタン
をクリックします。
- ダイアログで、ソースの削除を確定します。
- レポートで使用されているソースは削除できません。該当する場合は、そのソースを使用しているレポートの一覧がメッセージに表示されます。ソースを削除するには、以下のいずれかを行います。
- そのソースを使用するレポートを削除する
- そのソースのフィールドを、使用しているレポートの定義から除外する
- レポートで使用されているソースは削除できません。該当する場合は、そのソースを使用しているレポートの一覧がメッセージに表示されます。ソースを削除するには、以下のいずれかを行います。
リファレンス
ストレージバケットのフォルダー構成の手動作成(手動で作成する場合のみ)
通常は、ソースの作成時にAppsFlyerの自動生成を利用すると、簡単に必要なフォルダー構成を作成できます。手動で作成したい場合は、以下の手順を使用できます。
DCRキーフォルダーの作成
セキュリティを確保するため、バケット直下のDCRキーフォルダーには、アカウントに割り当てられた8文字の英数字のDCRキーを名前として使用する必要があります(例:01bcc5fb)。 AppsFlyerアカウントに紐づく他のパスワードやキーとは異なる点に注意してください。
DCRキーフォルダーは通常、使用するクラウドサービスの管理画面で手動作成します。
アカウントのDCRキーを取得するには、DCRメインページ上部の[DCRキー]ボタンをクリックします。
DCRキーフォルダーを作成すると、バケット内は以下のような構成になります。
最上位の入力フォルダー
必須ではありませんが、DCRキーフォルダーの直下に、入力用の最上位フォルダーを作成することをおすすめします。 DCRにアップロードするファイル専用のフォルダーです。
通常は、使用するクラウドサービスの管理画面で手動作成します。
- 同じバケットをデータファイルのアップロード(入力)とレポートの受信(出力)の両方に使用する場合は、特にこの構成をおすすめします。
-
DCRの命名要件に従っていれば、任意の名前を指定できます。識別しやすいよう、通常は
input/という名前にします。
最上位の入力フォルダーを作成すると、バケット内は以下のような構成になります。
データソースごとの第2階層のフォルダー
処理するデータソースファイルは、複数種類を定期的にDCRにアップロードできます。データソースごとに、個別のデータソースフォルダーを割り当てる必要があります。
たとえば、BI-data.csvとCRM-data.gzipの2ファイルを毎日アップロードする場合は、それぞれにフォルダーを割り当てます。フォルダー名は、たとえばBI-data/とCRM-data/とします。
データソースフォルダーは通常、使用するクラウドサービスの管理画面で手動作成します。
データソースフォルダーを2つ作成すると、バケット内は以下のような構成になります。
各データソースフォルダーの配下には、ソースを更新するたびに、日付・バージョン別のサブフォルダーを作成する必要があります。