※ 導入手順はLEEEP iOS SDKクイックスタートをご覧ください。
サポートしているOSの下限バージョンは iOS 16.0 です。
LEEEP iOS SDKのセットアップを行います。アプリの起動時にこの関数を実行してください。
パラメータ
websiteId: LEEEP上で管理しているウェブサイトのID(LEEEP管理画面でご確認ください)
ユーザーIDをセットすることで、LEEEPのイベント計測時に同一のユーザーとして扱われます。
アプリ上で会員ログイン時にユーザーIDをこの関数に与え、ログアウト時に nil をこの関数に与えてください。
パラメータ
userId: あなたのアプリ/サービス上で管理している、ユーザーを一意に識別する文字列
true にすると LeeepTagView の初期化時やイベント計測時に正常系のログを出力します(異常系のログは showLog = false の状態でも出力されます)。
デフォルトは false です。
LEEEPタグのviewを生成します。ScrollView の中で呼び出してください。
内部的にはweb向けのLEEEPタグをWebViewで表示し、ページ遷移の処理を onTapLink に引き継いでいます。
SDK 0.11.0では「ソーシャル投稿」「投稿者」「レビュー」「UGC(リスト / UGC投稿詳細ページ)」「ブログ一覧」「ブログ詳細」のタグを表示できます。
パラメータ
tagId: LEEEPタグのID(LEEEP管理画面でご確認ください)productId: あなたのアプリ/サービス上で管理している商品ID商品詳細ページなどで、その商品が紐づいたコンテンツのみを表示したい場合などに使います
Shopifyをお使いの場合、
LeeepTagViewの生成時のみcartProductIdとして商品IDを与える必要があります。詳しくは担当者にお問い合わせください
cartProductId: カートシステム上の商品ID。利用要否は担当者へお問い合わせください。brandCode: 表示対象を絞り込むブランドコード。postId: LEEEP上で管理している投稿IDソーシャル投稿詳細ページタグまたはUGC投稿詳細ページタグを表示する際に与えてください。
UGC投稿詳細ページタグにはUGC投稿IDを与えてください。
staffId: LEEEP上で管理している投稿者ID投稿者詳細ページタグを表示する際に与えてください
blogSlug: ブログ詳細タグで表示する記事のスラッグ。省略時はnilです。ブログ詳細を表示するときに指定してください。一覧タグでは指定不要です。スラッグはURL全体ではなく、記事を識別する文字列です。URLエンコード前の値を指定します。ブログ記事の指定には
postIdを使用しません。SwiftUIで同じ画面の表示記事を変更する場合は、
.id(slug)などを使ってタグViewを再生成してください。UIKitでは新しいblogSlugを指定したタグViewを生成します。
onTapLink: タグ内のリンクがクリックされたときのコールバック引数の
LeeepLinkHandlerParamにより、以下のパターンで分岐させることができます.post: 投稿がタップされた場合。idを用いてソーシャル投稿詳細ページタグを表示することを想定しています.ugc: UGC投稿がタップされた場合。idを用いてUGC投稿詳細ページタグを表示することを想定しています。UGCリストタグの「ページ遷移モード」がONで、ウェブサイトにUGC投稿詳細ページの設定がある場合に発火します。
「ページ遷移モード」がOFFの場合は従来どおりポップアップ表示となり、
.ugcは発生しません。
.staff: 投稿者がタップされた場合。idを用いて投稿者詳細ページタグを表示することを想定しています.product: 商品がタップされた場合。idを用いて商品詳細画面に遷移することを想定しています。IDの種類は下記「商品リンクで受け取るID」を参照してください。.reviewForm: レビューリストタグにおいて「レビューを書く」のボタンがタップされた場合。productIdを用いてレビューフォーム画面に遷移することを想定していますcase reviewForm(productId: String?, cartProductId: String?, url: URL)
.blog: ブログ記事へのリンクがタップされた場合。受け取ったslugを使ってブログ詳細画面へ遷移し、詳細タグのblogSlugに渡します。.other: その他のリンクがタップされた場合。urlを用いてブラウザを開くか、または何もしないことを想定しています
onScrollRequest: Webコンテンツからホストアプリへ送られるスクロール要求のコールバック。レビュー一覧のページ切替時に、外側のスクロールコンテナをレビュー一覧先頭へ移動するために使用します。コールバックはメインスレッドで呼び出されます。
設定は任意です。省略した既存実装との互換性は維持されます。
LeeepTagViewUIKit.onScrollRequestへ後から設定することもできますが、nil と非nilを切り替えた場合はタグが再読み込みされるため、initializerでの指定を推奨します。
v0.8.0で LeeepLinkHandlerParam に .ugc が追加されました。 default (または @unknown default )を書かずに全ケースを列挙する switch を実装している場合、v0.8.0への更新時にコンパイルエラーとなりますので、 .ugc の分岐を追加してください。
ブログ記事へのリンクをタップしたときの通知です。slug は記事のスラッグ、url はタップしたリンクのURLです。アプリ側でブログ詳細画面へ遷移し、受け取った slug を LeeepTagView または LeeepTagViewUIKit の blogSlug に渡してください。
LEEEP管理画面のブログ詳細ページ設定と一致したリンクを判定します。たとえば、次のいずれかの形式を設定できます。
形式 | ブログ詳細ページパス | スラッグクエリパラメータ名 | リンク例 |
|---|---|---|---|
クエリ形式 | /pages/blog_detail | slug | /pages/blog_detail?slug=article-001 |
パス形式 | /blogs/{slug} | 空欄 | /blogs/article-001 |
設定が未登録、またはブログリンクとして判定できないリンクは .other などの既存の通知種別で処理されます。通常のWebサイトで開くブログ詳細URLに合わせて設定してください。
SDK 0.11.0から .blog が追加されています。全ケースを列挙した switch は更新が必要です。default / @unknown default で受けるだけではブログ詳細画面へ遷移しないため、ブログをアプリ内で表示する場合は .blog の処理を追加してください。ブログ以外の通知処理も引き続き実装します。
既存のタグ生成コードは blogSlug を省略して利用できます。SDKを更新したアプリは再ビルドしてください。
ソーシャル投稿詳細・ブログ詳細の商品リンクをタップしたとき、.product(id:url:) の id には、LEEEP管理画面の「アプリSDK連携設定 > SDKに渡す商品ID」で選んだ種類のIDが入ります。
設定 | 通知される |
|---|---|
LEEEPの商品ID( | LEEEPに連携されている商品ID |
カート商品ID( | カートシステム上の商品ID |
アプリの商品詳細画面が受け付けるIDに合わせて設定します。Appifyなどカート商品IDで商品を識別するアプリでは、カート商品IDを使用してください。新規設定時は使用する種類を明示してください。未設定の既存サイトには互換動作があるため、現在の設定は担当者へお問い合わせください。
この設定は、リンクをタップしたときに受け取るIDの設定です。タグ表示時の絞り込みに使う productId / cartProductId や、注文・商品閲覧イベントへ渡すIDは、それぞれの連携仕様に従ってください。Shopifyの商品同期で「商品IDとして利用する情報を選択」する設定とも別の項目です。
LeeepTagViewUIKit には公開された関数として refreshLayout を用意しています。
タグViewが配置された画面の構造や動作によっては、タグviewの描画が適切に行われない場合があるかもしれません。その際はこちらの関数を実行して再描画を行ってください。
tagId: スクロール要求を送ったLEEEPタグのID。reason: スクロールが必要になった理由。現在は.reviewPaginationです。target: 移動先。現在は.reviewListTopです。contentOffsetTop: Webコンテンツ内部における移動先のY座標。hostOffsetTop:LeeepTagViewの上端から、ホストアプリが表示位置を合わせる点までの距離。外側のスクロール計算にはこちらを使用してください。
SwiftUIの ScrollView を利用する場合も、onScrollRequest で受け取った hostOffsetTop を、アプリ側レイアウトの座標へ変換して外側のコンテナを移動します。iOS 16の ScrollViewReader だけでは任意のY座標を直接指定できないため、画面構成に応じてスクロール対象のマーカーを用意するか、正確な座標制御が必要な場合は UIScrollView をラップしてください。
注文を計測します。
webの購入完了ページで既に ParteTracking.order() を実装済みで、アプリからの注文でもwebの購入完了ページを表示する場合、アプリ側の実装は不要です。詳しくはお問い合わせください。
パラメータ
orderId: あなたのアプリ/サービス上で管理している注文IDproducts: 注文した商品情報productId: あなたのアプリ/サービス上で管理している商品IDskuCode: あなたのアプリ/サービス上で管理しているSKUコード。SKUコードがない商品の場合"-"を与えてくださいsalesPrice: 販売価格。定価ではなく割引等が適用された販売価格を与えてくださいquantity: 販売個数name: 商品名
discountAmount: 注文全体に対する割引金額。個々の商品に対する割引はproducts[].salesPriceに与えてください
ページビューを計測します。
商品のビューを計測します。商品詳細画面に遷移したときにこの関数を実行してください。
パラメータ
productId: あなたのアプリ/サービス上で管理している商品ID
LEEEPタグのビューを計測します。
LeeepTagView LeeepTagViewUIKit は自動で viewTag を発火するため実装不要です。
パラメータ
tagId: LEEEPタグのID(LEEEP管理画面でご確認ください)
LEEEPの投稿のビューを計測します。
LeeepTagView LeeepTagViewUIKit は自動で viewPost を発火するため実装不要です。
パラメータ
postId: LEEEP上で管理している投稿ID