Engage Studio で LINE メッセージを配信するには、各ペアレントセグメントのプロファイルにプロファイル属性として LINE User ID が保存されている必要があります。このページでは、LINE User ID とは何か、取得方法、ペアレントセグメントへの保存方法について説明します。
LINE User ID は、プロバイダーごとに各 LINE ユーザーに付与される一意の識別子です。ユーザーの表示名や LINE ID(ユーザーネーム)とは異なります。
- フォーマット:
U[0-9a-f]{32}— 例:U8189cf6745fc0d808977bdb0b9f22995 - スコープ: プロバイダー固有。同一の LINE ユーザーでも、異なる LINE プロバイダー(チャネル)では異なる User ID が割り当てられます。
- 安定性: 同一プロバイダーに対するユーザー ID は変わりません。
LINE User ID(Uxxxxxxxx... 形式)は、ユーザーの LINE ID(@example のような人が読める形のユーザーネーム)とは異なります。Messaging API でのメッセージ配信に使用できるのは、U[0-9a-f]{32} 形式の User ID のみです。
ユーザーが LINE Official Account を友だち追加したり、メッセージを送信したりすると、LINE は設定済みの Webhook URL にイベントを送信します。このイベントのペイロードに LINE User ID が含まれています。
Webhook イベント例(follow イベント):
{
"events": [
{
"type": "follow",
"source": {
"type": "user",
"userId": "U8189cf6745fc0d808977bdb0b9f22995"
},
"timestamp": 1625000000000
}
]
}この方法でユーザー ID を収集するには、Treasure Data で Streaming Ingress Connector(LINE Messaging API Webhook) を設定します。Webhook イベントはリアルタイムで配信され、Treasure Data データベースに保存されます。userId フィールドをペアレントセグメントのプロファイル属性にマッピングすることで利用できます。
設定の詳細は LINE Messaging API Webhook セットアップガイド を参照してください。
LIFF は LINE アプリ内で動作するウェブアプリプラットフォームです。ユーザーが LIFF アプリを開いた際に、LIFF SDK を使って LINE User ID を取得できます。
liff.init({ liffId: "YOUR_LIFF_ID" }).then(() => {
liff.getProfile().then(profile => {
console.log(profile.userId); // "U8189cf6745fc0d808977bdb0b9f22995"
});
});LIFF は特定のタッチポイント——たとえばロイヤルティプログラムへの登録や LINE 環境内での購入完了時——でユーザー ID を収集するのに適しています。取得した User ID は JavaScript SDK またはサーバーサイドの API コールを通じて Treasure Data に送信できます。
LIFF のログインセッションはブラウザ内のみで管理され、Webサイトの認証セッションや LINE Login とは完全に独立しています。これは次のことを意味します。
- ユーザーが LINE Login でWebサイトにログイン済みであっても、
liff.isLoggedIn()はfalseを返します。 - 通常のWebサイトで
liff.login()を呼び出すと、ログイン済みのユーザーであっても意図しないタイミングで LINE ログイン画面への遷移が発生します。これはWebサイトの UX として受け入れられません。 - 逆に、LIFF でログイン済みであっても、Webサイトのログイン状態にはなりません。
推奨: LIFF は LINE アプリ内でのみ稼働するWebアプリ(LINE ミニアプリなど)に限って使用してください。通常のWebサイトでは、以下に説明するサーバーサイドの方式を使用してください。
通常のWebサイト向け(推奨): アプリケーションサーバー側から LINE User ID をページ(JavaScript 変数・Cookie・localStorage・タグマネージャーの DataLayer など)に出力し、Treasure Data JavaScript SDK タグを使って td_ssc_id と LINE User ID の両方をWebイベントログに含めて Treasure Data に格納します。この方式はサーバーサイドの開発が必要ですが、LIFF のセッション分離問題を回避できます。
LINE Login を使うと、ユーザーが LINE アカウントでウェブサイトやアプリにログインできます。認証が成功すると、LINE Login API はプロファイルオブジェクトの一部として LINE User ID を返します。
この方法は、ユーザーの LINE ID を既存のシステムアカウントと紐付けたい、ウェブまたはアプリベースの登録フローに適しています。
認証済みまたはプレミアムの LINE Official Account を対象に、LINE は友だち追加済みのユーザーの User ID を一覧取得できる API エンドポイントを提供しています。
既存のフォロワーを Treasure Data に一括インポートする際に活用できます。このエンドポイントはページネーション対応で、レートリミットの制約があります。
Get Follower IDs API は認証済みまたはプレミアムの LINE Official Account のみ利用可能です。通常アカウントではこのエンドポイントを使用できません。
Treasure Data には Get Follower IDs API 向けの組み込みコネクタが存在しません。この方法を利用するには、LINE API の呼び出し・ページネーション処理・取得した User ID の Treasure Data テーブルへの書き込みを行うカスタムスクリプトを実装する必要があります。Treasure ワークフロー のタスクとして実行できます。実装については Treasure アカウント担当者にお問い合わせください。
収集方法にかかわらず、Engage Studio のキャンペーンターゲティングで使用する前に、LINE User ID をペアレントセグメントのマスターテーブルにプロファイル属性として保存する必要があります。
推奨手順:
- 上記いずれかの方法で LINE User ID を収集します。
- ペアレントセグメントのマスターテーブルの専用カラム(例:
line_user_id)に User ID を保存します。 - Engage Studio で LINE キャンペーンを設定する際、配信ターゲットの識別子として LINE User ID を含むペアレントセグメントのプロファイル属性を選択します。
保存済みの LINE User ID が有効かどうかを確認するには、プロフィールを取得する エンドポイントを使用します。HTTP ステータス 200 が返された場合、その User ID は有効であり、ユーザーがまだアカウントの友だちであることが確認できます。無効またはブロック済みの User ID による配信エラーは、配信ログに記録されます。