Web ビューの処理
モバイルアプリで WebView を使用してデータ収集を処理する方法を説明します。
前提条件
- SDK がインストールおよび設定された状態で、アプリケーションが正常に構築および実行されました。
学習目標
このレッスンでは、次の操作を行います。
- アプリの web ビューに関して特別に考慮する必要がある理由を理解します。
- トラッキングの問題を防ぐために必要なコードを理解します。
潜在的なトラッキングの問題
アプリのネイティブ部分とアプリ内の WebView からデータを送信すると、それぞれが独自のExperience CloudID (ECID)を生成し、その結果、切断されたヒットと水増しされた訪問/訪問者データが生じます。 ECID について詳しくは、ECID の概要を参照してください。
この望ましくない状況を解決するには、アプリのネイティブ部分から、アプリで使用する可能性のある WebView にユーザーの ECID を渡すことが重要です。
WebView 内で使用される AEP Edge ID 拡張機能は、新しい ID のリクエストをAdobeに送る代わりに、現在の ECID を収集して URL に追加します。 次に、実装はこの ECID を使用して URL をリクエストします。
実装
Luma/Luma/Views/Info/TermsOfServiceSheet に移動し、final class SwiftUIWebViewModel: ObservableObject
クラス内の func loadUrl()
関数を探します。 Web ビューを処理する次の呼び出しを追加します。
// Handle web view
AEPEdgeIdentity.Identity.getUrlVariables {(urlVariables, error) in
if let error = error {
print("Error with Webview", error)
return;
}
if let urlVariables: String = urlVariables {
urlString.append("?" + urlVariables)
guard let url = URL(string: urlString) else {
return
}
DispatchQueue.main.async {
self.webView.load(URLRequest(url: url))
}
}
Logger.aepMobileSDK.info("Successfully retrieved urlVariables for WebView, final URL: \(urlString)")
}
AEPEdgeIdentity.Identity.getUrlVariables
API は、ECID などのすべての関連情報を含むように URL の変数を設定します。 この例では、ローカルファイルを使用していますが、同じ概念がリモートページにも適用されます。
Identity.getUrlVariables
API について詳しくは、Edge Network拡張機能 API リファレンスガイドを参照してください。
検証
コードを実行するには:
-
シミュレーターまたはデバイスを Assurance に接続するには、「 設定手順」セクションを確認してください。
-
アプリの 設定 に移動します
-
「View…」ボタンをタップして Terms of Use を表示します。
{width="300"} {width="300"}
-
Assurance UI で、{com.adobe.griffon.mobile ベンダーの {0 Edge Identity Response URL Variables イベントを探します。
-
イベントを選択し、ACPExtensionEventData オブジェクトの urlvariable フィールドを確認し、URL に
adobe_mc
、mcmid
およびmcorgid
のパラメーターが存在することを確認します。urvariables
フィールドの例を以下に示します。-
オリジナル (エスケープ文字付き)
code language-html adobe_mc=TS%3D1636526122%7CMCMID%3D79076670946787530005526183384271520749%7CMCORGID%3D7ABB3E6A5A7491460A495D61%40AdobeOrg
-
美しい
code language-html adobe_mc=TS=1636526122|MCMID=79076670946787530005526183384271520749|MCORGID=7ABB3E6A5A7491460A495D61@AdobeOrg
-
残念ながら、web セッションのデバッグには制限があります。 例えば、ブラウザーでAdobe Experience Platform Debuggerーを使用して webview セッションのデバッグを続行することはできません。
VisitorAPI.js
の使用時にサポートされます。次のトピック:ID