メインコンテンツまでスキップ

プレースメントを追加する

始める前に

Rokt iOS SDKがすでにアプリケーションに統合されていることを確認してください。手順はこちらに記載されています。

オーバーレイプレースメント

希望するViewControllerでRokt iOS SDKを実行し、適切な顧客属性をすべて追加します。以下の例では、ViewDidLoadを使用してRoktオーバーレイプレースメントを表示します。

SDKは、ビューがロードおよびアンロードされるときのオプションのコールバックイベントを提供します。

import Rokt_Widget

class OrderConfirmationViewController: UIViewController {

// プレースメントを表示する必要があるときにこの関数を呼び出します
func showWidget() {
let attributes = ["email": "j.smith@example.com",
"firstname": "Jenny",
"lastname": "Smith",
"mobile": "(555)867-5309",
"postcode": "90210",
"country": "US"]

Rokt.execute(viewName: "RoktExperience", attributes: attributes, onLoad: {
// Roktプレースメントがロードされたときのオプションのコールバック
}, onUnLoad: {
// Roktプレースメントがアンロードされたときのオプションのコールバック
}, onShouldShowLoadingIndicator: {
// ローディングインジケーターを表示するためのオプションのコールバック
}, onShouldHideLoadingIndicator: {
// ローディングインジケーターを非表示にするためのオプションのコールバック
})
}
}

オプション機能

関数目的
Rokt.close()オーバーレイプレースメントを自動的に閉じるために使用されます。

埋め込みプレースメント

ストーリーボードの修正

SwiftUIを使用している場合は、以下のSwiftUIテーブルの指示を参照してください。SwiftUIを使用していない場合は、以下の指示を使用してください。

ストーリーボードにビューを追加し、それをViewControllerに配置します:

ViewController

customクラスで、ビューのクラスとしてRoktEmbeddedViewを設定します。次に、埋め込みプレースメントが表示される場所に一致するように、上部、先頭、および末尾の制約を定義します。高さについては、ゼロの高さ制約を追加することをお勧めします。

RoktEmbeddedViewは、プレースメントの内容に応じて自身の高さのみを変更できます。高さが変更されたときに通知し、新しい高さを返すコールバックがexecuteメソッドにあります。

以下の画像は、オートレイアウトを使用してRoktEmbeddedViewを定義する最も簡単な方法を示しています。

  1. ビューのClassとしてRoktEmbeddedViewを、ModuleとしてRokt_Widgetを設定します。

  2. 上部の制約を定義します。

  3. 先頭の制約を定義します。

  4. 末尾の制約を定義します。

  5. 高さと幅の制約を選択します。

  6. 高さの制約を設定します。

  7. ビューに制約を追加します。

RoktEmbeddedView

注記

RoktEmbeddedViewはコード内で作成し、動的にレイアウトに含めることもできます。

Rokt SDKの実行

お好みのViewControllerでiOS用のRokt SDKを実行し、適切な顧客属性をすべて追加します。以下のサンプルコードでは、ViewDidLoadを使用してプレースメントを起動します。

SDKは、ビューがロードおよびアンロードされるときのオプションのコールバックイベントを提供します。

import Rokt_Widget
class OrderConfirmationViewController: UIViewController {

// ステップ5で作成されたRoktEmbeddedViewにリンクされているか、プログラムで作成することもできます
@IBOutlet weak var roktEmbeddedView: RoktEmbeddedView!

...

// プレースメントを表示する必要があるときにこの関数を呼び出します
func showWidget() {
let attributes = ["email": "j.smith@example.com",
"firstname": "Jenny",
"lastname": "Smith",
"mobile": "(555)867-5309",
"postcode": "90210",
"country": "US"]

let placements: [String : RoktEmbeddedView] = ["RoktEmbedded1": roktEmbeddedView]

Rokt.execute(viewName: "RoktEmbeddedExperience", attributes: attributes, placements: placements, onLoad: {
// Roktプレースメントがロードされたときのオプションのコールバック
}, onUnLoad: {
// Roktプレースメントがアンロードされたときのオプションのコールバック
}, onShouldShowLoadingIndicator: {
// ローディングインジケーターを表示するためのオプションのコールバック
}, onShouldHideLoadingIndicator: {
// ローディングインジケーターを非表示にするためのオプションのコールバック
}, onEmbeddedSizeChange: { selectedPlacement, widgetHeight in
// プレースメントの高さが変わるたびに選択されたプレースメントと必要な高さを取得するためのオプションのコールバック
})
}
}
注記

ビュー名 RoktExperience またはプレースメント名 RoktEmbedded1 を別の値に更新するには、Rokt アカウントマネージャーに連絡して、Rokt プレースメントが一貫して構成されていることを確認してください。

SwiftUI コンポーネント

Rokt iOS SDK のメジャーバージョン 4 から、RoktLayout コンポーネントを利用して Rokt レイアウトを追加できます。これにより、Rokt.execute を呼び出す必要がなくなり、SwiftUI を使用したよりモダンな宣言型の統合がサポートされます。

コンポーネントの追加

import SwiftUI
import Rokt_Widget

struct OrderConfirmationSwiftUI: View {
let attributes: [String: String]
let pageIdentifier: String
let location: String

var body: some View {
VStack(alignment: .leading) {

RoktLayout(sdkTriggered: true,
viewName: pageIdentifier,
locationName: location, // 埋め込みレイアウトを使用する場合
attributes: attributes,
onLoad: {
// Rokt プレースメントが読み込まれたときのオプションのコールバック
}, onUnLoad: {
// Rokt プレースメントがアンロードされたときのオプションのコールバック
},onShouldShowLoadingIndicator: {
// ローディングインジケーターを表示するためのオプションのコールバック
}, onShouldHideLoadingIndicator: {
// ローディングインジケーターを非表示にするためのオプションのコールバック
})

}.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
}
}

注記

RoktLayout コンポーネントは、埋め込みレイアウトとオーバーレイレイアウトの両方に使用できます。

イベント

SDKは、Rokt.events APIを通じて各ページのイベントを提供します。

Rokt.events(viewName: "viewName") { roktEvent in
print("Rokt event received \(roktEvent)")
}

イベントオブジェクト

イベント説明パラメータ
ShowLoadingIndicatorSDKがRoktバックエンドを呼び出す前にトリガーされます
HideLoadingIndicatorSDKがRoktバックエンドから成功または失敗を受信したときにトリガーされます
OfferEngagementユーザーがオファーに関与したときにトリガーされますplacementId: String
PositiveEngagementユーザーがオファーに積極的に関与したときにトリガーされますplacementId: String
FirstPositiveEngagementユーザーが初めてオファーに積極的に関与したときにトリガーされますplacementId: String, setFulfillmentAttributes: func (attributes: [String: String])
PlacementInteractiveプレースメントがレンダリングされ、インタラクティブになったときにトリガーされますplacementId: String
PlacementReadyプレースメントが表示準備ができているが、まだコンテンツがレンダリングされていないときにトリガーされますplacementId: String
PlacementClosedユーザーによってプレースメントが閉じられたときにトリガーされますplacementId: String
PlacementCompletedオファーの進行が終了し、表示するオファーがなくなったときにトリガーされますplacementId: String
PlacementFailure何らかの失敗によりプレースメントを表示できなかったときにトリガーされますplacementId: String (オプション)

コールバック

Rokt iOS SDKは、executeに渡される以下のコールバックをサポートしています:

onLoad

onLoadコールバックは、プレースメントが読み込まれ、インタラクティブになったときに呼び出されます。このコールバックは引数を提供せず、値を返しません。

onShouldShowLoadingIndicator

onShouldShowLoadingIndicatorは、成功したexecute呼び出しの直後、SDKがRoktバックエンドへの呼び出しをトリガーする直前に呼び出されます。プレースメントの読み込みを待っている間、読み込みインジケーターの進行状況ビューを表示するために使用できます。引数を必要とせず、値を返しません。

注記

このコールバックの動作は、Rokt iOS SDKのメジャーバージョン3とメジャーバージョン4の間で変更されました。コールバックが実行される前に1秒の遅延はなくなりました。メジャーバージョン3でこれらのコールバックを使用していて、メジャーバージョン4にアップグレードする場合は、ユーザーエクスペリエンスに影響がないことを確認するために動作をテストしてください。必要に応じて、アプリケーションのニーズに合った遅延動作を作成できます。

onShouldHideLoadingIndicator

onShouldHideLoadingIndicator コールバックは、SDK が Rokt バックエンドから成功または失敗の応答を取得したときに呼び出されます。これを使用して、進行状況ビューやローディングインジケーターをキャンセルすることができます。引数は必要なく、値も返しません。

onUnload

onUnload コールバックは、SDK がプレースメントを閉じるときに呼び出されます。実行呼び出しが失敗した場合にもトリガーされます。引数は必要なく、値も返しません。

onEmbeddedSizeChange

onEmbeddedSizeChange は、選択された埋め込みプレースメントまたはレイアウトの高さが変わったときに呼び出されます。選択されたプレースメント/レイアウトと新しい高さの引数が含まれますが、値は返しません。

この記事は役に立ちましたか?