[ベータ] Data Clean Room - クラウドストレージとデータファイルのセットアップ

beta_feature.png

概要: AppsFlyerのデータクリーンルームで使用するクラウドサービスバケット、フォルダーパス、およびファイルの設定方法を説明します。バケットは、AWS S3, GCS, またはその両方に配置できます。

概要

AppsFlyerのData Clean Room (DCR) を使用すると、広告主はファーストパーティのユーザーレベルのデータを AppsFlyerのユーザーレベルのアトリビューションデータと照合して強化することで、その価値を活用できます。結果として得られる集計レポートは、ユーザーのプライバシーを維持しながら、広告主がこの結合されたデータのみが提供できる貴重なインサイトを提供します。

DCRを使用する準備には、クラウドサービスストレージをセットアップし、アップロードするデータファイルが正しくフォーマットされ、DCRに送信されることを確認する必要があります。

クラウドサービスストレージ

クラウドサービスストレージは、AppsFlyerのData Clean Room (DCR) により、2つの主な目的で使用されています。

  • インプット: AppsFlyerがBIシステムによって生成されたファーストパーティデータファイルを読み取る場所
  • アウトプット: DCR 処理後にAppsFlyer がレポートを配信する宛先

これらの目的に (AWS、GCS、またはその両方で) 1つ以上のバケットを使用できます。
ただし、ほとんどの場合、最も管理しやすい構造には次のものが含まれます:

  • 1 つのクラウドサービス上の 1つのバケット
  • バケットのすぐ下にある DCRキーによって識別されるフォルダー
  • 最上位フォルダの下に2つの別々のフォルダパス:1つはインプット用、もう1つはアウトプット用

この記事では、この構造体を作成する手順について説明します。

DCRの名称設定の要件

次の名称設定要件は、すべてのDCR データエンティティ(バケット、フォルダ、およびファイル)に適用されます。

  • 最大文字数: 200 文字
  • 利用可能な有効文字:
    • 半角アルファベット - (A-Z, a-z)
    • 数字 (0-9) - 名前の最初の文字にすることはできません
    • ハイフン (-) - 名前の最初の文字にすることはできません
  • 無効な文字:
    • スペース
    • その他すべての記号または特殊文字
  • 特別な目的にのみ使用される文字:

 注記

AWSとGCS は、各フォルダー名の末尾にスラッシュ (/) を自動的に追加します。バケットやフォルダに名前を付けるときは、この文字を含めないでください。

バケットの作成

バケットは、以下のタブで説明するように、選択したクラウドサービスのインターフェイスを使用して作成されます。

次の要件は、両方のクラウドサービスのバケットに関連しています。

  • バケット名:
    • バケット名は必ず af-dcr- で始まる必要があります。
    • 例: af-dcr-example-bucket
  • 追加事項:
    • AppsFlyerのDCRサービスには、バケット権限を付与する必要があります。これらのアクセス許可を付与する手順については、以下の各クラウドサービスのタブを参照してください。
    • バケットは、AppsFlyerのData Clean Room専用のものである必要があります。つまり、他のサービスはバケットにデータを書き込むことができません。

AWSバケット

注意: 次の手順は、AWS管理者が実行する必要があります。

バケットを作成し、AppsFlyerに権限を付与する方法:

  1. AWSコンソールにサインインします。
  2. S3サービスへ進みます。
  3. バケットを作成する:
    1. [Create Bucket] をクリックします。
    2. 前述の通り、バケット名af-dcr-で開始し、その後にテキストを入力します。
    3. [Create Bucket] をクリックします。
  4. AppsFlyerバケットのアクセス許可を付与するには:
    1. 作成したバケットを選択します。
    2. Go to the Permissions tab. 
    3. バケットポリシー セクションにて、[編集] をクリックします。 「バケットポリシーの編集」 ウィンドウが開きます。
    4. 次のコードスニペットをウィンドウに貼り付けます。
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Sid": "AF_DataLocker_Direct",
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::195229424603:user/product=dcr-reporter__envtype=prod__ns=default"
            },
            "Action": [
              "s3:GetObject",
              "s3:ListBucket",
              "s3:DeleteObject",
              "s3:PutObject"
            ],
            "Resource": [
              "arn:aws:s3:::af-datalocker-my-bucket",
              "arn:aws:s3:::af-datalocker-my-bucket/*"
            ]
          }
        ]
      }
      
  5. スニペットで、(表示される2行の中に)作成したバケットの名前に置き換え af-dcr-mybucket と置き換えます。
    注意!スニペット内のバケット名を置き換えるときは、/*を上書きしないようご注意ください。バケット名が表示される 2 行目に表示されます。

  6. 変更を保存をクリックします。

GCSバケット

注意: 次の手順は、Google Cloudの管理者が実行する必要があります。

バケットを作成し、AppsFlyerに権限を付与する方法:

  1. GCSコンソールにサインインします。
  2. クラウドストレージブラウザページに移動します。
  3. バケットを作成する:
    1. [バケットを作成] をクリックします 
    2. バケット作成ページでバケット情報を入力します。
      前述の通り、バケット名は、テキスト af-dcr- で始め、その後にテキストを付けます。
    3. [次へ] をクリックします。
    4. 作成をクリックしてください。
  4. AppsFlyerバケットのアクセス許可を付与するには:
    1. 作成したバケットを選択します。
    2. Go to the Permissions tab. 
    3. [アクセス許可] セクションで、[ + 追加 ] をクリックします
      メンバーの追加画面が開きます。
    4. [新しいメンバー] ボックスに、次のスニペットを貼り付けます。
      appsflyer-dcr@dcr-report.iam.gserviceaccount.com
    5. 役割リストから、クラウドストレージ > ストレージ管理者(アドミン)を選択します。

      dcr_gcs_permissions.png

    6. [保存] をクリックします。

DCR キーフォルダの作成

最大限のセキュリティを確保するには、バケットの直下のフォルダ ("DCRキー") に、アカウントに割り当てられた 8文字の英数字の DCRキー の名前を付ける必要があります。(例: 01bcc5fb
これは、AppsFlyerアカウントに関連付けられている他のパスワードやキーとは異なりますのでご注意ください。

DCR キーフォルダーは、通常、選択したクラウドサービスのインターフェイスを使用して手動で作成されます。

DCRキーを入手するには、担当のカスタマーサクセスマネージャーへご連絡ください。

 

DCRキーフォルダを作成すると、バケット/フォルダ構造は次のようになります。

af-dcr-example-bucket/01bcc5fb/

インプットフォルダー パスの作成

インプット用フォルダーパスの各要素を作成するための詳細な要件については、以下のタブで説明します。

最上位のインプット用フォルダー

必須ではありませんが、ベストプラクティスは、DCRキーフォルダーのすぐ下に最上位のインプット用フォルダーを作成することです。このフォルダは、DCRにアップロードするファイル専用です。

最上位のインプット用フォルダーは、通常、選択したクラウドサービスのインターフェイスを使用して手動で作成されます。

  • この方法は、データファイルのアップロード (入力) とレポートの受信 (出力) の両方に同じバケットを使用している場合には、さらに強くお勧めします。
  • このフォルダーには、DCRの名称設定要件に準拠している限り、任意の名前を付けることができます。識別を容易にするために、通常は input/ という名前が付けられています。

 

最上位のインプット用フォルダを作成した後、バケット/フォルダ構造は次のようになります:

af-dcr-example-bucket/01bcc5fb/input/

各データソースの第2レベルのフォルダー

処理のために、さまざまなデータソースファイルを定期的に DCRにアップロードできます。これらの各データソースには、個別のフォルダ(「データソースフォルダ」)を割り当てる必要があります。

例: 毎日処理するために DCRに2つのファイルをアップロードして処理する予定の場合: BI-data.csv および CRM-data.gzip
これらの各データソースにフォルダを割り当てます。これらのフォルダを BI-data/、そしてCRM-data/ と呼ぶことを選択できます。

データソースフォルダは、通常、選択したクラウドサービスのインターフェイスを使用して手動で作成されます。

 

2つのデータソースフォルダを作成した後、バケット/フォルダ構造は次のようになります。

af-dcr-example-bucket/01bcc5fb/input/BI-data/
                                     CRM-data/

日付とバージョンごとにネストされたサブフォルダー

私たちはついに、実際のアクションが起こるフォルダ構造の部分、つまりAppsFlyerがDCRに読み込む新しいデータファイルを継続的に検索するフォルダにたどり着きました。

AppsFlyer でデータソースファイルを処理してそれに基づいてレポートを実行するたびに、日付とバージョン番号を示す一連の入れ子になったサブフォルダー(さらに、AppsFlyer にデータの場所を知らせるための 1 つの追加のサブフォルダー)内の、新しいバージョンのファイルをデータソースフォルダーにアップロードします。

  • 各データソースフォルダ内 --> 各日付ごとに1つのサブフォルダ(「日付フォルダ」)
    • 形式: dt=yyyy-mm-dd/
    • 例: dt=2022-03-10/
  • 各日付フォルダ内に --> その日付の各バージョンごとに1つのサブフォルダ(「バージョンフォルダ」)が存在します
    • 形式: v=n/
    • 例: v=1/
    • 注意: バージョンフォルダーは、ファイルを 1日に 1回だけアップロードする場合でも必要です。
  • 各バージョンフォルダ内に --> データの場所を示す1つのサブフォルダ(「データフォルダ」)を格納します
    • 形式: data/

ほとんどの場合、API呼び出しまたはその他のプログラムによる手段を使用して、データソースファイルがアップロードされるたびに日付 / バージョン / データフォルダーを自動的に作成します。
詳細については、クラウドサービスのAPIリファレンス(AWSGCS)を参照してください。

完全なフォルダー構造は、ファイルのアップロード時にプログラムによって作成されるため、現実的な例にはフォルダーとファイルの両方が含まれます。下の [ファイル] タブのこの図を参照してください。

ファイル

データソースファイル

アップロードされるデータソースファイルは、次の名前、ファイル形式、および場所の要件を満たしている必要があります:

  • DCR名称設定要件に準拠している必要があります。
  • CSV または GZIP 形式 (GZIP圧縮の基になるファイルは、CSVファイルである必要があります。)
  • データフォルダ毎のデータソースファイル数:
    • CSV: 最大 1
    • GZIP: 最大 1つの単一部分ファイル
      マルチパート GZIPファイルは、次のように指定した場合にサポートされます:filename_part01.gzip, filename_part02.gzipなど

ソースファイル内のデータは、次の要件を満たしている必要があります:

  • 日時:
    • 形式: yyyy-MM-dd hh:mm:ss
    • 時間: UTC時間
  • 数値: 小数点以下 最大2桁まで
  • 文字列の長さ: 最大256 文字(半角)
  • 文字制限: なし (すべての文字が有効)

 

_SUCCESS ファイル

データソースファイルのデータフォルダへのアップロードが完了したら、名前 _SUCCESS の空のファイルをバージョンフォルダにアップロードする必要があります。
これにより、新しいファイルを処理できることが AppsFlyer にアラートされます。ほとんどの場合、APIスクリプトを使用して、このファイルを自動的に生成してアップロードします。

重要:_SUCCESS ファイルは、データフォルダーの外側に存在するバージョンフォルダーにアップロードされます。

ファイル名:

  • すべて大文字にする必要があります
  • 前にアンダースコアを付ける必要があります (_)
  • ファイル拡張子は含まないでください

マルチパートファイルの場合:

  • すべてのファイルパートに対してアップロードされる _SUCCESSファイルは1つのみです。
  • _SUCCESS ファイルは、すべてのファイル部分のアップロードが完了した後にのみアップロードされます。

 

ソースデータファイルを2日間アップロードした後(そしてプログラムで日付 / バージョン / データフォルダと _SUCCESS ファイルを作成した後)、バケット / フォルダ構造は次のようになります:

af-dcr-example-bucket/01bcc5fb/input/BI-data/
dt=2022-03-10/
v=1/
_SUCCESS
data/
BI-data.csv
dt=2022-03-11/
v=1/
_SUCCESS
data/
BI-data.csv CRM-data/
dt=2022-03-10/
v=1/
_SUCCESS
data/
CRM-data_part01.gzip
CRM-data_part02.gzip
v=2/
_SUCCESS
data/
CRM-data_part01.gzip
CRM-data_part02.gzip
dt=2022-03-11/
v=1/
_SUCCESS
data/
CRM-data_part01.gzip
CRM-data_part02.gzip
v=2/
_SUCCESS
data/
CRM-data_part01.gzip
CRM-data_part02.gzip

アウトプット用フォルダパスの作成

アウトプット用フォルダパスの各要素を作成するための詳細な要件については、以下のタブで説明します。

最上位アウトプット用フォルダ

必須ではありませんが、ベストプラクティスは、DCR キーフォルダーのすぐ下に最上位のアウトプット用フォルダーを作成することです。このフォルダは、DCRによって配信されるレポート専用になります。

最上位のアウトプット用フォルダーは、通常、選択したクラウドサービスのインターフェイスを使用して手動で作成されます。

  • この方法は、データファイルのアップロード (入力) とレポートの受信 (出力) の両方に同じバケットを使用している場合には、さらに強くお勧めします。
  • このフォルダーには、 DCRの名称設定要件に準拠している限り、任意の名前を付けることができます。識別を容易にするために、通常は output/ という名前が付けられています。

 

最上位のアウトプットフォルダを作成した後、バケット/フォルダ構造は次のようになります:

af-dcr-example-bucket/01bcc5fb/output/

各レポートの第2レベルフォルダー

DCRからカスタム設計のレポートをいくつでも定期的に受け取ることができます。これらの各レポートには、個別のフォルダー(レポートフォルダー)を割り当てる必要があります。

例:DCRから2つのレポートを受信する場合: コンバージョンレポートリターゲティングレポート) - これらのデータソースのそれぞれにフォルダーを割り当てます。
これらのフォルダ conversions/retargeting/と呼ぶことを選択できます。

レポートフォルダは、通常、選択したクラウドサービスのインターフェイスを使用して手動で作成されます。

 

2つのレポートフォルダを作成すると、バケット/フォルダ構造は次のようになります:

af-dcr-example-bucket/01bcc5fb/output/conversions/
                                      retargeting/

日付とバージョンごとにネストされたサブフォルダー(お客様が作成したものではありません)

インプット用フォルダパスとは異なり、アウトプット用フォルダパスにはネストされた日付/バージョンフォルダを作成しません。
AppsFlyerは、レポートが配信されるたびにこのフォルダ構造を自動的に作成します。

レポートファイル形式

DCRレポートはCSV形式で配信されます。

この記事は役に立ちましたか?