概要
実装ガイドについて
このガイドは下記を説明します:
- 推奨イベントとパラメータ
- ディープリンクの実装
- 実装テスト
業種別推奨イベント
実装されているアプリ内イベントをすべて連携することを推奨しております。以下表を参考に、各業種で推奨されるイベントを連携してください:
イベント名 | 説明 | リテール | 旅行 | 人材 | ゲーム | ストリーミング | ファイナンス | マッチング | 配車サービス |
---|---|---|---|---|---|---|---|---|---|
アプリ起動アプリローンチ(app open/app launch) | アプリインストール後の初回起動時 | Y | Y | Y | Y | Y | Y | Y | Y |
ホームページ(home page)/アプリ開始(App open) | アプリの開始時、またはホームページ表示時 | Y | Y | Y | Y | Y | Y | Y | Y |
商品一覧(View Item List) | 商品/募集案件などの一覧閲覧時 | Y | Y | Y | Y | Y | |||
商品詳細閲覧(View Item) | 商品/募集案件の閲覧時 | Y | Y | Y | Y | Y | Y | ||
カート追加(Add to cart) | 商品のカート追加時 | Y | Y | ||||||
カート閲覧(basket) | カートページ閲覧時 | Y | Y | ||||||
購入(purchase) | 商品購入時 | Y | Y | Y | Y | Y | Y | ||
お気に入り追加(Add to wish list) | 商品のお気に入り追加時 | Y | Y | ||||||
登録完了(Complete Registration / create an account / sign up) | アカウント作成、または会員登録時 | Y | Y | Y | Y | Y | Y | Y | Y |
ログイン(Login) | ログイン時 | Y | Y | Y | Y | Y | Y | Y | Y |
支払い情報入力(Add payment info) | 支払い情報入力時 | Y | Y | Y | Y | ||||
購入手続き開始(Begin checkout) | 購入手続き開始時 | Y | Y | Y | |||||
購入取り消し(Purchase Cancelled / purchase refund) | 購入キャンセル、または返金請求時 | Y | Y | Y | |||||
リード獲得(Generate lead) | 連絡先の問い合わせ時 / メッセージの送信時 (求人案内アプリ, 教育, 地元のお買い得情報, 不動産) | Y | |||||||
トライアル開始(Start Trial) | 購読のトライアル開始時 | Y | Y | Y | Y | ||||
購読(Subscribe) | 購読申し込み時(定期) | Y | Y | Y | Y | ||||
商品選択(Select Item) | アプリ内のコンテンツ選択時 | Y | Y | ||||||
ゲーム内通貨獲得(Earn Virtual Currency) | ゲーム内通貨の獲得時(ゲームアプリ) | Y | |||||||
レベルアップ(Level up) | レベルアップ時(ゲームアプリ) | Y | |||||||
ゲーム内通貨使用(Spend Virtual Currency/credit) | ゲーム内通貨の使用時(ゲームアプリ) | Y | |||||||
チュートリアル開始(Tutorial Begin) | チュートリアルの開始時(ゲームアプリ) | Y | |||||||
チュートリアル完了(Tutorial Complete) | チュートリアルの終了時(ゲームアプリ) | Y | |||||||
報酬解放(Unlock Achievement) | 報酬の解放時(ゲームアプリ) | Y | |||||||
検索(search) | Y | ||||||||
メディア再生(Media Play) | アプリ内メディア再生開始時(音楽・動画アプリなど) | Y |
viewHome
viewHome イベントは、アプリ起動やアプリトップへユーザーが訪問したことを計測します。Adjust の管理画面にて Criteo が Network として設定されると、 ユーザーセッションごとに自動的に送信されます。
appDeeplink
AppDeeplink イベントは、ディープリンクによりアプリが起動された際に発火します。
ディープリンクされるアクティビティの onCreate メソッドに、以下のコールを追加してください:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
...
let event = ADJEvent(eventToken: "{deeplinkEventToken}")
event.addPartnerParameter("criteo_deeplink", value: url.toString(data));
Adjust.trackEvent(event);
...
// Apply your logic to determine the return value of this method
return true;
// or
// return false;
}
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
...
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let event = ADJEvent(eventToken: "{deeplinkEventToken}")
let url = userActivity.webpageURL!
event?.addPartnerParameter("criteo_deeplink", value: url.toString(data));
Adjust.trackEvent(event);
}
// Apply your logic to determine the return value of this method
return true;
// or
// return false;
...
}
viewListing
viewListing イベントは、カテゴリや検索結果画面のように、商品の一覧が表示される画面で発火します。 一覧に表示されている商品のうち、上位3つの商品のID が含まれている必要があります。必ず、カタログフィードの商品IDと同一の商品IDを代入してください。
実装には、以下のサンプルコードをご使用ください:
let event = ADJEvent(eventToken: "{viewListingEventToken}")
let productIds = ["productId1", "productId2", "productId3"]
event?.addPartnerParameter("products", value: String(describing: productIds))
Adjust.trackEvent(event)
viewProduct
viewProduct イベントは、すべての商品詳細画面で発火します。必ず、カタログフィードの商品IDと同一の商品IDを代入してください。
実装には、以下のサンプルコードをご使用ください:
let event = ADJEvent(eventToken: "{viewProductEventToken}")
event?.addPartnerParameter("product", value: "productId1")
Adjust.trackEvent(event)
viewBasket
viewBasket イベントは、買い物カゴ画面で発火します。買い物カゴ内の商品のID、価格、および数量を代入してください。
let event = ADJEvent(eventToken: "{cartEventToken}")
let productIds = ["productId1", "productId2", "productId3"]
let productPrice = ["200","2500","1200"]
let productQuantity = ["200","2500","1200"]
event?.addPartnerParameter("productids", value: String(describing: productIds))
event?.addPartnerParameter("productPrice", value: String(describing: productPrice))
event?.addPartnerParameter("productQuantity", value: String(describing: productQuantity))
Adjust.trackEvent(event)
trackTransaction
trackTransaction イベントは、購入後の確認ページで発火します。 一意の注文番号、および購入された商品のID、価格、数量を代入してください。
メソッド呼び出しの際に、最後のパラメータとして、任意のパラメータ “nc” (new customer) を trackTransaction イベントに含めることもできます。本パラメータは、注文が新規顧客もしくは既存顧客によるものかを示します。1の場合は新規顧客を、0の場合は既存顧客をさします。不明の場合は空欄にします。
実装には、以下のサンプルコードをご使用ください:
let event = ADJEvent(eventToken: "{transactionConfirmedEventToken}")
let productIds = ["productId1", "productId2", "productId3"]
let productPrice = ["200","2500","1200"]
let productQuantity = ["1","2","3"]
event?.addPartnerParameter("productids", value: String(describing: productIds))
event?.addPartnerParameter("productPrice", value: String(describing: productPrice))
event?.addPartnerParameter("productQuantity", value: String(describing: productQuantity))
event?.addPartnerParameter("transactionId", value: "1")
event?.addPartnerParameter("currency", value: "EUR")
event?.addPartnerParameter("setRevenue", value: "0.1")
Adjust.trackEvent(event)
トラベル検索日
injectViewSearchDatesIntoCriteoEventsmethod を使用し、Criteo イベントにチェックイン、チェックアウトの日付を含めることが可能です。日付の形式は “yyyy-mm-dd” です。 ユーザーにより新しい検索日が入力される度に設定する必要があります。以下は例になります:
event?.addPartnerParameter("din", value: "2021-01-01")
event?.addPartnerParameter("dout", value: "2021-01-07")
上記日付は、アプリのライフサイクルを通してすべての Criteo イベントイベントで送信されるため、アプリ再起動時に再度設定しなおす必要があります。
検索日を削除するには、injectViewSearchDatesIntoCriteoEventsdates
を null に設定します。
クロスデバイスのためのハッシュEMAIL
アプリユーザーの Email アドレスが利用可能な場合は、Criteo に送信することができます。これにより、Criteoのクロスデバイス機能が有効になります。
event?.addPartnerParameter("criteo_email_hash", value: "72626798128bhbh283y2")
ハッシュ化されたEmailは、アプリのライフサイクルを通してすべての Criteo イベントで送信されるため、アプリ再起動時に再度設定しなおす必要があります。
ハッシュ化された Email を削除するには、空値を設定します。
event?.addPartnerParameter("criteo_email_hash", value: "")
Criteo 用のハッシュ Email アドレスは、以下手順に従い生成してください:
- 全文字を小文字に変換します
- スペースは削除します
- UTF-8に変換します
- MD5 アルゴリズムを使用し、ハッシュ化します
カスタマーID
カスタマーIDとは、アプリで使用されているユーザーを識別するための一意の会員IDのことで、Criteo Plugin メソッドの最後のパラメータです。 ユーザーが広告主のアプリにログインしている場合は、カスタマーIDを代入します。
カスタマーIDには、個人情報を含む値を使用してはいけません。
すべての Adjust イベントで、以下のようにカスタマーIDを呼び出すことができます:
event?.addPartnerParameter("customer_id", value: "12323dsvhdsb23")
ディープリンクによるリアトリビューションの有効化
Adjust SDK v4.11.4
Adjust では、ディープリンクによるリエンゲージメントキャンペーンを実装することができます。本機能は、Adjust SDK v 4.11.4 以降のバージョンで有効になっています。ディープリンクのアプリ内コンテンツ情報を取得後、appWillOpenUrl
メソッドの呼び出しを追加してください。このメソッドの呼び出しにより、 Adjust SDK はディープリンク内に新しいアトリビューションがないかを確認し、新しいアトリビューションがある場合は Adjust のバックエンドに送られます。
openURL
および continueUserActivity
の実装には、appWillOpenUrl
を以下のように使用してください:
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
Adjust.appWillOpen(url)
// Apply your logic to determine the return value of this method
return true;
// or
// return false;
}
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
...
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
Adjust.appWillOpen(url)
}
// Apply your logic to determine the return value of this method
return true;
// or
// return false;
...
}
実装テスト
イベント実装が完了次第、実装テス実施nのため Criteo にご連絡ください。
その際、以下の項目が必要になります:
- Criteo 側でイベント収集テストを行うためのアプリのビルド
- 以下のように Sandobox 環境を使用し、ログレベルを VERBOSE に設定(推奨)
let appToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox
let adjustConfig = ADJConfig(appToken: appToken, environment: environment)
adjustConfig?.logLevel = ADJLogLevelVerbose
Adjust.appDidLaunch(adjustConfig!)