# LINE リッチメニュー切り替え

LINE リッチメニューは、LINE チャット画面の下部に表示されるインタラクティブなナビゲーションメニューです。Engage Studio では現在、LINE リッチメニューを作成・管理するための組み込みインターフェースを提供していませんが、Audience Studio のセグメンテーションと LINE Messaging API コネクタを組み合わせることで、リッチメニュー切り替え機能を実装できます。

## 概要

このガイドでは、以下のワークフローを使用して、ユーザーセグメントに基づいて LINE リッチメニューを切り替える方法を説明します:

1. Audience Studio でユーザーセグメントを作成
2. サードパーティツールを使用してリッチメニューを設計・設定
3. リッチメニュー ID を使用して LINE Messaging API コネクタを設定
4. セグメントをアクティブ化して特定のユーザーにリッチメニューを適用


## 前提条件

開始する前に、以下が必要です:

- **LINE 公式アカウント** - ビジネス用のアクティブな LINE 公式アカウント
- **LINE Developers Console へのアクセス** - 認証情報を取得するための LINE Developers Console へのアクセス
- **チャネルアクセストークン** - LINE チャネルからの有効なチャネルアクセストークン
- **Treasure Data アカウント** - Audience Studio および Engage Studio へのアクティブなアクセス
- **ユーザーセグメント** - LINE ユーザー ID を含むカラムを持つ Treasure Data 内のユーザーデータ


## リッチメニューデザインツール

現在、リッチメニューの作成にはサードパーティツールが必要です。参考として、**LINE Rich Menu Editor** は、Treasure Data と統合できるオープンソースツールです:

**ツール Web サイト**: [LINE Rich Menu Editor](https://toru-takahashi.github.io/line-richmenu-editor/)

このツールは以下を提供します:

- ビジュアルリッチメニューデザイナー
- 画像のアップロードとタップエリアの設定
- LINE API との直接統合
- Treasure Data アクティベーション用のリッチメニュー ID 生成


注: これは参考情報としてのみ提供されています。LINE リッチメニューを作成し、リッチメニュー ID を取得できる任意のツールまたは方法を使用できます。

## セットアップ: Integration Hub で LINE 認証を設定

リッチメニュー切り替えを実装する前に、Integration Hub で LINE 認証情報を設定する必要があります:

1. メインメニューから **Integration Hub** に移動
2. 左サイドバーで **Catalog** を選択
3. "line" を検索するか、スクロールして LINE 統合を見つける
4. カタログ内の **LINE Messaging** を見つける
5. **Create Authentication** をクリックして LINE 認証情報を設定


![LINE Integration Hub Catalog](/assets/integration-hub-line-catalog.135b3cc00631dd7f77c9ec5ee205860f9d421e1f2a3bccf834326a6ca68058d5.345ee177.png)

1. 認証ダイアログで:
  - **Authentication Name**: この認証情報のわかりやすい名前を入力(例: "LINE Official Account - Production")
  - **Channel Access Token**: LINE Developers Console からのチャネルアクセストークンを貼り付け
2. **Save** をクリックして認証情報を保存


この認証情報は、後の手順で LINE Messaging API コネクタを設定する際に使用されます。

## 実装手順

### ステップ 1: Audience Studio でユーザーセグメントを作成

1. Treasure Data CDP の **Audience Studio** に移動
2. ターゲティング条件(例: ユーザー行動、属性、ライフサイクルステージ)に基づいてセグメントを作成
3. セグメントに、適切なユーザー識別のための LINE ユーザー ID を含むカラム(例: `line_uid`)が含まれていることを確認
4. セグメントを保存してアクティブ化


### ステップ 2: リッチメニューをデザイン

サードパーティツールまたは LINE API を直接使用して、リッチメニューをデザインします:

1. リッチメニューレイアウトを作成:
  - 背景画像をアップロード(推奨サイズ: 2500x1686 ピクセル)
  - 各メニュー項目のタップエリアを設定
  - 各タップエリアのアクション(URL リンク、ポストバックアクションなど)を設定
2. リッチメニュー設定を JSON としてエクスポート


参考ツールとして [LINE Rich Menu Editor](https://toru-takahashi.github.io/line-richmenu-editor/) を使用する場合は、デザインプロセスについてツールのドキュメントに従ってください。

### ステップ 3: リッチメニューを LINE にアップロード

1. LINE Developers Console から **チャネルアクセストークン**を取得
2. 選択したツールまたは LINE API を直接使用して:
  - リッチメニューを LINE のサーバーにアップロード
  - **リッチメニュー ID**(形式: `richmenu-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`)を取得
3. リッチメニュー ID を安全に保管 - アクティベーション手順で必要になります


### ステップ 4: LINE Messaging API アクティベーションを設定

Audience Studio で、セグメントにリッチメニューを適用するアクティベーションを設定します:

1. **Audience Studio** で作成したセグメントに移動
2. **Create Activation** をクリック
3. アクティベーション設定ダイアログで、以下のパラメータを設定:


![LINE Messaging Activation Configuration](/assets/line-activation-config.75deaa942ec55a304df5ecab7ac339adf4daaebe38cf750dc714fdf469179475.345ee177.png)

**必須パラメータ:**

- **Activation name**: このアクティベーションのわかりやすい名前を入力(例: "line_segment1")
- **Description**: (オプション)このアクティベーションの目的に関するメモを追加
- **Authentication**: Integration Hub で作成した LINE 認証情報を選択(例: "toru_line_segmentation")
- **Target**: ドロップダウンから **Rich Menu** を選択
- **Rich Menu Action**: ドロップダウンから **Link Rich Menu** を選択
- **Rich Menu ID**: ステップ 3 で取得したリッチメニュー ID を入力(形式: `richmenu-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`)


**オプション設定:**

- **Use existing Rich Menu ID for this action?**: LINE に既にアップロードされている既存のリッチメニュー ID を使用する場合は、このチェックボックスをオンにします
- **Skip invalid users?**: セグメント内の一部のユーザーが無効な場合でも処理を続行する場合は、このチェックボックスをオンにします
  - 有効にすると、アクティベーションは無効なユーザーをスキップして続行します
  - 無効なユーザーに遭遇したときにアクティベーションを停止したい場合は、チェックを外したままにします


1. **Next** をクリックして **Output Mapping** 設定に進む


**Output Mapping 設定:**

- **line_uid**: この必須フィールドを、LINE ユーザー ID を含むセグメント内のカラムにマッピングします
  - これは LINE アクティベーションの必須フィールドです
  - 有効な LINE ユーザー ID を含むセグメントのカラムを選択します(カラム名は `line_uid`、`line_user_id`、またはカスタムカラム名など任意の名前で構いません)
  - 選択したカラムに正しい形式の有効な LINE ユーザー ID が含まれていることを確認してください


1. **Next** をクリックしてスケジュール設定を構成
2. すべての設定を確認し、**Create** をクリックしてアクティベーション設定を保存


### ステップ 5: アクティブ化とデプロイ

1. 配信スケジュールを設定(即時または予約)
2. セグメントサイズとターゲティング条件を確認
3. オーディエンスセグメントをアクティブ化
4. Activation ログでアクティベーションステータスを監視


## ユースケース

セグメントに基づくリッチメニュー切り替えにより、さまざまなパーソナライゼーションシナリオが可能になります:

- **新規 vs リピートユーザー** - 初回ユーザーとロイヤルカスタマーに異なるメニューオプションを表示
- **季節キャンペーン** - アクティブなプロモーションや季節イベントに基づいてメニューを切り替え
- **ユーザーライフサイクルステージ** - オンボーディング、エンゲージメント、リテンション段階に応じてメニューをカスタマイズ
- **行動ターゲティング** - 購入履歴、閲覧行動、またはエンゲージメントレベルに基づいてメニューを表示
- **A/B テスト** - セグメント化されたユーザーグループで異なるメニューデザインをテスト


## テストと検証

全体のオーディエンスにデプロイする前に:

1. 既知の LINE ユーザー ID を持つ小規模なテストセグメントを作成
2. テストリッチメニューをセグメントに適用
3. 以下を検証:
  - リッチメニューが LINE 上で正しく表示されること
  - タップアクションが期待通りに動作すること
  - ユーザー遷移が適切に発生すること
4. エラーがないか Activation ログを監視


## トラブルシューティング

### リッチメニューが表示されない

- **Line User ID マッピングを確認**: セグメント内で `line_uid` にマッピングしたカラムに有効な LINE ユーザー ID が含まれていることを確認
- **トークンの有効性を確認**: チャネルアクセストークンが有効で、必要な権限を持っていることを確認
- **セグメントサイズを確認**: セグメントにユーザーが存在し、アクティブな LINE フォロワーであることを確認


### 画像アップロードの問題

- **画像形式**: PNG または JPEG 形式を使用
- **画像サイズ**: LINE の推奨サイズ(2500x1686 ピクセル)に従う
- **ファイルサイズ**: 最適な読み込みのため、画像ファイルサイズを 1MB 以下に保つ


### タップアクションが動作しない

- **タップエリア設定を検証**: タップエリアが重複せず、意図したメニュー領域をカバーしていることを確認
- **アクション URL を確認**: URL が適切にフォーマットされ、アクセス可能であることを確認
- **ポストバック設定を確認**: Webhook アクションを使用している場合、ポストバックデータが正しく設定されていることを確認


## 制限事項

- リッチメニューの作成とデザインは Engage Studio の外部で実行する必要があります
- リアルタイムのメニュー切り替えは利用できません。アクティベーションのタイミングはコネクタのスケジュールに依存します
- LINE 公式アカウントごとに最大 1,000 個のリッチメニュー(LINE プラットフォームの制限)


## その他のリソース

- [LINE Rich Menu Editor](https://toru-takahashi.github.io/line-richmenu-editor/)
- [LINE Messaging API Reference](https://developers.line.biz/en/reference/messaging-api/)
- [LINE Messaging Export Integration](/int/line-messaging-export-integration)
- [Audience Studio Documentation](/products/customer-data-platform/audience-studio)