# マルチタッチアトリビューション

マルチタッチアトリビューション(MTA)は、コンバージョンにつながる各顧客タッチポイントの価値を決定するマーケティング測定の手法です。

MTAは、マーケターがどのマーケティングチャネルやキャンペーンにコンバージョンの功績を認めるべきかを把握するのに役立ちます。マーケターはこのノートブックを使用してマーケティングチャネルを最適化できます。

![](/assets/image2023-2-23_20-46-48.b2b70efcffaa0bc42b49ef701ecd1c17072d46cfb615d7eb5561618a1452ebdc.3cb60505.png)

MTAの詳細については、この[TDブログ記事](https://blog.treasuredata.com/blog/2020/02/10/how-does-multi-touch-attribution-work-and-what-convinced-the-customer-to-buy/)をご覧ください。

## 想定される入力

このノートブックは、以下のようなユーザージャーニーテーブルを想定しています:

| **tstamp** | **user** | **channel** | **conversion** |
|  --- | --- | --- | --- |
| 1596012307 | yl38g61s2x | sfmc | 0 |
| 1596012340 | d4dbvpwcyj | instagram | 0 |
| 1596012427 | egeaf1po46 | facebook | 0 |
| 1596012553 | gls9vyk2de | google | 1 |
| 1596012645 | ps6cc25f24 | instagram | 0 |
| ... | ... | ... | ... |


各行は、タイムスタンプ(Unixタイムまたは日時)を持つユーザーのタッチポイントを表します。

* tstampはUnixタイム(long型)または日時フォーマットを受け入れます。
* channelは通常、Facebookなどのマーケティングチャネルです。
* conversionの値は、タッチポイントを通じて得られるコンバージョン値を意味する数値(整数/浮動小数点)またはブール値です。


ノートブックパラメータを設定することで、代替のカラム名を使用できます。

## 期待される成果

MTAノートブックの成果は、タッチポイントの探索と、ヒューリスティックモデルとアルゴリズムモデルの両方を含む様々なアトリビューションモデルを介した各(マーケティング)チャネルのアトリビューションの計算です。

サポートされているヒューリスティックモデル:

* ラストタッチ
* ラストタッチ・ノンダイレクト
* ファーストタッチ
* リニア
* タイムディケイ
* ポジションベース(U字型/W字型)


サポートされているアルゴリズムモデル:

* シャープレイ値
* マルコフ連鎖


チャネルインタラクション、各コンバージョンパス/ジャーニーのシャープレイアトリビューション、および/または各チャネルのアトリビューション済みコンバージョンをTDテーブルとしてエクスポートできます。

MTAノートブックからの可視化例を以下に示します:
![](/assets/image2023-2-28_10-28-1.c03de9d077ec82959f9db27bf18b811648e2d9ac46177e9f4bc3aefcbbc53a1e.3cb60505.png)
![](/assets/image2023-2-28_10-28-30.93824ad8cf836d55c49e3f5fb1550ed6456c9afbf3694c6181017eb4ab7c35ea.3cb60505.png)
![](/assets/image2023-2-28_10-29-39.afcc3b3292f2f04f8701f06bf93fdf69c3859903cd4d8ce3727877748a4b4fe5.3cb60505.png)
![](/assets/image2023-2-28_10-30-8.faa0ac16672ce13737afbdcbc0e6d6c78c16ec040c606ec71ceaa614fa8dfbe1.3cb60505.png)

## ワークフロー例

[Treasure Boxes](https://github.com/treasure-data/treasure-boxes/blob/automl/machine-learning-box/automl/mta.dig)でサンプルワークフローをご覧ください。


```yaml
+run_mta:
  ipynb>:
    notebook: MTA
    # required param
    input_table: ml_datasets.mta
    # optional param
    tstamp_column: tstamp
    user_column: user
    channel_column: channel
    conversion_column: conversion
```

### パラメータ

| パラメータ名 | コンソール上のパラメータ | 説明 | デフォルト値 |
|  --- | --- | --- | --- |
| docker.task_mem | Docker Task Mem | タスクメモリサイズ。契約プランに応じて、64g、128g(デフォルト)、256g、384g、または512gが利用可能です | 128g |
| input_table | Input Table | MTAを実行するTDテーブルをdbname.table_nameとして指定します | - |
| tstamp_column | Tstamp Column | タイムスタンプカラム名 | tstamp |
| user_column | User Column | ユーザーカラム名 | user |
| channel_column | Channel Column | チャネルカラム名 | channel |
| conversion_column | Conversion Column | コンバージョンカラム名 | conversion |
| ignore_channels | Ignore Channels | 無視するチャネルの文字列リストを指定します | None |
| first_touch | First Touch | 0.4(40%)などのファーストタッチの重要度を制御するポジションベースモデリングパラメータ | 0.4 |
| last_touch | Last Touch | 0.4(40%)などのラストタッチの重要度を制御するポジションベースモデリングパラメータ | 0.4 |
| overwrite_channel | Overwrite Channel | ラストタッチ・ノンダイレクトモデリングのパラメータ。指定されたチャネルのタッチポイントを前のタッチポイントのいずれかで置き換えます | None |
| decay_over_time | Decay Over Time | コンバージョンから離れた時間によって失われるパーセンテージを指定するタイムディケイモデリングパラメータ | 0.6 |
| decey_frequency | DecayDecey Frequency | ディケイが発生する頻度/間隔を指定するタイムディケイモデリングパラメータ | 12 |
| shapely_lookback_size | Shapely Lookback Size | 各ジャーニーにおけるチャネルチェーンの長さの制限を定義するシャープレイアトリビューションモデリングパラメータ | 4 |
| export_channel_interactions | Export Channel Interactions | チャネルインタラクションをエクスポートする出力テーブル名 | None |
| export_shapley_attributions | Export Shapley Attributions | 各コンバージョンパスのシャープレイアトリビューションをエクスポートする出力テーブル名 | None |
| export_attributed_conversions | Export Attributed Conversions | 各チャネルのアトリビューション済みコンバージョンをエクスポートする出力テーブル名 | None |