LEEEP iOS SDK リファレンス

LEEEP2024-11-19

※ 導入手順はLEEEP iOS SDKクイックスタートをご覧ください。

サポートしているOSの下限バージョンは iOS 16.0 です。

Swift

LEEEP iOS SDKのセットアップを行います。アプリの起動時にこの関数を実行してください。

パラメータ

  • websiteId : LEEEP上で管理しているウェブサイトのID(LEEEP管理画面でご確認ください)

Swift

ユーザーIDをセットすることで、LEEEPのイベント計測時に同一のユーザーとして扱われます。

アプリ上で会員ログイン時にユーザーIDをこの関数に与え、ログアウト時に nil をこの関数に与えてください。

パラメータ

  • userId : あなたのアプリ/サービス上で管理している、ユーザーを一意に識別する文字列

Swift

true にすると LeeepTagView の初期化時やイベント計測時に正常系のログを出力します(異常系のログは showLog = false の状態でも出力されます)。

デフォルトは false です。

Swift

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 の分岐を追加してください。

Swift

ブログ記事へのリンクをタップしたときの通知です。slug は記事のスラッグ、url はタップしたリンクのURLです。アプリ側でブログ詳細画面へ遷移し、受け取った slugLeeepTagView または LeeepTagViewUIKitblogSlug に渡してください。

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が入ります。

設定

通知される id

LEEEPの商品ID(product_id

LEEEPに連携されている商品ID

カート商品ID(cart_product_id

カートシステム上の商品ID

アプリの商品詳細画面が受け付けるIDに合わせて設定します。Appifyなどカート商品IDで商品を識別するアプリでは、カート商品IDを使用してください。新規設定時は使用する種類を明示してください。未設定の既存サイトには互換動作があるため、現在の設定は担当者へお問い合わせください。

この設定は、リンクをタップしたときに受け取るIDの設定です。タグ表示時の絞り込みに使う productId / cartProductId や、注文・商品閲覧イベントへ渡すIDは、それぞれの連携仕様に従ってください。Shopifyの商品同期で「商品IDとして利用する情報を選択」する設定とも別の項目です。

LeeepTagViewUIKit には公開された関数として refreshLayout を用意しています。

タグViewが配置された画面の構造や動作によっては、タグviewの描画が適切に行われない場合があるかもしれません。その際はこちらの関数を実行して再描画を行ってください。

Swift
  • tagId: スクロール要求を送ったLEEEPタグのID。

  • reason: スクロールが必要になった理由。現在は .reviewPagination です。

  • target: 移動先。現在は .reviewListTop です。

  • contentOffsetTop: Webコンテンツ内部における移動先のY座標。

  • hostOffsetTop: LeeepTagView の上端から、ホストアプリが表示位置を合わせる点までの距離。外側のスクロール計算にはこちらを使用してください。

Swift

SwiftUIの ScrollView を利用する場合も、onScrollRequest で受け取った hostOffsetTop を、アプリ側レイアウトの座標へ変換して外側のコンテナを移動します。iOS 16の ScrollViewReader だけでは任意のY座標を直接指定できないため、画面構成に応じてスクロール対象のマーカーを用意するか、正確な座標制御が必要な場合は UIScrollView をラップしてください。

Swift

注文を計測します。

webの購入完了ページで既に ParteTracking.order() を実装済みで、アプリからの注文でもwebの購入完了ページを表示する場合、アプリ側の実装は不要です。詳しくはお問い合わせください。

パラメータ

  • orderId : あなたのアプリ/サービス上で管理している注文ID

  • products : 注文した商品情報

    • productId : あなたのアプリ/サービス上で管理している商品ID

    • skuCode : あなたのアプリ/サービス上で管理しているSKUコード。SKUコードがない商品の場合 "-" を与えてください

    • salesPrice : 販売価格。定価ではなく割引等が適用された販売価格を与えてください

    • quantity : 販売個数

    • name : 商品名

  • discountAmount : 注文全体に対する割引金額。個々の商品に対する割引は products[].salesPrice に与えてください

Swift

ページビューを計測します。

Swift

商品のビューを計測します。商品詳細画面に遷移したときにこの関数を実行してください。

パラメータ

  • productId : あなたのアプリ/サービス上で管理している商品ID

Swift

LEEEPタグのビューを計測します。

LeeepTagView LeeepTagViewUIKit は自動で viewTag を発火するため実装不要です。

パラメータ

Swift

LEEEPの投稿のビューを計測します。

LeeepTagView LeeepTagViewUIKit は自動で viewPost を発火するため実装不要です。

パラメータ

  • postId : LEEEP上で管理している投稿ID