プレースメントを追加する
開始する前に
Rokt iOS SDKがすでにアプリケーションに統合されていることを確認してください。ここに記載されている手順に従って統合してください。
オーバーレイプレースメント
Rokt iOS SDKを使用して、必要なViewController
で実行し、すべての適切なカスタマーアトリビュートを追加してください。以下の例コードでは、ViewDidLoad
を使用してRoktのオーバーレイプレースメントを表示しています。
SDKは、ビューの読み込みとアンロード時のオプションのコールバックイベントを提供します。
- Swift
- Objective-C
- SwiftUI
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: {
// ローディングインジケータを非表示にするためのオプションのコールバック
})
}
}
#import <Rokt_Widget/Rokt_Widget-Swift.h>
// プレースメントを表示する必要がある場合にこの関数を呼び出します
- (void)showWidget {
NSDictionary *attributes = @{
@"email" : @"j.smith@example.com",
@"firstname": @"Jenny",
@"lastname": @"Smith",
@"mobile": @"(555)867-5309",
@"postcode": @"90210",
@"country": @"US"
};
[Rokt executeWithViewName:@"RoktExperience"
attributes:attributes
placements:nil
onLoad:^{
// Roktプレースメントがロードされたときのオプションのコールバック
} onUnLoad:^{
// Roktプレースメントがアンロードされたときのオプションのコールバック
} onShouldShowLoadingIndicator:^{
// ローディングインジケータを表示するためのオプションのコールバック
} onShouldHideLoadingIndicator:^{
// ローディングインジケータを非表示にするためのオプションのコールバック
} onEmbeddedSizeChange:^(NSString *selectedPlacement, CGFloat widgetHeight) {
// フルスクリーンオーバーレイでは不要です
}];
}
import SwiftUI
import Rokt_Widget
class OrderConfirmationViewController: View {
func showPlacement() {
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() | オーバーレイ配置を自動的に閉じるために使用されます。 |
埋め込み配置
Storyboardの変更
SwiftUIを使用している場合は、以下のSwiftUIテーブルの指示に従ってください。SwiftUIを使用していない場合は、以下の指示を使用してください。
Storyboardでビューを追加し、それをViewController
に配置します。
custom
クラスで、ビューのクラスをRoktEmbeddedView
に設定します。次に、埋め込み配置が表示される場所に対応する上部、左側、および右側の制約を定義します。高さについては、高さの制約をゼロに追加することを推奨します。
RoktEmbeddedView
は、配置のコンテンツに基づいて自身の高さのみを変更できます。execute
メソッドには、高さが変更されたときに通知するためのコールバックがあります。
以下の画像は、オートレイアウトを使用してRoktEmbeddedView
を定義する最も簡単な方法を示しています。
ビューのクラスにRoktEmbeddedViewを配置し、モジュールにRokt_Widgetを設定します。
上部の制約を定義します。
左側の制約を定義します。
右側の制約を定義します。
高さと幅の制約を選択します。
高さの制約を設定します。
ビューに制約を追加します。
RoktEmbeddedView
は、コードで作成し、レイアウトに動的に含めることもできます。
Rokt SDKの実行
Rokt SDKをiOSの希望するViewController
で実行し、適切な顧客属性をすべて追加します。以下の例のコードでは、ViewDidLoad
を使用して配置を起動しています。
SDKには、ビューがロードされたときとアンロードされたときのオプションのコールバックイベントが用意されています。
- Swift
- Objective-C
- SwiftUI
import Rokt_Widget
class OrderConfirmationViewController: UIViewController {
// RoktEmbeddedViewとリンクしています。ステップ5で作成されたものか、プログラムで作成されたものです。
@IBOutlet weak var roktEmbeddedView: RoktEmbeddedView!
...
// placementを表示する必要がある場合にこの関数を呼び出します。
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 placementがロードされたときのオプションのコールバック
}, onUnLoad: {
// Rokt placementがアンロードされたときのオプションのコールバック
}, onShouldShowLoadingIndicator: {
// ローディングインジケータを表示するためのオプションのコールバック
}, onShouldHideLoadingIndicator: {
// ローディングインジケータを非表示にするためのオプションのコールバック
}, onEmbeddedSizeChange: { selectedPlacement, widgetHeight in
// placementの高さが変更されるたびに、選択されたplacementと必要な高さを取得するためのオプションのコールバック
})
}
}
#import <Rokt_Widget/Rokt_Widget-Swift.h>
// placementを表示する必要がある場合にこの関数を呼び出します。
- (void)showWidget {
NSDictionary *attributes = @{
@"email" : @"j.smith@example.com",
@"firstname": @"Jenny",
@"lastname": @"Smith",
@"mobile": @"(555)867-5309",
@"postcode": @"90210",
@"country": @"US"
};
// roktEmbeddedViewは.hで定義された@property (weak, nonatomic) IBOutlet RoktEmbeddedView *roktEmbeddedView; で、ステップ5で定義されたroktEmbeddedViewを指します。またはプログラムで作成されたものです。
NSDictionary<NSString *, RoktEmbeddedView *> *placements= [NSDictionary dictionaryWithObject:self.roktEmbeddedView forKey:@"RoktEmbedded1"];
[Rokt executeWithViewName:@"RoktExperience"
attributes:attributes
placements:placements
onLoad:^{
// Rokt placementがロードされたときのオプションのコールバック
} onUnLoad:^{
// Rokt placementがアンロードされたときのオプションのコールバック
} onShouldShowLoadingIndicator:^{
// ローディングインジケータを表示するためのオプションのコールバック
} onShouldHideLoadingIndicator:^{
// ローディングインジケータを非表示にするためのオプションのコールバック
} onEmbeddedSizeChange:^(NSString *selectedPlacement, CGFloat widgetHeight){
// placementの高さが変更されるたびに、選択されたplacementと必要な高さを取得するためのオプションのコールバック
}];
}
import Rokt_Widget
import SwiftUI
// UIKitとSwiftUIを接続するためのUIViewRepresentableを作成します。
struct RoktEmbeddedSwiftUIView: UIViewRepresentable {
typealias UIViewType = RoktEmbeddedView
var embedded: RoktEmbeddedView
init() {
embedded = RoktEmbeddedView()
}
func makeUIView(context: Context) -> RoktEmbeddedView {
return embedded
}
func updateUIView(_ uiView: RoktEmbeddedView, context: Context) {
}
}
struct OrderConfirmationViewController: View {
// Rokt embedded viewを作成します。
let roktEmbedded1 = RoktEmbeddedSwiftUIView()
@State private var embeddedSize: CGFloat = 0
@State private var placementDisplayed = false
var body: some View {
ScrollView {
VStack(spacing: 0){
// Rokt embedded viewを配置します。
roktEmbedded1
.frame(height: self.embeddedSize, alignment: .center)
}
}.onAppear {
if !placementDisplayed {
// viewが表示されるときにplacementを表示します。
showPlacement()
}
}
}
private func showPlacement() {
var placements = [String: RoktEmbeddedView]()
placements["RoktEmbedded1"] = roktEmbedded1.embedded
let attributes = ["email": "j.smith@example.com",
"firstname": "Jenny",
"lastname": "Smith",
"mobile": "(555)867-5309",
"postcode": "90210",
"country": "US"]
Rokt.execute(viewName: "RoktEmbeddedExperience",
attributes: attributes,
placements: placements,
onLoad: {
// Rokt placementがロードされたときのオプションのコールバック
self.placementDisplayed = true
}, onUnLoad: {
// Rokt placementがアンロードされたときのオプションのコールバック
}, onShouldShowLoadingIndicator: {
// ローディングインジケータを表示するためのオプションのコールバック
}, onShouldHideLoadingIndicator: {
// ローディングインジケータを非表示にするためのオプションのコールバック
}, onEmbeddedSizeChange: { selectedPlacement, widgetHeight in
embeddedSize = widgetHeight
})
}
}
ビュー名 RoktExperience
または配置名 RoktEmbedded1
を別の値で更新するには、Roktアカウントマネージャーに連絡して、Rokt配置が一貫して設定されていることを確認してください。