Skip to content
Last updated

Rokt Via SFTP Export Integration

Roktは、取引時点(購入直後など)にパーソナライズされたオファーや広告を表示することを専門とするEコマースエンゲージメント・収益化プラットフォームです。

このドキュメントでは、Secure FTP(SFTP) を使用してカスタムオーディエンスリストとコンバージョンデータをアップロードすることで、Treasure Data CDPとRoktを統合する方法について説明します。ファイルベースの統合を活用することで、企業はリアルタイムAPI接続に依存せずに、主要なマーケティングデータの同期を自動化できます。

CDP統合のユースケース

CDP to Rokt: パーソナライゼーション強化のためのセグメントデータ送信

目標: CDPで構築されたオーディエンスセグメントを活用してオファーターゲティングを改善する。

ユースケース:

  • 顧客が既に所有している製品/サービスのオファーを抑制する(例:既存のクレジットカード保有者を除外)。
  • VIPまたはロイヤルカスタマーに対して高価値オファーを優先する。

Roktでオファーパーソナライゼーションを推進するためにCDP属性を使用

目標: CDP拡張属性(推測された興味、ロイヤルティスコアなど)を活用してRoktエクスペリエンスをパーソナライズする。

ユースケース:

  • 年齢層、製品親和性、解約リスクなどのCDP生成属性を使用して、Roktのオファー選択に影響を与える。

CDP to Rokt(コンバージョン)

目標: CDPからコンバージョンイベント(購入、サインアップ、キャンセルなど)をエクスポートし、ファイルアップロード経由でRoktに送信する。

ユースケース:

  • キャンペーン最適化を強化する。
  • アトリビューションの精度を向上させる。

前提条件

  • Roktアカウントマネージャーに連絡してSFTP認証情報を取得してください。
  • CDPの親セグメントにプレーンテキストメールまたはSHA-256ハッシュ化メールのいずれかが含まれていることを確認してください。

Treasure Data Integration の静的 IP アドレス

セキュリティポリシーで IP ホワイトリストが必要な場合は、接続を成功させるために Treasure Data の IP アドレスを許可リストに追加する必要があります。

リージョンごとに整理された静的 IP アドレスの完全なリストは、次のリンクにあります: https://api-docs.treasuredata.com/en/overview/ip-addresses-integrations-result-workers/

基本的な使用方法

RoktはSFTP経由で以下のインポートをサポートしています:

  • カスタムオーディエンスリスト: キャンペーンでのインクルージョンまたはエクスクルージョンターゲティング用。
  • コンバージョンデータ: キャンペーン測定、最適化、およびアトリビューション用。

詳細については、以下を参照してください:

新しい接続の作成

クエリを実行する前に、TD Consoleでデータ接続を作成および設定する必要があります。データ接続の一部として、以下の手順で統合にアクセスするための認証を提供します:

  1. TD Consoleを開きます。

  2. Integrations Hub > Catalogに移動します。

  3. SFTP_V2を検索し、Create Authenticationを選択します。

  4. 接続認証情報を提供します。

    認証フィールド

ParameterData TypeDescription
Host Requiredstringftp.rokt.com
Port Requiredstring22
User RequiredstringリモートFTPインスタンスへの接続に使用されるユーザー名
Authentication mode RequiredstringPublic / Private key pairを選択してください。
Secret key file OptionalstringRokt SFTPへのアクセスを依頼するには、Roktアカウントマネージャーにお問い合わせください。アクセスが許可されると、「You've been granted access to Rokt's SFTP server.」という件名のRoktからのメールを受信します。
Passphrase for secret key file Optionalstring一部のアルゴリズムで必要な、提供されたシークレットファイルのパスフレーズ
Retry limit Requiredint失敗した接続を再試行する回数(デフォルト10)
Timeout Requiredint接続タイムアウト(秒単位、デフォルト600)
  1. Continueを選択し、Authenticationの名前を入力します。
  2. Doneを選択します。

エクスポート用のクエリ結果の設定

TD Consoleは、データをエクスポートする複数の方法をサポートしています。Data Workbenchからデータをエクスポートするには、以下の手順を完了してください。

  1. Data Workbench > Queriesに移動します。

  2. New Queryを選択し、クエリを定義します。

  3. Export Resultsを選択し、データエクスポート設定を提供します。

  4. 既存の統合を使用するか、新しい統合を作成します。

  5. エクスポートパラメータを設定し、Doneを選択します。

    エクスポート設定パラメータ

Parameter Data Type Description

Is user directory Root?

Required

boolean

「No」を選択してください

Path prefix

Required

string

Rokt SFTPサーバーの以下のディレクトリにファイルをアップロードします:

  • Include Audience: /upload/custom-audience/include/AdvertiserDatabase/filename.csv
  • Exclude Audience: /upload/custom-audience/exclude/AdvertiserDatabase/filename.csv
  • Conversions: /upload/conversions/filename.csv

Rename file after upload finish

Required

string

選択した場合、ファイルは.tmpサフィックス付きでSFTPにアップロードされ、データ転送完了後にサフィックスが削除されます。一部のデータ統合ツールは、ファイルの存在を検出して独自のタスクをトリガーしようとします。このオプションはそのような場合に役立ちます。

Format

Required

string

  • csv - カンマ区切り(デフォルト)
  • tsv - タブ区切り

Encoders

Required

string

  • None - エンコーダーは適用されません

Header line?

Required

string

  • No

Delimiter

Required

string

区切り文字:

  • Default - 選択したFormatに従います

Quote policy

Optional

string

引用符のポリシー:

  • ALL
  • MINIMAL: 区切り文字、引用符、または改行文字のいずれかを含むフィールドにのみ引用符文字を追加します
  • NONE

Null string

Required

string

クエリ結果のnull値の表示方法:

  • Default - 選択したFormatに従います
  • empty string
  • \N
  • NULL
  • null

End-of-line character

Required

string

EOL(行末)文字:

  • CRLF(デフォルト)
  • LF
  • CR

Temp filesize threshold

Required

long

エクスポートデータがこのしきい値より大きい場合、アップロードはしきい値自体のバッチサイズでバッチ実行されます。channel is brokenエラーが発生した場合、この値を減らすことでエラーが解決される可能性があります。

(オプション) Query Export ジョブをスケジュールする

Scheduled Jobs と Result Export を使用して、指定したターゲット宛先に出力結果を定期的に書き込むことができます。

Treasure Data のスケジューラー機能は、高可用性を実現するために定期的なクエリ実行をサポートしています。

2 つの仕様が競合するスケジュール仕様を提供する場合、より頻繁に実行するよう要求する仕様が優先され、もう一方のスケジュール仕様は無視されます。

例えば、cron スケジュールが '0 0 1 * 1' の場合、「月の日」の仕様と「週の曜日」が矛盾します。前者の仕様は毎月 1 日の午前 0 時 (00:00) に実行することを要求し、後者の仕様は毎週月曜日の午前 0 時 (00:00) に実行することを要求するためです。後者の仕様が優先されます。

TD Console を使用してジョブをスケジュールする

  1. Data Workbench > Queries に移動します

  2. 新しいクエリを作成するか、既存のクエリを選択します。

  3. Schedule の横にある None を選択します。

  4. ドロップダウンで、次のスケジュールオプションのいずれかを選択します:

    ドロップダウン値説明
    Custom cron...Custom cron... の詳細を参照してください。
    @daily (midnight)指定されたタイムゾーンで 1 日 1 回午前 0 時 (00:00 am) に実行します。
    @hourly (:00)毎時 00 分に実行します。
    Noneスケジュールなし。

Custom cron... の詳細

Cron 値説明
0 * * * *1 時間に 1 回実行します。
0 0 * * *1 日 1 回午前 0 時に実行します。
0 0 1 * *毎月 1 日の午前 0 時に 1 回実行します。
""スケジュールされた実行時刻のないジョブを作成します。
 *    *    *    *    *
 -    -    -    -    -
 |    |    |    |    |
 |    |    |    |    +----- day of week (0 - 6) (Sunday=0)
 |    |    |    +---------- month (1 - 12)
 |    |    +--------------- day of month (1 - 31)
 |    +-------------------- hour (0 - 23)
 +------------------------- min (0 - 59)

次の名前付きエントリを使用できます:

  • Day of Week: sun, mon, tue, wed, thu, fri, sat.
  • Month: jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec.

各フィールド間には単一のスペースが必要です。各フィールドの値は、次のもので構成できます:

フィールド値 例の説明
各フィールドに対して上記で表示された制限内の単一の値。
フィールドに基づく制限がないことを示すワイルドカード '*''0 0 1 * *'毎月 1 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
範囲 '2-5' フィールドの許可される値の範囲を示します。'0 0 1-10 * *'毎月 1 日から 10 日までの午前 0 時 (00:00) に実行するようにスケジュールを設定します。
カンマ区切りの値のリスト '2,3,4,5' フィールドの許可される値のリストを示します。0 0 1,11,21 * *'毎月 1 日、11 日、21 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
周期性インジケータ '*/5' フィールドの有効な値の範囲に基づいて、 スケジュールが実行を許可される頻度を表現します。'30 */2 1 * *'毎月 1 日、00:30 から 2 時間ごとに実行するようにスケジュールを設定します。 '0 0 */5 * *' は、毎月 5 日から 5 日ごとに午前 0 時 (00:00) に実行するようにスケジュールを設定します。
'*' ワイルドカードを除く上記の いずれかのカンマ区切りリストもサポートされています '2,*/5,8-10''0 0 5,*/10,25 * *'毎月 5 日、10 日、20 日、25 日の午前 0 時 (00:00) に実行するようにスケジュールを設定します。
  1. (オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

クエリを実行する

クエリに名前を付けて保存して実行するか、単にクエリを実行します。クエリが正常に完了すると、クエリ結果は指定された宛先に自動的にエクスポートされます。

設定エラーにより継続的に失敗するスケジュールジョブは、複数回通知された後、システム側で無効化される場合があります。

(オプション) Delay execution を有効にすることで、クエリの開始時刻を遅延させることができます。

Audience Studio で Segment をアクティベートする

Audience Studio で activation を作成することで、segment データをターゲットプラットフォームに送信することもできます。

  1. Audience Studio に移動します。
  2. parent segment を選択します。
  3. ターゲット segment を開き、右クリックして、Create Activation を選択します。
  4. Details パネルで、Activation 名を入力し、前述の Configuration Parameters のセクションに従って activation を設定します。
  5. Output Mapping パネルで activation 出力をカスタマイズします。

  • Attribute Columns
    • Export All Columns を選択すると、変更を加えずにすべての列をエクスポートできます。
    • + Add Columns を選択して、エクスポート用の特定の列を追加します。Output Column Name には、Source 列名と同じ名前があらかじめ入力されます。Output Column Name を更新できます。+ Add Columns を選択し続けて、activation 出力用の新しい列を追加します。
  • String Builder
    • + Add string を選択して、エクスポート用の文字列を作成します。次の値から選択します:
      • String: 任意の値を選択します。テキストを使用してカスタム値を作成します。
      • Timestamp: エクスポートの日時。
      • Segment Id: segment ID 番号。
      • Segment Name: segment 名。
      • Audience Id: parent segment 番号。
  1. Schedule を設定します。

  • スケジュールを定義する値を選択し、オプションでメール通知を含めます。
  1. Create を選択します。

batch journey の activation を作成する必要がある場合は、Creating a Batch Journey Activation を参照してください。

(オプション)CLIを使用したエクスポート統合

TD Toolbeltを使用すると、CLIからSFTPへのクエリ結果のエクスポートをトリガーできます。td queryコマンドの--resultオプションを使用して、エクスポートジョブのパラメータを指定する必要があります。詳細については、Querying and Importing Data to Treasure Data from the Command Lineを参照してください。

オプションの形式はJSONであり、一般的な構造は以下のとおりです:

ユーザー名とパスワードを使用した認証

{
  "type": "sftp_v2",
  "host": "IP or host of SFTP server",
  "port": 22,
  "path_prefix": "/upload/2024Aug29/TC01.csv",
  "temp_file_threshold": 1024,
  "timeout": 600,
  "user_directory_is_root": false,
  "rename_file_after_upload": true,
  "auth_method": "password",
  "username": "login user",
  "password": "password of user when auth_method is password"
}

公開鍵/秘密鍵ペアを使用した認証

{
  "type": "sftp_v2",
  "host": "IP or host of SFTP server",
  "port": 22,
  "path_prefix": "/upload/2024Aug29/TC01.csv",
  "temp_file_threshold": 1024,
  "timeout": 600,
  "user_directory_is_root": false,
  "rename_file_after_upload": true,
  "auth_method": "key_pair",
  "secret_key_file": "Content of private key file",
  "secret_key_passphrase": "td@123"
}

CLIパラメータ

Name Description Value Default Value Required
typeタイプは sftp_v2 である必要がありますStringNULLYES
hostIPアドレスまたはドメイン名として指定されたSFTPサーバーのアドレス
  • 192.168.1.1
  • eu-west-1.sftpcloud.io
StringNULLYES
portSFTPサーバーとの接続のためのポートNumber22NO
user_directory_is_root一部のサーバーでは、ユーザーにはルートディレクトリであるホームディレクトリがあります。たとえば、johnという名前のユーザーのルートディレクトリ名が /home/john である場合があります。そのユーザーが /home/john/day1/my_data.csv という名前のディレクトリにファイルをアップロードする場合、2つのオプションがあります。
  • user_directory_is_root を true に設定し、このpath_prefixを使用: /day1/my_data.csv
  • user_directory_is_root を false に設定し、このpath_prefixを使用: /home/john/day1/my_data.csv
StringFalseNO
path_prefixSFTPサーバー上でファイルをアップロードするパス。path_prefixの値は、user_directory_is_rootがtrueかfalseかによって異なります。StringNULLYES
rename_file_after_uploadアップロード完了後にファイルの名前を変更するかどうかを決定しますBooleanFalseNO
temp_file_thresholdエクスポート中に使用される一時ファイルのサイズ。一時ファイルサイズに達すると、統合はそのファイルからデータを読み取り、リモートファイルに書き込んでから、一時ファイルを削除します。Number5,368,709,120 (5 Gb)NO
auth_methodSFTPサーバーでの認証に使用される認証タイプを決定します。
  • ユーザー名/パスワード
  • 公開鍵/秘密鍵ペア
サポートされている値:
  • password
  • key_pair
key_pairYES
username認証に使用されるユーザー名StringNULLYES
password認証に使用されるパスワードStringNULLYES、auth_methodがpasswordの場合

secret_key_file

認証に使用される秘密鍵ファイル。ファイルの内容は1行としてフォーマットする必要があります。

td ... --result '{"type":"sftp_v2", "secret_key_file": "-----BEGIN OPENSSH PRIVATE KEY-----\nline1\nline2\nline3\n-----END OPENSSH PRIVATE KEY-----\n\n"}'

フォーマット前の秘密鍵ファイルの内容:

-----BEGIN OPENSSH PRIVATE KEY-----
line1
line2
line3
-----END OPENSSH PRIVATE KEY-----

フォーマット後

-----BEGIN OPENSSH PRIVATE KEY-----line1line2line3-----END OPENSSH PRIVATE KEY-----

String

NULL

YES、auth_methodがkey_pairの場合

secret_key_passphrase秘密鍵がパスワード付きで生成された場合は、そのパスワードをここに入力します。StringNULLNO
sequence_formatアップロードされるファイルのサフィックス名。例: "%03d.%02d"StringBlankNO
formatアップロードされるファイルの出力形式サポートされている値:
  • csv
  • tsv
csvNO
encoders出力のエンコーダーのタイプを指定しますサポートされている値:
  • ""
  • gz
  • bzip2
  • encrypt_pgp
""NO
public_key暗号化に使用する公開鍵String
key_identifierファイルを保護するために使用される暗号化サブキーのKey IDを指定します。マスターキーは暗号化プロセスから除外されます。(文字列、必須)String
amor暗号化された出力にASCII armorを使用します(ブール値)Boolean

compression_type

圧縮タイプは、暗号化する前にデータを圧縮するかどうかを決定します。

サポートされている値

  • gzip
  • bzip2
  • none
  • zip_builtin
  • zlip_builtin
  • bzip2_builtin

注意: 暗号化してアップロードする前にファイルを圧縮してください。復号化すると、ファイルは .gz や .bz2 などの圧縮形式に戻ります。

delimiter列の区切り文字サポートされている値:
  • ","
  • "\t"
  • "tab"
  • "|"
","NO

quote_policy

クォートの処理に関するポリシー

サポートされる値:

  • ALL. 選択した場合、すべての値がダブルクォート("")で囲まれます。
  • MINIMAL. 選択した場合、埋め込みクォート(")を含む値は、連続した2つのクォート("")で表示されます。
  • NONE. 選択した場合、埋め込みクォートのエスケープは適用されません。

例:ポリシー ALL

設定:

quote_policy: ALL,
quote: "'",

出力

'id'|'column01'|'column02'|'column03'|'column04'|'column05'
'1'|'data01'|'data02'|'data03'|'data04'|'data05'

例:ポリシー MINIMAL

設定:

quote_policy: MINIMAL,
quote: "'",

出力

id|column01|column02|column03|column04|column05
1|data01|data02|data03|data04|data05

quote

クォートにシングルクォートまたはダブルクォートのどちらを使用するかを決定します。

シングルクォート

設定

quote_policy: ALL,
quote: "'",

出力

'id'|'column01'|'column02'
'1'|'data01'|'data02'

ダブルクォート

設定

quote_policy: ALL,
quote: "\"",

出力

"id"|"column01"|"column02"
"1"|"data01"|"data02"
null_stringnull列のデフォルト値を決定します。サポートされる値:
  • ""
  • \N
  • NULL
""
newlineCSVファイルで改行を開始する方法を決定します。サポートされる値:
  • CRLF
  • LF
  • CR
CRLF

使用例

  1. パスワード認証を使用する場合

    td --database your_db --wait "SELECT email FROM (VALUES ('test01@test.com')) tbl(email)" \
    --type presto \
    --result '{"type":"sftp_v2","host":"your_ip","port": 22,"auth_method":"password","username":"user_name","password":"your_pass", "user_directory_is_root": true, "rename_file_after_upload": true,"path_prefix":"/sftp/2024aug/test.csv"}'
  2. パスワード認証とデータ圧縮を使用する場合

    td --database your_db --wait "SELECT email FROM (VALUES ('test01@test.com')) tbl(email)" \
    --type presto \
    --result '{"type":"sftp_v2","host":"your_ip","port": 22,"auth_method":"password","username":"user_name","password":"password","user_directory_is_root":true,"path_prefix":"/sftp/2024aug/test.csv","rename_file_after_upload":true,"format": "csv", "compression": "gz","header_line":true,"quote_policy":"ALL","delimiter":"\t","null_string":"","newline":"CRLF","temp_file_threshold":0,"sequence_format":".%01d%01d"}'
  3. パスワードフレーズ付きの公開鍵/秘密鍵認証を使用する場合

    秘密鍵ファイルの内容(パスワードフレーズは 123):

    -----BEGIN OPENSSH PRIVATE KEY-----
    line1
    line2
    line3
    -----END OPENSSH PRIVATE KEY-----

    CLIのフォーマット:

    -----BEGIN OPENSSH PRIVATE KEY-----\nline1\nline2\nline3\n-----END OPENSSH PRIVATE KEY-----\n\n

    CLIコマンド:

    td --database your_db --wait "SELECT email FROM (VALUES ('test01@test.com')) tbl(email)" \
    --type presto \
    --result '{"type":"sftp_v2","host":"your_ip","port": 22,"auth_method":"key_pair","username":"user_name", "path_prefix": "/sftp/2024aug/test.csv","sequence_format":"","max_connection_retry":5,"secret_key_passphrase":"123","timeout":600,"secret_key_file":"-----BEGIN OPENSSH PRIVATE KEY-----\nline1\nline2\nline3\n-----END OPENSSH PRIVATE KEY-----\n\n"}'
  4. 新規顧客を作成する場合

    td --database luan_db --wait "SELECT customer_list_id,first_name,last_name,birthday,company_name,email,fax,gender,job_title,phone_business,phone_home,phone_mobile,second_name,credentials FROM (VALUES ('site_1','fname_201','lname_1','1990-05-12','Test Company',
  5. 暗号化エンコーダーを使用する場合

    td query -d luan_db -w "select * from luan_db.sfcc_500k" -T presto --result '{
      "type": "sftp_v2",
      "host": "your host server",
      "auth_method": "password",
      "username": "your user name",
      "password": "your password",
      "path_prefix": "cli/test_27_3_500K.csv.bz2.gpg",
      "file_ext": ".gpg",
      "rename_file_after_upload": false,
      "formatter": {
        "type": "csv",
        "quote_policy": "MINIMAL",
        "delimiter": ",",
        "null_string": "null",
        "newline": "\n"
      },
      "compression": "encrypt_pgp",
      "public_key": "your public key",
      "key_identifier": "your key identifier",
      "armor": true/false,
      "compression_type": "bzip2/gzip/none"
    }'

(オプション)その他の考慮事項

Treasure Workflowでは、このインテグレーションを使用してデータをエクスポートすることができます。サンプルワークフローについては、Treasure Boxesをご覧ください。

  • 結果のエクスポートをスケジュール設定して、データを定期的にターゲットの宛先にアップロードできます
  • ほとんどのインポートおよびエクスポートインテグレーションは、TD Workflowに追加して、より高度なデータパイプラインに組み込むことができます。詳細についてはこちらを参照してください。

SFTPデータコネクタのFAQ

Q: SFTPサーバーに接続できません。どうすればよいですか?

A: 以下の点を確認してください:

  • プロトコルが有効であることを確認してください。SFTPを使用する場合は、このインテグレーションを使用できます。FTP/FTPSを使用する場合は、FTP Server Import Integrationで接続を試してください。
  • ファイアウォールを使用している場合は、許可されたIP範囲とポートを確認してください。サーバー管理者は、セキュリティ上の理由から、デフォルトのポート番号TCP 22を変更することがあります。
  • 秘密鍵がOpenSSH形式であることを確認してください。Treasure Dataは「PuTTY」などの他の形式をサポートしていません。
  • Treasure DataはOpenSSH 7.8以降の秘密鍵のデフォルト形式をサポートしていません。'-m PEM'オプションを使用して鍵を再生成してください。

Q: SFTPサーバーにアップロードしたファイルが見つかりません。何が起こったのでしょうか?

A: SFTPサーバーがAppendモードをサポートしていない場合、インテグレーションは「SFTP Exception: no such file.」というエラーでファイルを更新できない可能性があります。安定性の理由から、インテグレーションはファイルコンテンツをバッチでアップロードします。そのため、SFTPサーバーでAppendモードを有効にする必要があります。SFTPサーバーでAppendモードを有効にできない場合は、この機能をバイパスするために temp_file_threshold を 0 に設定する必要があります。

注: ファイルを暗号化してアップロードする前に、必ず圧縮してください。

  1. 非組み込み暗号化を使用して復号化すると、ファイルは.gzや.bz2などの圧縮形式に戻ります。

  2. 組み込み暗号化を使用して復号化すると、ファイルは生データに戻ります。