[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blogEntry::post\u002Fkarte-audience-from-warehouse:ja":3},{"title":4,"slug":5,"description":6,"body":7,"author":8,"category":9,"coverImageUrl":13,"ogImageUrl":14,"createdAt":15,"updatedAt":15,"datePublished":16,"locale":17,"related":18},"Codatumのクエリ結果をKARTE Datahubに書き込んで、配信対象にする","karte-audience-from-warehouse","CodatumのBigQueryコネクションにKARTE Datahubのデータセットへの書き込み権限を渡すと、Codatumで書いたSQLの結果がそのままKARTEの配信対象になります。データセットの作成から権限付与、配信リストへの指定、定期更新までの手順を紹介します。","\u003Cp>CodatumのBigQueryコネクションにKARTE Datahubのデータセットへの書き込み権限を渡すと、Codatumで書いたSQLの結果を、そのままKARTEの配信対象にできます。\u003C\u002Fp>\u003Ch2>できるようになること\u003C\u002Fh2>\u003Cp>配信対象をSQLで定義できるので、KARTEのセグメントだけでは組みにくい条件を扱えます。\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>\u003Cb>KARTEに取り込んでいないデータを条件にする\u003C\u002Fb> — 基幹システムの購買履歴、算出済みのチャーンスコアなど、データウェアハウス側にしかない値をそのまま使えます\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cb>「〜していない人」を対象にする\u003C\u002Fb> — セグメントの所属はイベント発生時に判定されるため、「90日購入がない人」のような条件は判定が走るきっかけがありません\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Cb>その時点で固定した配信リストを作る\u003C\u002Fb> — 抽出条件ではなく、抽出した結果の一覧を配信対象にできます\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>出せるチャネルは3つで、必要な準備が違います。\u003C\u002Fp>\u003Ctable>\u003Ctr>\u003Cth>\u003Cp>チャネル\u003C\u002Fp>\u003C\u002Fth>\u003Cth>\u003Cp>Datahub側に追加で必要な準備\u003C\u002Fp>\u003C\u002Fth>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>KARTE Messageで一斉配信（メール・LINEなど）\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>テーブルとクエリがUSマルチリージョンにあること\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>接客サービスからターゲット配信\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>なし\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>Web接客（ポップアップ・バナー）\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>ジョブフローと紐付けテーブル\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Ch2>前提\u003C\u002Fh2>\u003Cp>KARTE Datahubの契約と、Datahub設定を開くためのKARTEの管理者権限が要ります。Codatum側は、コネクションの詳細を見るのでワークスペースオーナーで作業してください。\u003C\u002Fp>\u003Cp>Datahub自体は東京リージョン（asia-northeast1）でも動きますが、\u003Cb>KARTE Messageのリストに使うテーブルとクエリだけはUSマルチリージョンである必要があります\u003C\u002Fb>（\u003Ca href=\"https:\u002F\u002Fsupport.karte.io\u002Fpost\u002F2R8L9l8TrajkF7mH5MkNsn\" target=\"_blank\" rel=\"noopener noreferrer\">Datahubを元にリストを作成する\u003C\u002Fa>）。DatahubはUSマルチリージョンが既定なので通常は気にせずに済みますが、東京リージョンで運用している場合は、この経路だけ先に確認してください。接客サービスのターゲット配信とWeb接客にはこの制約はありません。\u003C\u002Fp>\u003Ch2>Codatum側の準備\u003C\u002Fh2>\u003Ch3>サービスアカウントのメールアドレスを確認する\u003C\u002Fh3>\u003Cp>グローバルナビの\u003Cb>ワークスペース設定\u003C\u002Fb> > \u003Ca href=\"https:\u002F\u002Fdocs.codatum.jp\u002Ffeatures\u002Fconnection\u002Foverview\" target=\"_blank\" rel=\"noopener noreferrer\">コネクション\u003C\u002Fa>から、\u003Cb>対象者を抽出するSQLを実行するBigQueryコネクション\u003C\u002Fb>を開きます。抽出とKARTEへの書き込みは1本のSQLで実行するので、基幹システムの購買履歴やチャーンスコアなど抽出元のテーブルを読めるコネクションを選んでください。\u003C\u002Fp>\u003Cp>コネクションを開いたら、基本設定のClient emailの値を控えます。\u003C\u002Fp>\u003Cfigure class=\"EmbeddedContent_Wrapper\">\u003Cimg src=\"https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F2l3asuwuthEoY9haeWy60U\u002F9343227662bb15573823195e9ab92b0c\u002Fkarte-audience-01-codatum-connection.png\" alt=\"karte-audience-01-codatum-connection\">\u003C\u002Ffigure>\u003Cp>\u003Ccode class=\"hljs\">xxx\u003Cspan class=\"hljs-variable\">@xxx\u003C\u002Fspan>.iam.gserviceaccount.com\u003C\u002Fcode> の形式です。この値を、次のKARTE側の設定で入力します。同じ画面のプロジェクトIDは、クエリのジョブが実行されるプロジェクトです。\u003C\u002Fp>\u003Ch2>KARTE側の設定\u003C\u002Fh2>\u003Ch3>データセットを作成する\u003C\u002Fh3>\u003Cp>KARTEですべてのメニュー > Datahub > データセットを開き、Codatumの書き込み先にするデータセットを作成します。\u003C\u002Fp>\u003Cfigure class=\"EmbeddedContent_Wrapper\">\u003Cimg src=\"https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F6P8mh6wpxyqF12YxPkdom6\u002F0d97a60b90ad5781c7927dc3da5d56a1\u002Fkarte-audience-02-dataset-list.png\" alt=\"karte-audience-02-dataset-list\">\u003C\u002Ffigure>\u003Cp>入力するのはデータセット名と表示名の2つです。データセット名は400字以内の半角英数字とアンダースコアのみで、\u003Cb>後から変更できません\u003C\u002Fb>。表示名は任意で、後から変更できます。\u003C\u002Fp>\u003Cfigure class=\"EmbeddedContent_Wrapper\">\u003Cimg src=\"https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F6GL99eQ5ckgYay5cZ7CUqF\u002Fc626dfdec3cba469ddb89b9f1d77526a\u002Fkarte-audience-03-dataset-create.png\" alt=\"karte-audience-03-dataset-create\">\u003C\u002Ffigure>\u003Cp>\u003Ccode class=\"hljs\">codatum_segments\u003C\u002Fcode> のように用途がわかる名前にしておくと、あとでKARTE側の運用者が迷いません。\u003C\u002Fp>\u003Cp>\u003Cb>作成後の画面上部に出る実際のデータセットIDをコピーして、後述のSQLに使ってください。\u003C\u002Fb> 入力した名前のままSQLを書くと、テーブルが見つからずに失敗します（※1）。\u003C\u002Fp>\u003Cfigure class=\"EmbeddedContent_Wrapper\">\u003Cimg src=\"https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F63mKDXpaG5EWdEQFMiPiGC\u002F56b450f7b47fe3291dc36489d4b09ca7\u002Fkarte-audience-04-dataset-id.png\" alt=\"karte-audience-04-dataset-id\">\u003C\u002Ffigure>\u003Ch3>データセットの共有設定で書き込み権限を渡す\u003C\u002Fh3>\u003Cp>データセットの操作メニューから\u003Cb>データセットの共有設定\u003C\u002Fb>を開き、Codatumで控えたClient emailを入力して\u003Cb>閲覧と編集\u003C\u002Fb>（WRITER）を選びます。手順の詳細は\u003Ca href=\"https:\u002F\u002Fsupport.karte.io\u002Fpost\u002F5wQjLYQwB9pPF5ijf0PF15\" target=\"_blank\" rel=\"noopener noreferrer\">KARTE Datahubのデータセットを共有する\u003C\u002Fa>にあります。書き込むので\u003Cb>閲覧のみ\u003C\u002Fb>（READER）では足りません。\u003C\u002Fp>\u003Cfigure class=\"EmbeddedContent_Wrapper\">\u003Cimg src=\"https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F6ISsxgG3Xa6zQ08bu0pQ6v\u002F2bee06e914148378690738a56ade0e15\u002Fkarte-audience-05-share-dialog.png\" alt=\"karte-audience-05-share-dialog\">\u003C\u002Ffigure>\u003Cp>もう1つ、同じダイアログの下にある\u003Cb>データセットを共有するプロダクトを許可\u003C\u002Fb>のチェックが要ります。\u003C\u002Fp>\u003Cfigure class=\"EmbeddedContent_Wrapper\">\u003Cimg src=\"https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F2sP0t8HXfltLhITA0sTo0E\u002F901ff65094649a68584459a23cd14b68\u002Fkarte-audience-06-share-product.png\" alt=\"karte-audience-06-share-product\">\u003C\u002Ffigure>\u003Cp>このチェックは\u003Cb>既定でオフ\u003C\u002Fb>です。入れないと、書いたデータをMessageなどのプロダクト側から使えません。保存に成功すると、データセット名の右にKARTEプロダクトと共有中と表示されます。\u003C\u002Fp>\u003Ch2>対象者を書き込む\u003C\u002Fh2>\u003Cp>Codatumの\u003Ca href=\"https:\u002F\u002Fdocs.codatum.jp\u002Ffeatures\u002Fsaved-query\" target=\"_blank\" rel=\"noopener noreferrer\">保存済クエリ\u003C\u002Fa>、または\u003Ca href=\"https:\u002F\u002Fdocs.codatum.jp\u002Ffeatures\u002Fnotebook\" target=\"_blank\" rel=\"noopener noreferrer\">ノートブック\u003C\u002Fa>のSQLブロックで実行します。テーブル名の \u003Ccode class=\"hljs\">&lt;データセットID&gt;\u003C\u002Fcode> には、先ほど画面からコピーした、末尾にAPIキーが付いた形を使います。\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"hljs language-sql\">\u003Cspan class=\"hljs-keyword\">CREATE\u003C\u002Fspan> \u003Cspan class=\"hljs-keyword\">OR\u003C\u002Fspan> REPLACE \u003Cspan class=\"hljs-keyword\">TABLE\u003C\u002Fspan> `prd\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>karte\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>\u003Cspan class=\"hljs-keyword\">per\u003C\u002Fspan>\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>client.\u003Cspan class=\"hljs-operator\">&lt;\u003C\u002Fspan>データセットID\u003Cspan class=\"hljs-operator\">&gt;\u003C\u002Fspan>.dormant_users` \u003Cspan class=\"hljs-keyword\">AS\u003C\u002Fspan>\n\u003Cspan class=\"hljs-keyword\">SELECT\u003C\u002Fspan>\n  user_id,        \u003Cspan class=\"hljs-comment\">-- KARTEのユーザーIDに一致させる\u003C\u002Fspan>\n  last_order_at,  \u003Cspan class=\"hljs-comment\">-- 配信本文に差し込みたい値があればここに入れる\u003C\u002Fspan>\n  total_revenue\n\u003Cspan class=\"hljs-keyword\">FROM\u003C\u002Fspan>\n  `your\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>project.mart.customer_summary`\n\u003Cspan class=\"hljs-keyword\">WHERE\u003C\u002Fspan>\n  last_order_at \u003Cspan class=\"hljs-operator\">&lt;\u003C\u002Fspan> DATE_SUB(\u003Cspan class=\"hljs-built_in\">CURRENT_DATE\u003C\u002Fspan>(), \u003Cspan class=\"hljs-type\">INTERVAL\u003C\u002Fspan> \u003Cspan class=\"hljs-number\">90\u003C\u002Fspan> \u003Cspan class=\"hljs-keyword\">DAY\u003C\u002Fspan>)\n  \u003Cspan class=\"hljs-keyword\">AND\u003C\u002Fspan> total_revenue \u003Cspan class=\"hljs-operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"hljs-number\">30000\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>条件の書き方は自由です。データウェアハウスにあるテーブルであれば、そのまま条件に使えます。\u003C\u002Fp>\u003Ch3>どのカラムを入れるか\u003C\u002Fh3>\u003Cp>必要なカラムは、出す先によって違います。\u003C\u002Fp>\u003Ctable>\u003Ctr>\u003Cth>\u003Cp>出し先\u003C\u002Fp>\u003C\u002Fth>\u003Cth>\u003Cp>必須のカラム\u003C\u002Fp>\u003C\u002Fth>\u003Cth>\u003Cp>満たさないと\u003C\u002Fp>\u003C\u002Fth>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>KARTE Messageのリスト\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>ユーザーIDか、メールアドレス・FCMトークン・LINE IDのいずれか（\u003Ca href=\"https:\u002F\u002Fsupport.karte.io\u002Fpost\u002F2R8L9l8TrajkF7mH5MkNsn\" target=\"_blank\" rel=\"noopener noreferrer\">Datahubを元にリストを作成する\u003C\u002Fa>）\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>リストにできない\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>Web接客の紐付けテーブル\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>KARTEのユーザーIDと一致する \u003Ccode class=\"hljs\">user_id\u003C\u002Fcode>\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>エラーにならず、誰にも当たらない\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Cp>MessageでもユーザーIDは入れておくのが無難です。無いとコンバージョン計測や、配信ログで誰に配信したかの確認ができません。ただし\u003Ca href=\"https:\u002F\u002Fsupport.karte.io\u002Fpost\u002FwxduChZhEu8Hw5RPUVfsf\" target=\"_blank\" rel=\"noopener noreferrer\">リストとは\u003C\u002Fa>に注意書きがあるとおり、\u003Cb>ユーザーIDは配信ログに平文で保存されます\u003C\u002Fb>。メールアドレスや電話番号を入れないでください。\u003C\u002Fp>\u003Ch3>KARTEで計測したイベントを条件に混ぜる\u003C\u002Fh3>\u003Cp>KARTE側のイベントも、データセットの共有設定でサービスアカウントに\u003Cb>閲覧のみ\u003C\u002Fb>を付与すれば条件に使えます。共有するのは \u003Ccode class=\"hljs\">karte_stream_&lt;APIキー&gt;\u003C\u002Fcode> のデータセットです。\u003C\u002Fp>\u003Cp>外部から引くときはテーブル名が変わります。Datahubの画面で使う \u003Ccode class=\"hljs\">karte_event\u003C\u002Fcode> ではなく、実体は日付ごとに分かれた \u003Ccode class=\"hljs\">krt_pockyevent_v1_&lt;YYYYMMDD&gt;\u003C\u002Fcode> で、期間はワイルドカードと \u003Ccode class=\"hljs\">_TABLE_SUFFIX\u003C\u002Fcode> で絞ります。記法とスキーマは\u003Ca href=\"https:\u002F\u002Fsupport.karte.io\u002Fpost\u002F3RN3ibrlBkF9HmIggFJADu\" target=\"_blank\" rel=\"noopener noreferrer\">karte_eventテーブルへのクエリを作成する\u003C\u002Fa>にまとまっています（※2）。\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"hljs language-sql\">\u003Cspan class=\"hljs-keyword\">CREATE\u003C\u002Fspan> \u003Cspan class=\"hljs-keyword\">OR\u003C\u002Fspan> REPLACE \u003Cspan class=\"hljs-keyword\">TABLE\u003C\u002Fspan> `prd\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>karte\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>\u003Cspan class=\"hljs-keyword\">per\u003C\u002Fspan>\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>client.\u003Cspan class=\"hljs-operator\">&lt;\u003C\u002Fspan>データセットID\u003Cspan class=\"hljs-operator\">&gt;\u003C\u002Fspan>.viewed_not_bought` \u003Cspan class=\"hljs-keyword\">AS\u003C\u002Fspan>\n\u003Cspan class=\"hljs-keyword\">SELECT\u003C\u002Fspan>\n  user_id,\n  \u003Cspan class=\"hljs-built_in\">MAX\u003C\u002Fspan>(sync_date) \u003Cspan class=\"hljs-keyword\">AS\u003C\u002Fspan> last_event_at,\n  \u003Cspan class=\"hljs-built_in\">COUNT\u003C\u002Fspan>(\u003Cspan class=\"hljs-keyword\">DISTINCT\u003C\u002Fspan> IF(event_name \u003Cspan class=\"hljs-operator\">=\u003C\u002Fspan> \u003Cspan class=\"hljs-string\">'view'\u003C\u002Fspan>, event_hash, \u003Cspan class=\"hljs-keyword\">NULL\u003C\u002Fspan>)) \u003Cspan class=\"hljs-keyword\">AS\u003C\u002Fspan> view_count\n\u003Cspan class=\"hljs-keyword\">FROM\u003C\u002Fspan>\n  `karte\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>data.karte_stream_\u003Cspan class=\"hljs-operator\">&lt;\u003C\u002Fspan>APIキー\u003Cspan class=\"hljs-operator\">&gt;\u003C\u002Fspan>.krt_pockyevent_v1_\u003Cspan class=\"hljs-operator\">*\u003C\u002Fspan>`\n\u003Cspan class=\"hljs-keyword\">WHERE\u003C\u002Fspan>\n  _TABLE_SUFFIX \u003Cspan class=\"hljs-keyword\">BETWEEN\u003C\u002Fspan> FORMAT_DATE(\u003Cspan class=\"hljs-string\">'%Y%m%d'\u003C\u002Fspan>, DATE_SUB(\u003Cspan class=\"hljs-built_in\">CURRENT_DATE\u003C\u002Fspan>(), \u003Cspan class=\"hljs-type\">INTERVAL\u003C\u002Fspan> \u003Cspan class=\"hljs-number\">30\u003C\u002Fspan> \u003Cspan class=\"hljs-keyword\">DAY\u003C\u002Fspan>))\n                    \u003Cspan class=\"hljs-keyword\">AND\u003C\u002Fspan> FORMAT_DATE(\u003Cspan class=\"hljs-string\">'%Y%m%d'\u003C\u002Fspan>, \u003Cspan class=\"hljs-built_in\">CURRENT_DATE\u003C\u002Fspan>())\n  \u003Cspan class=\"hljs-keyword\">AND\u003C\u002Fspan> user_id \u003Cspan class=\"hljs-keyword\">IS\u003C\u002Fspan> \u003Cspan class=\"hljs-keyword\">NOT NULL\u003C\u002Fspan>\n\u003Cspan class=\"hljs-keyword\">GROUP\u003C\u002Fspan> \u003Cspan class=\"hljs-keyword\">BY\u003C\u002Fspan>\n  user_id\n\u003Cspan class=\"hljs-keyword\">HAVING\u003C\u002Fspan>\n  view_count \u003Cspan class=\"hljs-operator\">&gt;=\u003C\u002Fspan> \u003Cspan class=\"hljs-number\">3\u003C\u002Fspan>                                  \u003Cspan class=\"hljs-comment\">-- この30日で3回以上見た\u003C\u002Fspan>\n  \u003Cspan class=\"hljs-keyword\">AND\u003C\u002Fspan> COUNTIF(event_name \u003Cspan class=\"hljs-operator\">=\u003C\u002Fspan> \u003Cspan class=\"hljs-string\">'buy'\u003C\u002Fspan>) \u003Cspan class=\"hljs-operator\">=\u003C\u002Fspan> \u003Cspan class=\"hljs-number\">0\u003C\u002Fspan>              \u003Cspan class=\"hljs-comment\">-- ただしこの30日は買っていない\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Ccode class=\"hljs\">_TABLE_SUFFIX\u003C\u002Fcode> を入れないと全期間を読みます。検証したプロジェクトでは、30日に絞った場合の\u003Cb>45倍\u003C\u002Fb>のスキャン量になりました。\u003C\u002Fp>\u003Ch2>配信対象に指定する\u003C\u002Fh2>\u003Cp>一斉配信の2つはKARTE側の設定だけで済みます。Web接客だけ、ジョブフローと紐付けテーブルを足します。\u003C\u002Fp>\u003Ctable>\u003Ctr>\u003Cth>\u003Cp>チャネル\u003C\u002Fp>\u003C\u002Fth>\u003Cth>\u003Cp>どこで指定するか\u003C\u002Fp>\u003C\u002Fth>\u003Cth>\u003Cp>ソースに指定するもの\u003C\u002Fp>\u003C\u002Fth>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>KARTE Message\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>リスト管理 > リストを作成（\u003Ca href=\"https:\u002F\u002Fsupport.karte.io\u002Fpost\u002FwxduChZhEu8Hw5RPUVfsf\" target=\"_blank\" rel=\"noopener noreferrer\">リストとは\u003C\u002Fa>）\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>Datahubのテーブルまたはクエリ\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>接客サービス\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>配信設定の配信モードで\u003Cb>ターゲット配信\u003C\u002Fb>（\u003Ca href=\"https:\u002F\u002Fsupport.karte.io\u002Fpost\u002F6rpIcwTrokSeiTXYDzZTCm\" target=\"_blank\" rel=\"noopener noreferrer\">ターゲット配信を行う\u003C\u002Fa>）\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>Datahubクエリ。テーブルは指定できない\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Cp>KARTE Messageのリストは実体を持ちません。Datahub上のデータセットまたはクエリを参照していて、配信時に最新のデータで抽出されます。つまり\u003Cb>以降、配信対象を変えたいときはSQLを変えるだけ\u003C\u002Fb>で、リストを作り直す必要がありません。\u003C\u002Fp>\u003Ch3>Web接客に出す場合\u003C\u002Fh3>\u003Cp>ポップアップやバナーに出す場合は、書き込んだテーブルをKARTEのユーザー情報として載せます。空の\u003Cb>紐付けテーブル\u003C\u002Fb>を作り、\u003Cb>ジョブフロー\u003C\u002Fb>で書き込んだテーブルを読むクエリの結果をそこへエクスポートし（メインキーは \u003Ccode class=\"hljs\">user_id\u003C\u002Fcode>）、\u003Cb>データ紐付け\u003C\u002Fb>の紐付け先を\u003Cb>KARTEのユーザーID\u003C\u002Fb>にします。ここまでの操作は\u003Ca href=\"https:\u002F\u002Fsupport.karte.io\u002Fpost\u002F46iSEQOnUxvZxB33hQ38Fp\" target=\"_blank\" rel=\"noopener noreferrer\">ユーザーにデータを紐付ける\u003C\u002Fa>のとおりです。あとは紐付けテーブルの列を条件にした\u003Cb>セグメント\u003C\u002Fb>を作り、接客サービスの対象ユーザーに指定すれば完了です。一度作れば、以降はSQLを変えるだけです。\u003C\u002Fp>\u003Cp>制約が2つあります。\u003Cb>紐付けた値はセグメント条件専用で、配信トリガーの条件には使えません。\u003C\u002Fb> また、ジョブフローのスケジュールは最短1時間間隔で、そこからセグメントに入るのはそのユーザーにイベントが発生したタイミングです。即時性が必要な用途には向きません。\u003C\u002Fp>\u003Ch2>対象者を定期的に入れ替える\u003C\u002Fh2>\u003Cp>Codatumの\u003Ca href=\"https:\u002F\u002Fdocs.codatum.jp\u002Ffeatures\u002Fworkflow\" target=\"_blank\" rel=\"noopener noreferrer\">ワークフロー\u003C\u002Fa>に保存済クエリを\u003Cb>Run Query\u003C\u002Fb>で実行するステップを置き、スケジュールを設定します。Web接客まで含める場合は、KARTE側のジョブフローも時間差でスケジュールします。\u003C\u002Fp>\u003Ctable>\u003Ctr>\u003Cth>\u003Cp>#\u003C\u002Fp>\u003C\u002Fth>\u003Cth>\u003Cp>どこ\u003C\u002Fp>\u003C\u002Fth>\u003Cth>\u003Cp>何を\u003C\u002Fp>\u003C\u002Fth>\u003Cth>\u003Cp>いつ\u003C\u002Fp>\u003C\u002Fth>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>1\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>Codatumのワークフロー\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>対象者を抽出してDatahubへ書き出す\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>毎日 3:00\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Cp>2\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>KARTEのジョブフロー\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>実行結果を紐付けテーブルへエクスポート\u003C\u002Fp>\u003C\u002Ftd>\u003Ctd>\u003Cp>毎日 4:00\u003C\u002Fp>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Cp>\u003Cb>必ずCodatum側を先に、KARTE側を後に走らせます。\u003C\u002Fb> 逆にすると、KARTEは前日のテーブルを取り込みます。\u003C\u002Fp>\u003Cp>行数のガードを効かせたいときは、\u003Cb>Run Queryを2つに分けます\u003C\u002Fb>。ステップ1は対象者を \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-keyword\">SELECT\u003C\u002Fspan>\u003C\u002Fcode> するだけの保存済クエリ、ステップ2が \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-keyword\">CREATE\u003C\u002Fspan> \u003Cspan class=\"hljs-keyword\">OR\u003C\u002Fspan> REPLACE \u003Cspan class=\"hljs-keyword\">TABLE\u003C\u002Fspan>\u003C\u002Fcode> です。実行条件で参照できるのは先行ステップの出力だけなので、1ステップのままでは行数を条件にできません。ステップ2の実行条件に \u003Ccode class=\"hljs\">{{ query.rowCount }} &gt; 0\u003C\u002Fcode> を置けば、抽出が0件の日に空のテーブルで洗い替える事故を防げます。\u003C\u002Fp>\u003Cp>あわせて、Slackステップに \u003Ccode class=\"hljs\">件数: {{ query.rowCount }}\u003C\u002Fcode> を入れておくと異常に気づけます。「今週は12,400人」が毎週流れていれば、それが3人や400,000人になった週に誰かが気づきます。通知ステップの実行条件に \u003Ccode class=\"hljs\">failure()\u003C\u002Fcode> を置けば、静かに止まっている状態も防げます。\u003C\u002Fp>\u003Ch2>よくある質問\u003C\u002Fh2>\u003Cp>\u003Cb>Codatumから書き込めません\u003C\u002Fb>\u003C\u002Fp>\u003Cp>データセットの共有設定で、Codatumのサービスアカウントに\u003Cb>閲覧と編集\u003C\u002Fb>（WRITER）が付いているかを確認してください。\u003Cb>閲覧のみ\u003C\u002Fb>では書き込めません。\u003C\u002Fp>\u003Cp>\u003Cb>テーブルは書けたのに、KARTEのMessageから選べません\u003C\u002Fb>\u003C\u002Fp>\u003Cp>データセットを共有するプロダクトを許可のチェック（既定でオフ）、テーブルのリージョンがUSか、フィールドが1つ以上あるか、を確認してください。ビューは直接リストにできないので、ビューを読むクエリを作ってそのクエリからリストを作ります。\u003C\u002Fp>\u003Cp>\u003Cb>Codatumのカタログにテーブルが出てきません\u003C\u002Fb>\u003C\u002Fp>\u003Cp>コネクションのテーブル同期を実行してください。同期を待たずに使う場合は、SQLから \u003Ccode class=\"hljs\">prd\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>karte\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>\u003Cspan class=\"hljs-keyword\">per\u003C\u002Fspan>\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>client.\u003Cspan class=\"hljs-operator\">&lt;\u003C\u002Fspan>データセットID\u003Cspan class=\"hljs-operator\">&gt;\u003C\u002Fspan>.\u003Cspan class=\"hljs-operator\">&lt;\u003C\u002Fspan>テーブル名\u003Cspan class=\"hljs-operator\">&gt;\u003C\u002Fspan>\u003C\u002Fcode> で直接参照できます。\u003C\u002Fp>\u003Cp>\u003Cb>BigQueryのクエリ課金はどちらのプロジェクトに発生しますか\u003C\u002Fb>\u003C\u002Fp>\u003Cp>Codatumから書き込む分は、Codatumのコネクションに設定したプロジェクトです。一方、Datahub上でKARTEが払い出したサービスアカウントでクエリを実行すると、契約しているDatahubの月間クエリリソース枠を消費します。\u003C\u002Fp>\u003Ch2>補足\u003C\u002Fh2>\u003Cp>\u003Cb>※1 実際のデータセットIDは、入力した名前と一致しません\u003C\u002Fb>\u003C\u002Fp>\u003Cp>KARTEは入力した名前の末尾にプロジェクトのAPIキーを連結したものをデータセットIDにします。\u003Ccode class=\"hljs\">codatum_segments\u003C\u002Fcode> と入力すると、実体は \u003Ccode class=\"hljs\">prd\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>karte\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>\u003Cspan class=\"hljs-keyword\">per\u003C\u002Fspan>\u003Cspan class=\"hljs-operator\">-\u003C\u002Fspan>client.codatum_segments_\u003Cspan class=\"hljs-operator\">&lt;\u003C\u002Fspan>APIキー\u003Cspan class=\"hljs-operator\">&gt;\u003C\u002Fspan>\u003C\u002Fcode> になります。\u003C\u002Fp>\u003Cp>\u003Cb>※2 KARTEイベントを引くときに気をつける4点\u003C\u002Fb>\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cp>イベントの種類は \u003Ccode class=\"hljs\">event_name\u003C\u002Fcode> の値で区別します（\u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-keyword\">view\u003C\u002Fspan>\u003C\u002Fcode> \u002F \u003Ccode class=\"hljs\">buy\u003C\u002Fcode> \u002F \u003Ccode class=\"hljs\">message_open\u003C\u002Fcode> など）。テーブル名は固定です\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>時刻は \u003Ccode class=\"hljs\">sync_date\u003C\u002Fcode>（UTC）、イベントごとの値は \u003Ccode class=\"hljs\">\u003Cspan class=\"hljs-keyword\">values\u003C\u002Fspan>\u003C\u002Fcode> にJSONで入ります\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>\u003Ccode class=\"hljs\">karte_event\u003C\u002Fcode> として公開されていない列は予告なく変わるため、KARTEは利用を推奨していません\u003C\u002Fp>\u003C\u002Fli>\u003Cli>\u003Cp>ID連携前のユーザーは先頭に \u003Ccode class=\"hljs\">vis-\u003C\u002Fcode> が付いた値で混ざります。会員だけに配信するなら除外してください。またイベントは稀に重複し、そのとき \u003Ccode class=\"hljs\">event_hash\u003C\u002Fcode> が同じになります\u003C\u002Fp>\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>まとめ\u003C\u002Fh2>\u003Cp>\u003Cb>Codatumでデータを掘って見つけた顧客の集まりを、そのままKARTEの配信対象にできます。\u003C\u002Fb> 準備はデータセットを1つ作って権限を1つ渡すだけで、あとは配信対象の定義がSQLに集約されます。条件を変えたいときもSQLを書き換えるだけで、KARTE側の設定は触りません。\u003C\u002Fp>\u003Cp>Datahubのデータを逆にCodatum側で見る設定は、\u003Ca href=\"https:\u002F\u002Fcodatum.jp\u002Fblog\u002Fpost\u002Fsigned-embed-light-codatum-karte-datahub\" target=\"_blank\" rel=\"noopener noreferrer\">Signed Embed Lightで、CodatumのノートブックをKARTE Datahubに埋め込む\u003C\u002Fa>にまとめています。\u003C\u002Fp>\n              \u003Caside class=\"BlogCTA\">\n                \u003Cdiv class=\"BlogCTA_Body\">\n                  \u003Cp class=\"BlogCTA_Title\">BI 選定で迷っていませんか？\u003C\u002Fp>\n                  \u003Cp class=\"BlogCTA_Description\">データ環境・分析内容・チーム体制を伺って、Codatum を含めたデータ基盤の組み立て方を 30 分で一緒に考えます。\u003C\u002Fp>\n                \u003C\u002Fdiv>\n                \u003Cdiv class=\"BlogCTA_Actions\">\n                  \u003Ca class=\"BlogCTA_Button _outline\" href=\"https:\u002F\u002Fapp.codatum.com\u002Fsignup?utm_source=blog&amp;utm_medium=mid-cta\" target=\"_blank\" rel=\"noopener noreferrer\">\n                    無料ではじめる\n                  \u003C\u002Fa>\n                  \u003Cbutton type=\"button\" class=\"BlogCTA_Button _primary\" data-cta-action=\"consultation\">\n                    相談する\n                  \u003C\u002Fbutton>\n                \u003C\u002Fdiv>\n              \u003C\u002Faside>\n            ","Codatum Team",{"title":10,"slug":11,"description":12},"Product Guide","product-guide","外部プロダクト・データツールの解説ガイド","https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002FB4So1xsmuHbxbZdn4msXe\u002Fe53b2348c1c1b13033d3ec8ffa90edfc\u002FKarteAudienceFromWarehouse_cover.png","https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F6VGbZmYo6lTp4pavk6vYRa\u002F8d202bc593f7801cbe60b5715618f4c4\u002FKarteAudienceFromWarehouse_og.png","2026-09-06T05:38:21.243Z","2026-09-10T10:00+09:00","ja",[19,29,38],{"title":20,"slug":21,"description":22,"author":8,"category":23,"coverImageUrl":24,"ogImageUrl":25,"createdAt":26,"updatedAt":27,"datePublished":28,"locale":17},"BigQueryからVertex AIを呼び出すための接続設定","bigquery-vertex-ai","BigQueryでVertex AIのGeminiモデルを使うには、Google Cloud側で外部接続を作成し、BigQueryとCodatum、それぞれのサービスアカウントに正しい権限を渡しておく必要があります。ML.GENERATE_TEXTなどのAI機能をCodatumから使うための、事前設定の手順を紹介します。",{"title":10,"slug":11,"description":12},"https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F7mhxfOO8PCdzX9UZMGZvTv\u002F47c803baa994313fa441b62c8b815d17\u002FVertexAI.png","https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002FK0GVwfyHFA3H6BOYjt4vg\u002Fd65a33711629ee3b1ef958fefd76a41b\u002FVertexAI_og.png","2026-08-31T06:58:52.685Z","2026-08-31T07:56:48.406Z","2026-08-31T00:00+09:00",{"title":30,"slug":31,"description":32,"author":8,"category":33,"coverImageUrl":34,"ogImageUrl":35,"createdAt":36,"updatedAt":37,"datePublished":28,"locale":17},"KARTE DatahubのデータをCodatumで分析するためのステップ","karte-datahub-codatum","KARTE DatahubにあるイベントデータをCodatumから直接参照するための、サービスアカウントの発行から権限付与、BigQueryコネクションの作成、同期設定までの手順を紹介します。",{"title":10,"slug":11,"description":12},"https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F5YDut6sVHfsh7W6sgcqckh\u002Ff81015d41ba0b1dda52c57a17fa0a456\u002Fstep.png","https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002FGG7aLGJKXq4AF4c9eWiIx\u002Ffa9bcf9c2a961c036cf6d0e594701310\u002Fstep_og.png","2026-08-31T06:55:55.587Z","2026-08-31T06:57:00.433Z",{"title":39,"slug":40,"description":41,"author":8,"category":42,"coverImageUrl":43,"ogImageUrl":44,"createdAt":45,"updatedAt":46,"datePublished":28,"locale":17},"Signed Embed Lightで、CodatumのノートブックをKARTE Datahubに埋め込む","signed-embed-light-codatum-karte-datahub","Codatumで作成したダッシュボードやノートブックを、KARTEのDatahub上に「Codatum BI」として埋め込むためのSigned Embed Lightのセットアップ方法と、開発者向けのトークン発行・SDK組み込み手順を紹介します。",{"title":10,"slug":11,"description":12},"https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F4PMUhWMspP6Tx8Tm1VMTIY\u002Fa016cd86c6fde7c663611421a21b0b72\u002FSignedEmbedLight.png","https:\u002F\u002Fimages.ctfassets.net\u002Fggtw2zqmifs5\u002F6Ocarrw0AJS7Y6q7mFU7Pk\u002Ff15041564774d6442a9f72d172a38cb3\u002FSignedEmbedLight_og.png","2026-08-31T06:55:26.836Z","2026-09-01T02:12:18.386Z"]