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

プレースメントを追加する (レガシー)

始める前に

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の実行

iOS用のRokt SDKを、目的のViewControllerで実行し、適切な顧客属性をすべて追加します。以下のコード例では、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
@State var sdkTriggered = true

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

RoktLayout(sdkTriggered: $sdkTriggered,
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イベントを受信しました \(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 (optional)
OpenUrlユーザーがパートナーアプリに送信するように設定されたURLを押したときにトリガーされますplacementId: String, url: 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 がプレースメントを閉じたときに呼び出されます。また、execute 呼び出しが失敗した場合にもトリガーされます。引数を必要とせず、値を返しません。

onEmbeddedSizeChange

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

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