• 製品
  • 価格
  • リソース
  • サポート

Retail E-commerce Solution and Live Integration Guide

ソリューション概要

ライブコマースは、リアルタイムの音声・ビデオインタラクションとオンライン取引を融合させた新しいEコマースモデルです。アンカーはライブ配信ルームを通じて視聴者に商品をリアルタイムで展示・解説し、弾幕(コメント)や店舗カスタマーサービスとのプライベートチャットなどの方法でユーザーとインタラクションすることで、ユーザーの参加意識と購買転換率を向上させます。小売ECシーンにおいて、ライブシステムは通常、低遅延の音声・ビデオ機能、高同時接続のインスタントメッセージング機能、そして豊富なインタラクションや業務メッセージ同期機能を同時に備える必要があり、商品展示、ユーザーインタラクション、注文通知、マーケティングキャンペーンなどの複雑なニーズを満たすことが求められます。
本ソリューションはTencent RTC関連製品(LiveChat)を基に、ECライブシステム構築プロセスにおける一般的な要件と解決策を整理し、開発者が高度なカスタマイズ能力を維持しながら迅速にECライブシステムを構築できるようにします。また、Beauty ARの高度な美顔エフェクト統合ガイドを提供し、美顔、フィルター、動きのあるステッカーなどをサポートし、小売ECライブ配信におけるアンカーのイメージとインタラクティブ体験への高い要求を満たします。ブランド自社EC、プライベートライブ、クロスボーダーEC、ショッピングモール内蔵ライブなど、さまざまなビジネスシーンに適用可能です。


全体アーキテクチャ設計

ECライブコマースシステムは、単なる「ショッピング機能付きライブ配信ルーム」ではなく、複数の独立したサブシステムが連携して構成される複合型ビジネスプラットフォームです。この章では、グローバルな視点から、まずシステム全体の境界とコアサブシステムを整理し、その後LiveのUIなし統合ソリューションであるAtomicXCore SDKの内部アーキテクチャに深く掘り下げ、開発者が実際のコーディングに取り掛かる前に明確な全体像を把握できるようにします。

システム全体アーキテクチャ

完全なECライブストリーミングシステムは、少なくとも5つの主要なビジネスドメインをカバーし、各ドメインには独立した技術スタックとデータモデルがありますが、ライブシーンでは緊密な連携が必要です:
業務ドメイン
コア責任
技術基盤
提供者
ライブストリーミングドメイン
オーディオビデオのプッシュ/プル型配信、リアルタイムインタラクション、ルーム管理
AtomicXCore SDK
Tencent Cloud
EC取引ドメイン
商品管理、在庫管理、注文処理、支払い決済、アフターサービスフロー
業務自社構築(EC中核、決済プラットフォーム)
顧客側
マーケティングドメイン
活動編成、特典配布、トラフィック運営
業務自社構築(マーケティングプラットフォーム)
顧客側
カスタマーサポートドメイン
ユーザー相談、インテリジェントルーティング、マルチデバイス対応
Tencent Cloud インテリジェントカスタマーサービス(Desk)
Tencent Cloud
ユーザードメイン
アカウントシステム、ファン運営、プライベートコミュニティ
Live / Chat SDK
Tencent Cloud

クライアント階層アーキテクチャ

クライアント視点では、ECライブストリーミングアプリは通常、以下の5つの階層で構成されています:

各階層の責任説明:
クライアントレイヤー:宣言型フレームワーク(例:AndroidはJetpack Compose、iOSはSwiftUI)に基づいて構築され、すべてのページのリアクティブレンダリングを担当します。ライブストリーミングページは最も複雑なUIシナリオであり、ビデオストリームの上に弾幕、商品ポップアップ、ギフトアニメーション、マルチコネクトフローティングウィンドウなどの複数のインタラクションレイヤーを重ねる必要があります。
ViewModel:MVVMアーキテクチャに従い、各ページに対応する独立したViewModel。ViewModelの中心的な役割は、異なるデータソースからの状態を組み合わせることです。例えば、ライブルームViewModelは、AtomicXCore Storeのライブ状態(ルーム情報、通話状態、コメントリストなど)と業務RepositoryのECデータ(現在説明中の商品、ショッピングカートの数量など)を同時に購読する必要があります。
Core SDK:ライブ機能はAtomicXCore SDKのStoreシステム(LoginStore、DeviceStore、BarrageStoreなど)によって提供されます。業務機能は開発者が構築したRepository層によって提供され、各Repositoryは対応するサーバーAPIのネットワーク呼び出し、データキャッシュ、エラー処理(例:ProductRepositoryは商品検索インターフェースをカプセル化)をカプセル化します。
Server Layer:Tencent Cloudの基盤となるリアルタイム音声・動画(Tencent RTC)、インスタントメッセージング(Tencent Chat)、美顔(TEBeautyKit)機能、および決済などのサードパーティSDKを統合します。開発者は通常、このレイヤーを直接操作する必要はなく、L3のStoreとRepositoryを介して間接的に呼び出します。
Business:すべてのサーバー側ビジネスロジックを担い、クライアントはREST APIまたはWebSocketを介して通信します。

サーバーアーキテクチャ概要

サーバーはマイクロサービスまたはモジュール方式で構成することを推奨し、コアサービスは以下のように分割されます:
サービス
コア責任
外部インターフェース
依存するクラウド機能
ライブストリーミングサービス
ルーム管理、ルームメンバー管理、通話管理、メッセージ管理
REST API
ライブサーバーAPI
オーソリサービス
UserSigの生成と更新、資格情報管理
REST API
RTC/Chat オーソリサービス
商品サービス
商品CRUD、在庫管理、価格戦略
REST API
業務データベース
注文サービス
注文、支払いコールバック、返金、コミッション決済
REST API + 非同期メッセージ
支払いプラットフォーム
マーケティングサービス
クーポン、タイムセール、抽選、活動編成
REST API
業務データベース
カスタマーサービス
セッションルーティング、ロボット対応、インテリジェント応答
REST API + Webhook
インテリジェントカスタマーサービス Desk
ユーザーサービス
アカウントシステム、会員ランク、ファン関係
REST API
Live/Chat 共用アカウントシステム
プッシュサービス
配信リマインダー、マーケティングプッシュ(特典/タイムセール/イベント告知)、取引通知、オフラインリーチ
REST API
TIMPush
データサービス
ライブデータ統計、コンバージョン分析、ユーザープロファイル
非同期メッセージ + バッチ処理
データウェアハウス

コアサブシステムの分解



ライブサブシステム

ライブサブシステムは、eコマースライブの技術基盤であり、AtomicXCore SDKがコア機能を提供しています。SDKの内部設計を理解することは、ライブ機能を統合する前提条件です。
ストア駆動型アーキテクチャ
AtomicXCore SDKはStore-Drivenアーキテクチャを採用しており、各機能は独立したStoreとして状態と操作APIを提供し、リアクティブなデータフローを通じてビジネス状態を公開し、Listenerを通じてリアルタイムイベントを配信します。開発者は必要に応じて対応するStoreを取得して呼び出すことができます。グローバルStoreはアプリケーションレベルで共有され、ルームレベルのStoreはliveIDごとにライフサイクルが管理され、ルームを退出する際にはリスナーとリソースを明示的に解放する必要があります。
Storeモジュール分類
SDKのStoreモジュールは、ライフサイクルに基づいて2つのカテゴリに分類できます:グローバルシングルトンStoreとルーム次元Store。グローバルシングルトンStoreはアプリケーションのライフサイクル全体で共有され、ルームを跨いだ汎用的な能力管理に適しています。ルーム次元Storeはcreate(liveID)を通じて取得され、内部実装では同じliveIDに対して同じインスタンスが返されます。
Store/Component
機能説明
API ドキュメント
LiveCoreView
ライブストリーミングビデオの表示とインタラクションの中核ビューコンポーネント:ビデオストリームのレンダリングとビューウィジェットの処理を担当し、配信者のライブ配信、視聴者とのマイク接続、配信者間の接続などのシナリオをサポートします。
LiveListStore
ライブルームの全ライフサイクル管理:作成/参加/退出/破棄、ルームリストの検索、ライブ情報(名前、お知らせなど)の変更、ライブステータス(キックアウト、終了など)の監視。
DeviceStore
音声・映像デバイスの制御:マイク(オン/オフ・音量)、カメラ(オン/オフ・切り替え・画質)、画面共有、デバイス状態のリアルタイム監視。
CoGuestStore
視聴者との通話管理:通話申請/招待/承諾/拒否、通話メンバーの権限制御(マイク/カメラ)、状態同期。
CoHostStore
配信者間のクロスルーム接続:複数のレイアウトテンプレート(動的グリッドなど)をサポート、接続の開始/受け入れ/拒否、接続中の配信者間のインタラクション管理。
BattleStore
配信者PK対戦:PKの開始(時間/相手の設定)、PK状態の管理(開始/終了)、スコアの同期、対戦結果の監視。
GiftStore
ギフトインタラクション:ギフトリストの取得、ギフトの送信/受信、ギフトイベントの監視(送信者、ギフト詳細を含む)。
BarrageStore
弾幕機能:テキストの送信 / カスタム弾幕、弾幕リストの管理、弾幕状態のリアルタイム監視。
LikeStore
いいねインタラクション:いいねの送信、いいねイベントの監視、総いいね数の同期。
LiveAudienceStore
視聴者管理:リアルタイムの視聴者リスト(ID/名前/アバター)の取得、視聴者数の統計、視聴者の出入りイベントの監視。
AudioEffectStore
音声エフェクト:ボイスチェンジ(子供声/男性声)、リバーブ(KTVなど)、イヤーモニター調整、エフェクトのリアルタイム切り替え。
BaseBeautyStore
ベーシックビューティ:肌のなめらかさ/美白/血色感(0-9段階)の調整、ビューティ状態のリセット、効果パラメータの同期。

EC取引サブシステム

EC取引サブシステムは通常、ビジネス層によって独自に構築され、AtomicXCore SDKは対応する専用ストアを提供しません。ただし、AtomicXCoreのカスタムメタデータ(MetaData)機能を再利用して、ルーム内でビジネス関連の情報を保存および同期したり、カスタムメッセージ(CustomMessage)機能を再利用して、ルーム内でビジネス関連のメッセージをブロードキャストしたりすることは可能です。
機能モジュール
コア機能
ライブルームとの連動方法
商品管理
商品CRUD、SKU、カテゴリ、検索
入室時に商品リストを取得;配信者が商品の説明を切り替える際にカスタムメッセージでブロードキャスト
ショッピングカート
カート追加、数量変更、価格見積もり
ライブ配信内で軽量にカート追加可能、配信から離れる必要はありません
注文システム
注文、支払い、返金、物流
注文には、liveIdanchorIdが含まれ、コンバージョン帰属に使用されます
在庫管理
リアルタイム減算、事前確保、売り切れ防止
秒殺/タイムセールイベントのシナリオはライブのリズムと同期する必要があります

マーケティングサブシステム

機能モジュール
コア機能
ライブルームとの連動方法
クーポン
クーポン発行、クーポン受け取り、クーポン利用、有効期限管理
ライブ配信でクーポン配布通知をカスタムメッセージでブロードキャストする
秒殺イベント
カウントダウン、在庫ロック、セール制御
商品掲載ポップアップと連動し、カウントダウンと在庫状況を同期する
抽選
参加資格の確認、抽選、賞品の配布
ライブ配信ルーム内で抽選のエントリーと当選結果を表示する

カスタマーサポートサブシステム

機能モジュール
コア機能
ライブルームとの連動方法
インテリジェントカスタマーサービス
生成AIによる自動応答、意図認識
ライブ配信ルームの商品カードに埋め込まれた「相談」エントリは、カスタマーサービスセッションにジャンプします
人工カスタマーサービス
セッションルーティング、人工オペレーター割り当て
商品/注文のコンテキストをカスタマーサービスセッションに持ち込む
注文カード
セッションで構造化された注文情報を表示する
カスタマーサービスとユーザー間の確認コストを削減する
サービス評価
満足度評価、品質検査分析
セッション終了後のフィードバック収集

ユーザーとコミュニティサブシステム

機能モジュール
コア機能
ライブルームとの連動方法
アカウント体系
登録、ログイン、実名認証
ライブ視聴や取引行為にアイデンティティ基盤を提供します
会員レベル
ポイント、レベル、特典
カスタマーサポートの優先度、優遇措置、通話資格に影響を与えます
ファンコミュニティ
コミュニティグループ、トピック、お知らせ
ライブ配信の予熱、特典の配布、ユーザーの定着

プッシュ到達サブシステム

機能モジュール
コア機能
ライブルームとの連動方法
ライブ配信の予告
ライブ配信の予約、配信開始リマインダー
オフラインプッシュサービスを通じてフォロワーに到達させる
マーケティングプッシュ
特典/秒殺/イベントのウォームアップ
マーケティングキャンペーンのプッシュで非アクティブユーザーを喚起し、コンバージョンを向上させる
取引通知
注文リマインダー、配送通知
ライブ配信での注文商品の動向や注文メッセージをユーザーにリアルタイムで通知します
インタラクティブメッセージ
個人メッセージ、店舗カスタマーサポートメッセージ
ユーザーに個人メッセージ、商品店舗のカスタマーサポートなどのインタラクティブメッセージをリアルタイムで通知します

ライブルーム機能開発ガイド

本章では、ライブルームの一般的な機能の開発ガイドを提供し、対応する機能の説明ドキュメントをより迅速に見つけるのに役立ちます。
基本使用:配信開始と視聴。
ライブ配信のインタラクション:弾幕メッセージ、ギフト送信・いいね、単一ルーム内通話、クロスルーム接続 / PK。
メンバー管理:ユーザーレベル/身分、ミュートと追放/キック、オンライン視聴者リスト、オンライン人数。
ライブ配信ルーム管理:配信ルーム一覧、配信ルーム審査、ライブ配信監視、配信ルーム告知、ライブ配信統計。
シーンガイド:ECシーン、ライブ配信ルームの弾幕抽選、レッドパケット秒殺/福袋。

事前準備

開始する前に、サービスの開通、AtomicXCoreのインポート、ログインロジックの実装などの事前準備を完了する必要があります。
サービスの開通Tencent RTCコンソールにログインし、インタラクティブライブ配信Liveアプリケーションを作成し、体験版を取得または正式版を購入します。
AtomicXCoreのインポート:現在のプロジェクトにAtomicXCoreをインポートし、AtomicXCore SDKの依存関係を追加します。
ログインロジックの実装:プロジェクト内でLoginStoreを呼び出してログインを完了させます。これはAtomicXCoreのすべての機能を使用するための重要な前提条件です
説明:
ライブルーム機能開発に関する事前準備について、詳細は事前準備をご参照ください。

配信者側で完全に実装されます

配信者の配信手順は以下の通りで、簡単な操作手順で素早くライブ配信を開始できます。

説明:
配信者側の詳細な実装については、配信者のビデオ配信開始を実装をご参照ください。

LiveCoreView を統合

LiveCoreViewは配信者と視聴者で共有されるコアレンダリングコンテナであり、「ライブ映像の受け皿層」と理解できます。ページ内での階層とライフサイクルを明確にすることが重要です。
階層
機能
説明
基盤
LiveCoreView
ローカルプレビューまたはリモートビデオを表示
中層
アンカーの情報、商品カード、オンライン人数
常駐軽インタラクション情報
上層
弾幕、ギフト、通話ポップアップ
高頻度動的インタラクション
最上層
ライブ終了確認、異常通知
ブロッキング操作とフェイルセーフ通知

設備管理

DeviceStoreは、音声・映像デバイスを管理する包括的なAPIを提供し、配信者が配信開始、バックグラウンド切り替え、異常からの復旧などのシナリオでも一貫したデバイス状態管理を維持できるようにします。
管理項目
説明
マイク管理
マイクをオン/オフにし、収集音量と出力音量を設定します
カメラ管理
カメラをオン/オフにし、前後カメラを切り替え、ミラーリングとビデオ品質を設定します
オーディオルーティング
スピーカーとイヤホンを切り替える
画面共有
画面共有機能のオンとオフ
ネットワーク状態
ネットワーク品質情報のリアルタイム監視

ライブルームを作成

モード1:クライアントがルームを作成
配信者クライアントは直接 LiveListStore.shared().createLive を呼び出してルームを作成し、自動的にルームに入って配信を開始します。
このモードは、軽量な検証や運用管理が少ないシナリオに適しており、特長として迅速な接続と短いリンクが挙げられますが、業務システムにおけるルームメタデータの統一的な制約は弱くなります。
モード2:サーバー側でルームを作成
サーバー側はREST API create_room を呼び出して空のルームを作成し、配信者クライアントはさらに LiveListStore.shared().joinLive を呼び出してルームに入り、配信を開始する必要があります。
このモードの核心的な価値は「インターフェースを1回余計に回す」ことではなく、ルームのライフサイクル、商品のバインディング、配信者の権限、活動ステータスをサーバー側で一括管理することにあります。

ライブルームを終了

モード1:クライアントがライブ配信を終了
配信者クライアントは直接 LiveListStore.shared().endLive を呼び出して配信を終了します。
このモードは一般的な軽量ライブ配信シーンに適用され、クライアント側だけで配信終了動作を独立して完了でき、サーバー側の参加は必要ありません。
モード2:サーバー側でルームを破棄
配信者クライアントが終了動作をトリガーし、サーバー側がREST API destroy_room を呼び出してルームを解散します。
このモードは比較的複雑なライブ配信シーンに適用され、サーバー側でルームのライフサイクルを一元的に管理でき、配信終了時に関連業務を決済します。

視聴者側で完全に実装されます

視聴者の視聴手順は以下の通りで、簡単な操作手順でライブ配信を視聴できます。

説明:
視聴者側の詳細な実装については、視聴者の入室と視聴を実装をご参照ください。

ライブルームに入る

視聴者クライアントは LiveListStore.shared().joinLive を呼び出してルームに入り、LiveCoreView が自動的に現在のルームのビデオストリームを再生します。
ライブルームに入った後、業務データの同期が完了していることに注意する必要があります。例えば、弾幕エリア、商品カード、カスタマーサービスエントリなどです。

ライブルームを退出

視聴者クライアントは LiveListStore.shared().leaveLive を呼び出してルームを退出し、SDK が自動的にストリームの取得を停止してルームを退出します。
ライブルームを正常に退出した後、ルーム関連のリスニングとメッセージサブスクリプションを停止し、ルームレベルのStoreをクリーンアップし、ライブリストまたはおすすめページに戻る必要があることに注意してください。

視聴者とのリアルタイム通話インタラクションの実現

連麦はECライブ配信において視聴者とのインタラクティブ性を高める重要な機能で、視聴者と配信者がリアルタイムで音声・ビデオ通話を行うことができます。AtomicXCoreはCoGuestStoreモジュールを提供しており、視聴者の連麦に関する一連の業務プロセスを管理するために特別に設計されています。CoGuestStoreは2つの主要な連麦シナリオをサポートしています:視聴者がマイク参加を申請する場合と、配信者が視聴者をマイクに招待する場合です。

視聴者がマイク参加を申請する

視聴者が自発的にリアルタイム通話リクエストを開始し、配信者がリクエストを受信後に承諾または拒否を行います。


配信者がマイク参加を招待する

配信者は、ライブ配信中の任意の視聴者に対してリアルタイム通話招待を自発的に行うことができ、視聴者は招待を受信後に承諾または拒否を行います。

説明:
視聴者とのリアルタイム通話インタラクション機能の詳細な実装については、視聴者のマイク参加をご参照ください。

配信者間のリアルタイムPK機能の実現

AtomicXCoreは、CoHostStoreBattleStoreの2つのコアモジュールを提供しており、それぞれクロスルーム接続とPK対戦を処理します。
「配信者PK接続」の全体的なプロセスは、通常4つの主要な段階で構成されており、以下の通りです:
1. クロスルーム接続:2人の配信者が接続を確立し、画面が同じビューに表示されます。
2. PKを開始:接続が成功した後、いずれかの側がPKチャレンジを開始できます。
3. PK対戦:双方がPK対戦を行い、PKスコアをリアルタイムで更新します。
4. PK接続を終了:インタラクションが終了した後、配信者は論理的な順序に従ってまずPK状態を終了し、その後クロスルーム接続を切断する必要があります。

説明:
配信者間のリアルタイムPKに関する詳細な実装内容については、配信者連携とPKをご覧ください。

リアルタイム弾幕システムの実装

弾幕はECライブストリーミングにおいて最も重要なインタラクション形式の一つで、ユーザーの即時フィードバック、商品相談、感情表現を担っています。AtomicXCoreフレームワークのBarrageStoreモジュールを使用することで、機能豊富で高性能な弾幕システムをライブアプリに迅速に統合できます。


メッセージ階層化

クライアントはメッセージタイプに応じて分流することを推奨します:テキストメッセージ、カスタムメッセージ、ローカル通知など。
タイプ
用途
表示方法
通常のテキストメッセージ
相談、交流、感情表現
弾幕リスト / フローティングスクリーン
カスタムメッセージ
ギフト、商品説明、クーポンリマインダー
カード / エフェクト弾幕
ローカルヒント
ルーム入室、通話状態、リスク管理ヒント
システムメッセージ

ユーザーレベル/身分識別

ユーザーレベルと身分識別機能は、ライブ配信インタラクションシーンにおいて重要な構成要素であり、異なるユーザーロール、特権レベル、身分状態を区別するために使用され、差別化されたインターフェース表示、インタラクション権限、機能アクセス制御を実現します。LiveKitはデフォルトで基本的な身分識別フレームワークを提供しませんが、以下の方法を参考に実装できます:
1. ご利用の業務バックエンドで、必要なユーザーレベル/身分に関連するロジックに基づき、各ユーザーUserIDに対応するレベル/身分を自身で管理・保存してください。
2. メッセージ送信インターフェースとしてBarrageStore.sendCustomMessage()を選択し、dataには業務バックエンドから取得した表示する必要のあるレベル/身分などの情報を設定します。メッセージ受信時、dataを解析してレベル/身分情報を取得し、弾幕リスト上でレンダリングを行います。以下はユーザーレベル/身分識別メッセージの構造例です:
{
"businessID": "user_identity",
"content": "みなさん、ライブルームへようこそ!"
"userIdentity": {
"level": 32,
"levelName": "ダイヤモンド",
"levelIconUrl": "https://your-cdn.com/icons/level_diamond.png",
"badges": [
{
"type": "vip",
"name": "年間VIP",
"iconUrl": "https://your-cdn.com/icons/badge_annual_vip.png",
"color": "#FFD700"
},
{
"type": "fan",
"name": "鉄粉"
"iconUrl": "https://your-cdn.com/icons/badge_fan.png",
"color": "#FF69B4"
}
],
"nameColor": "#FFD700",
"bubbleStyle": "golden_frame"
}
}

弾幕リストUIのパフォーマンス最適化

弾幕リストのパフォーマンス最適化は、高同時接続ライブ配信シナリオにおける重要な課題です。以下の戦略を採用することをお勧めします:
パフォーマンス最適化戦略
実現方法
効果
リスト長さ制限
最近500件のメッセージを保持し、それを超える部分は先頭から削除されます
メモリ使用量を制御する
一括レンダリング
300ミリ秒ごとにUIを一括更新し、個別に更新しません
UIの再描画回数を減らす
ビューの再利用
RecyclerView/UITableView の再利用メカニズムを利用する
オブジェクト作成のオーバーヘッドを削減する
非同期読み込み
図文、カスタムフォント、または複雑なレイアウトのビューを非同期で描画する
メインスレッドのブロックを回避する
説明:
リアルタイム弾幕インタラクションの詳細な実装方法やよくある質問については、弾幕インタラクション機能をご覧ください。

ギフト贈呈システムの実装

ギフトシステムは、インタラクティブなライブ配信の収益化における重要なチャネルであり、ライブ配信ルームの雰囲気を活発にする効果的な手段です。GiftStoreは、AtomicXCoreにおいてライブ配信ルームのギフト機能を専門に管理するモジュールです。これを使用することで、ライブ配信アプリケーション向けに完全なギフトシステムを構築し、豊富な収益化とインタラクティブなシナリオを実現できます。


ギフト素材の設定

ライブ配信ルームで利用可能なギフトの種類、カテゴリ、名称、アイコン、価格、およびアニメーション効果をカスタマイズする必要があります。これにより、運営ニーズとブランドの特徴を満たすことができます。
1. サーバー側の設定:LiveKitサーバーREST APIを使用して、ギフト情報、カテゴリ、多言語対応などを管理します。ギフト設定ガイドドキュメントを参照してください。
2. クライアント側の取得:クライアントでrefreshUsableGiftsを呼び出して設定データを取得します。
3. UI表示:取得したList<GiftCategory>データを使用してギフトパネルを表示します。

SDKに組み込まれたギフトリストではカバーできない高度にカスタマイズされたシナリオ(例:オークション入札、カスタムエフェクトトリガーなど)については、BarrageStore.sendCustomMessage()を使用してカスタムメッセージを補足として送信できます。以下はカスタムギフトメッセージの構造例です:
{
"type": "live_gift",
"giftId": "rocket_001",
"giftName": "ロケット",
"giftCount": 1,
"giftValue": 1000,
"effectUrl": "https://example.com/effects/rocket.json",
"senderId": "user_123",
"senderName": "xxユーザー",
"senderAvatar": "https://example.com/avatar.jpg"
}

課金とギフトの支払いプロセス

視聴者がギフトを贈る際には、アカウントの残高が十分であることを確認し、実際の支払い処理を完了させた後で、ギフトエフェクトの再生とブロードキャストがトリガーされます。
1. バックグラウンドでのコールバック設定:LiveKitのバックグラウンドで、独自の課金システムのコールバックURLを設定してください。コールバック設定ドキュメントを参照してください。
2. クライアント送信:クライアントがsendGiftを呼び出します。
3. バックグラウンドのやり取り:LiveKitのバックグラウンドがコールバックURLを呼び出し、課金システムが支払いを実行して結果を返します。
4. 結果の同期:支払いが成功した場合、AtomicXCoreはonReceiveGiftイベントをブロードキャストします。支払いが失敗した場合、sendGiftcompletionにエラーが返されます。


ECコア機能開発ガイド

本章で取り上げる商品管理、ショッピングカート管理、注文プロセス、クーポンなどのECコア機能はすべてビジネス層の自社構築範囲に属し、AtomicXCore SDKは対応する専用機能モジュールを提供していません。開発者は自ら構築するか、AtomicXCoreの既存Storeを利用して実装する必要があります。以下はECライブストリーミング業務の全プロセス例示図です。


商品リスト/ショッピングカート

商品リスト管理は商品管理の基本機能であり、主に商品の追加、削除、修正、検索などの機能を含みます。通常、バックエンドのデータベースに商品名、説明、価格、在庫、画像などの各種情報を保存します。フロントエンドでは、APIインターフェースを通じてこれらの情報を取得し、リスト形式でユーザーに表示できます。もちろん、ライブ配信中に限定的な商品リストを扱う場合、AtomicXCoreのカスタムメタデータ(MetaData)機能を再利用し、ルーム内で商品リスト情報を保存・同期することも選択可能です。
注意:
1. MetaDataはライブ配信ルームIDと商品リストIDのマッピング関係のみを保存し、ユーザーが商品リストボタンをクリックした後、クライアントは対応する商品情報を表示するためにサーバーにリクエストする必要があります。
2. 在庫と価格は強力なタイムリーなデータであるため、サーバー側を基準とし、クライアント側で最終的な決定を行わないことを推奨します。

商品ポップアップ管理

ライブコマースの過程で、ホストによる商品の説明と出品に伴い、通常、視聴者側に対応する商品情報をポップアップ表示し、視聴者が閲覧や購入をしやすくする必要があります。商品情報ポップアップは、ライブ配信ルーム内にカスタムメッセージを送信することで実現でき、ライブ配信ルームの視聴者はカスタムメッセージを受信後に解析して表示します。また、ビジネス側で独自にカスタムメッセージの送受信を実装することも可能です。


コアニーズ

配信者がライブ中に「ポップアップを表示」をクリックすると、商品情報をすべての視聴者端末にプッシュし、ポップアップを表示する必要があります。以下の要件を満たす必要があります:
リアルタイム性:ライブ配信ルームにいる視聴者は即時に通知を受け取ります。
信頼性:途中から参加した視聴者も現在出品中の商品情報を取得できます。
一意性:各視聴者は同じ出品イベントに対してポップアップを一度だけ表示し、繰り返しトリガーされません。

二重チャネル同期メカニズム

1. チャネルA — カスタムメッセージ(プッシュモデル)
サーバーサイド REST API を呼び出して send_custom_msg を使用し、ライブ配信ルーム内に商品ポップアップのカスタムメッセージをブロードキャストします。この方法はミリ秒レベルのリアルタイム性を備えており、オンライン視聴者への即時通知に適していますが、オフラインストレージはサポートされず、後からルームに入ったユーザーは過去のメッセージを取得できません。商品ポップアップカスタムメッセージのデータ構造の例は以下の通りです:
{
"eventId": "evt_prod_001_1773321389000",
"type": "GOODS_ON_SHELF",
"goodsId": "prod_001",
"goodsName": "Vintage Watch",
"goodsNameZH": "レトロウォッチ",
"goodsNameEN": "Vintage Watch",
"price": 9900,
"priceUSD": 99.0,
"priceCNY": 712.8,
"imageUrl": "/static/products/watch.png",
"serverTs": 1773321389000,
"startTimestamp": 1773321389000
}
2. チャネル B — ルームメタデータ(プルモデル)
サーバーサイド REST API を介して set_room_metadata を呼び出し、商品の出品状態をルームメタデータに書き込みます。この方法はライブ配信のライフサイクルに沿って永続的に保存され、新規参加者がライブ配信情報を能動的に取得する場合に適しています。ただしリアルタイムプッシュではなく、クライアント側の能動的な問い合わせに依存します。商品ポップアップのルームメタデータ構造の例は以下の通りです:
{
"goods_id": "prod_001",
"goods_name": "Vintage Watch",
"goods_name_zh": "レトロウォッチ",
"goods_name_en": "Vintage Watch",
"price": 9900,
"price_usd": 99.0,
"price_cny": 712.8,
"image_url": "/static/products/watch.png",
"start_timestamp": 1773321389000,
"status": "active"
}
注意:
ルームメタデータには eventId フィールドが含まれていません。クライアント側で解析する際には、attr_{goods_id}_{start_timestamp} の形式で独自に生成する必要があります。プレフィックス attr_ はカスタムメッセージの evt_ と区別され、重複排除の衝突を避けることができます。

二重チャネル協調プロセス

手順
操作
説明
1
サーバーがルームメタデータを書き込む
永続化データが先に配置され、後から参加するユーザーが取得できるようにします
2
サーバー/クライアントがカスタムメッセージを送信する
現在オンラインの視聴者にリアルタイムで配信する
3
オンライン視聴者がカスタムメッセージを受信 → ポップアップを表示
チャネルAがトリガー
4
新規視聴者がルームに入室 → ルームメタデータをクエリ → ポップアップを表示
チャネルBがトリガー

商品ジャンプと支払い

ライブ配信ルーム内の視聴者が商品を選択した後、商品リンクをクリックして具体的なECショップにジャンプし、注文の確認と支払いを行う必要があります。ここでのECショップは、プラットフォーム内の店舗または統合されたサードパーティプラットフォームの店舗です。ユーザーが支払いを完了した後、商品の販売状況や在庫情報などを更新するために、支払い結果を取得する必要があります。
説明:
上記の商品管理モジュールは参考用であり、実際のアプリケーションでは業務ニーズに合わせて独自に設計・展開する必要があります。

ライブ配信ルームの弾幕抽選

ライブ配信ルームの弾幕抽選とは、ユーザーが特定の内容の弾幕メッセージを送信してライブ配信ルームの抽選に参加することを指します。実現の考え方は、業務バックエンドがグループ内の発言メッセージ後にコールバックリクエストを送信して弾幕メッセージの内容を取得し、特定の内容に合致するメッセージの送信者を賞プールに追加し、それ以外は処理しないことです。コールバックの使用についてはグループ内発言後のコールバックを参照してください。


红包秒杀/福袋发放

红包秒殺と福袋配布は、ECライブ配信でよく見られるマーケティングインタラクション機能であり、ユーザーの参加意欲と購買転換率を効果的に向上させることができます。TUILiveKit(AtomicXCore)はこの機能を直接提供しませんが、その基盤となる通信能力を活用し、お客様の業務バックエンドと組み合わせて実装することが可能です。

イベント作成と通知

配信者側が業務バックエンドに赤袋/福袋イベントの作成をリクエストします。業務バックエンドがイベントの作成に成功した後、REST APIを通じてライブ配信ルームに通知を送信し、すべての視聴者にイベント開始を通知します。

ユーザー参加ロジック

視聴者側がイベント通知を受信した後、解析して参加エントリーを表示します。ユーザーがクリックすると、あなたの業務バックエンドに参加リクエストを送信します。業務バックエンドはユーザーの資格を検証し、参加情報を記録すると同時に、参加人数をリアルタイムで更新できます。

抽選と結果発表

設定された抽選時間に達すると、業務バックエンドは抽選ロジックを実行します。抽選が完了すると、業務バックエンドは再度REST APIを通じて当選結果をライブ配信ルームにブロードキャストします。

報酬の配布

業務バックエンドは当選結果に基づいて、ユーザーのアカウントに該当する報酬(例えばクーポン、ポイント、残高など)を配布します。このステップは通常、お客様のアカウントまたはマーケティングシステムと連携します。

キーテクノロジーポイント

カスタムメッセージ:この機能の中核は、さまざまなタイプのカスタムメッセージを定義および送受信し、アクティビティの状態(例:「アクティビティ開始」、「結果発表」)を同期することです。クライアントはメッセージタイプに応じて異なるUI効果を表示する必要があります。
業務バックエンド:すべてのアクティビティ管理、ユーザー参加、抽選、および報酬配布のロジックは、お客様の業務バックエンドで処理され、プロセスの安全性と信頼性が確保されます。
説明:
上記の赤い封筒/福袋モジュールは参考用であり、実際のアプリケーションでは業務ニーズに合わせて独自に設計・展開する必要があります。

Chat 機能開発ガイド

ECライブコマースエコシステムにおいて、インスタントメッセージング(Chat)は、ライブ配信ルーム内のリアルタイムなインタラクションだけでなく、プライベートドメインの運営、カスタマーサービス、そしてターゲットを絞ったマーケティングの中核インフラとして機能します。アーキテクチャの明確さと効率性を維持するため、本ソリューションでは階層型統合戦略を採用することを推奨します。
ライブルーム内のインタラクション:弾幕、いいね、ギフト、商品出品通知の処理には引き続き AtomicXCore でカプセル化された BarrageStore を使用し、音声・ビデオとメッセージの高度な同期を確保します。
ライブルーム外のサービス:販売者カスタマーサポート、ファンコミュニティ、マーケティングキャンペーン、およびプッシュ通知の到達には、より完全なソーシャル機能サポートを得るために、Tencent CloudのChat SDKを直接使用して独立実装することを推奨します。
AtomicXCoreのStore体系とは別に、グローバルなChat状態監視およびライブルーム以外の次元でのメッセージ処理を担当する独立したChatServiceモジュールを構築することを推奨します。


販売者カスタマーサポートシステム

販売者カスタマーサポートは、トラフィックとコンバージョンを結びつける重要な架け橋です。ECシナリオでは、ユーザーには以下のような要望がよくあります:
事前相談:商品仕様、在庫照会、サイズ提案、材質説明
注文照会:物流進捗、発送時間、注文状況
アフターサービス:返品・交換手順、品質問題のフィードバック、返金進捗

自動化運用とシステムメッセージのシナリオ

初回セッションや重要なビジネスノードにおいて、ユーザーが相談をクリックしてチャットウィンドウに入った後、貴社の業務サーバーはChat RESTful APIを利用してユーザーに1対1メッセージを能動的に送信できます。これはウェルカムメッセージ、サービスガイド、または取引リマインダーの送信に適しており、自動化運用とシステムメッセージのシナリオに最適です。
ユーザーが照会したい注文番号や具体的な問題を入力した後、メッセージ後コールバック機能を使用して、メッセージをサーバーにコールバックできます。情報を照会した後、Chat RESTful APIを使用してユーザーにダイレクトメッセージを能動的に送信し、ユーザーに回答できます。

販売者による手動返信

販売者による手動返信は、Chat SDKを利用してメッセージを送信するメッセージを受信することができます。

カスタムカード情報

売り手と買い手はC2Cの1対1チャットセッションを使用してコミュニケーションを取り、注文関連情報はcreateCustomMessageでカスタムメッセージを構築し、sendMessageを呼び出して送信できます。カスタムメッセージには注文番号、商品情報、価格ステータス、およびリンクを含めることができ、クライアント側で解析後に注文カードとしてレンダリングされます。詳細はC2Cクライアントメッセージインターフェース説明をご覧ください。

ファンコミュニティ運営

ファンコミュニティチャット機能は、高い粘着性のあるインタラクティブ機能を構築することで、ECユーザーのリピート購入率を大幅に向上させます。
一方的な販売促進から双方向のインタラクションへ変化し、信頼感を構築します。従来のマーケティングプッシュは一方的でしたが、ファンコミュニティチャットはブランドとファン、ファン同士が直接コミュニケーションを取る場を創出します。このリアルタイムな質疑応答、購入品の共有や口コミのシェアは、ユーザーのブランドへの信頼を大幅に高め、信頼こそがリピート購入の基盤となります。
「期間限定限定」のコミュニティ雰囲気を作り出し、衝動買いを刺激します。コミュニティ内では、専用クーポン、タイムセールリンク、新商品の予告を頻繁かつ正確に発信できます。この「集団効果」と「限定感」がユーザーの購買衝動を効果的に引き起こし、単なる購入ニーズを即時の消費行動に変えることができます。
ユーザーをコミュニティ資産として定着させ、ライフサイクル価値を向上させます。ユーザーがコミュニティに参加すると、一時的なトラフィックから長期的に運営可能な「資産」へと変化します。日常的なコンテンツを通じてコミュニティの活性化を維持することで、ブランドはユーザーの心に継続的に訴求し、初回購入から習慣的なリピート購入へと導き、最終的には各ユーザーの長期的な価値を最大化できます。

グループチャットの作成とメンバー管理

Community グループタイプを採用し、Community タイプは最大100万人のグループをサポートしています。ファンが増えてもグループの人数容量を心配する必要はありません。クライアント/サーバー インターフェースを使用してグループチャットを作成し、クライアント/サーバー インターフェースでミュート、メンバー削除、管理者設定、グループのオンラインメンバー数の取得などの機能を利用できます。クライアント/サーバー インターフェースでメンバーを招待することも可能です。

グループプロファイル設定

クライアント/サーバー インターフェースを使用して、グループ名、グループ通知などの基本的なグループ情報を取得および変更することができます。

商品ショッピングカート

グループチャットの右上にある「商品ショーケース」は、グループ属性(Group Attributes)を使用してグループと商品リストのマッピング関係を保存できます。クライアントはグループチャットに入るときにグループ属性を読み取り、対応する商品リストページにジャンプします。商品システムはあなたのアプリの業務システムによって実装されます。

マーケティングキャンペーン

ECライブコマースシーンにおいて、マーケティング活動は通常2つの大きなカテゴリーに分類できます:
ライブ配信内のマーケティングキャンペーン(配信ルーム単位)ライブ配信ルームの弾幕抽選红包秒杀/福袋发放など、主にリアルタイムのインタラクションとコンバージョンを向上させるために使用されます。
ライブ配信外のマーケティングキャンペーン(アプリ単位):マーケティング通知やイベントリマインダーなどのプッシュ到達に重点を置き、ユーザーのリコールとイベントの事前宣伝を行い、ユーザーの参加意欲を高めます。

プッシュ到達

Pushはアプリ外でユーザーにリーチするために使用され、マーケティング通知、イベントリマインダー、注文リマインダー、物流通知などのシナリオをサポートし、プッシュのコンバージョン効果を統計できます。
Push製品を統合すると、簡単な設定だけで複数のベンダーのプッシュサービスをワンクリックで統合・接続できます。Push通知メッセージは即時性(即時到達)を重視しており、履歴ローミング特性を持たない(つまりPush製品のプッシュ通知メッセージはチャットChatのセッションシステムに保存されない)という特徴があります。


サーバー側からのオペレーションメッセージをプッシュします

プッシュメッセージはサーバー側のプッシュインターフェースから配信可能で、全員プッシュ、タグ別プッシュ、指定ユーザープッシュをサポートします。サーバーはプッシュextフィールドにカスタム業務パラメータ(例:ジャンプ先、業務タイプ、活動ID)を含めることができます。詳細は全面プッシュ機能 - マルチプラットフォーム対応をご覧ください。

クライアント側のカスタムジャンプ画面

クライアントがプッシュメッセージを受信し通知バーをクリックすると、コンポーネントはクリックイベントとオフラインメッセージをコールバックします。extフィールドを利用して、ユーザーが通知をクリックした際に指定ページ(例:グループチャット、商品ページ、ライブ配信ページなど)にジャンプすることを実現できます。詳細は通知バークリックコールバックの実装をご覧ください。


プッシュ到達効果の追跡

プッシュ効果を評価する場合、サーバー側はプッシュ転換統計インターフェースに接続でき、プッシュの配信、クリック及び後続のビジネス転換行動を統計し、完全なデータ分析チェーンを形成します。詳細はプッシュサービス(Push)- データ統計をご覧ください。


高度な美顔統合ガイド

美顔製品の説明

LiveKit / AtomicXCore システムでは、まず基本美顔高度美顔の2つの機能ラインを区別する必要があります:
基本の美顔BaseBeautyStoreを使用し、肌の滑らかさ、美白、血色感のみが必要なシーンに適しています。パラメータ範囲は0~9で、LiveKitの基本機能に含まれており、追加の高級美顔ライセンスは不要です。
高度な美顔TEBeautyKitを使用し、Vライン、目の間隔、鼻のスリム化、フィルター、動きのあるステッカー、メイクアップ、背景分割などの強化効果が必要なシーンに適しています。Beauty AR Licenseの追加購入が必要で、公式ドキュメントに従ってリソースと認証設定を完了する必要があります。
したがって、ECライブストリーミングシーンは、ニーズに応じて階層的に接続する必要があります。
1. 基本的な肌の滑らかさ/美白/血色のみBaseBeautyStoreを優先的に使用し、実装コストを最小限に抑えます。
2. 高度な美顔、フィルター、ステッカー、メイクアップが必要:配信者側で追加的にTEBeautyKitを組み込みます。
3. 2つのインターフェースを混同しないでくださいTEBeautyKitを統合した後、高度な効果はTEBeautyKitのインターフェースとパネルで管理し、BaseBeautyStoreは使用しません。
TEBeautyKitは外部プラグインアーキテクチャを採用し、カメラテクスチャ処理コールバックを通じてビデオフレームを「収集 → 美顔処理 → レンダリング/配信」チェーンに挿入します。


美顔機能モジュールとリソースリスト

TEBeautyKitが提供する機能は、リソース設定とパッケージ認証と一致している必要があります。「機能モジュール + 必須リソース」方式で整理することをお勧めします:
機能モジュール
典型的な能力
主要リソース / 設定
基礎美顔 / 美型
肌の滑らかさ、美白、血色、顔痩せ、目大きくなど
beauty.json
フィルター
スタイルフィルター、色調調整
lut.json + 対応フィルター素材
動きのあるステッカー
2D/3Dステッカー、ジェスチャーステッカー
motion_2d.json、motion_3d_gesture.json + 対応素材
仮想背景 / 分割
背景分割、背景置換
segmentation.json + 対応リソース
パネルアイコン
パネルエントリと機能アイコン
panel_icon

LiveCoreView ビューティーフィルター統合

LiveCoreViewTEBeautyKit の統合は、本質的には公式の process(...) テクスチャ処理プロセスを自身のライブストリーミングレンダリングパイプラインに組み込むことです。

推奨接続順序

1. 配信者が準備ページに入った後、LiveCoreViewを作成します。
2. リソースの準備、Licenseの検証、およびTEBeautyKit.create(...)を完了します。
3. LiveCoreViewのビデオ処理コールバックでbeautyKit.process(...)を呼び出します。
4. プレビュー状態で効果を検証してから、正式な配信状態に入ります。
5. ページの一時停止、再開、破棄時に美顔のライフサイクルを同期処理します。

統合時の注意点

onDestroy()GLスレッドで呼び出す必要があり、メインスレッドで直接破棄すると、黒画面、白画面、またはリソースリークが発生する可能性があります。
美顔の問題は、以下の3つの内容を優先的に確認してください:リソースディレクトリ、ライセンス、テクスチャコールバックチェーン
デバイスの性能が不十分な場合は、デフォルトの美顔パラメータを下げてから、高級エフェクトを削減する必要があり、配信リンク全体に負荷をかけるべきではありません。
説明:
高級美顔は別途課金が必要です。詳細はBeauty AR SDKをご確認ください。
新バージョンのLiveには最新版の高級美顔機能がデフォルトで統合されており、手動で統合する必要はありません。