【非推奨】クエリパラメータによるアプリ内WebViewとのユーザー連携

❗️

非推奨

このドキュメントには非推奨の内容が含まれています。
将来的に廃止予定の機能であり、予告なく提供を停止する可能性があります。

クエリパラメータを利用した紐付け

SDKではユーザースクリプトを実行できない環境向けに、URLクエリパラメータを付与することでユーザー連携できる機能を提供しています。

SDKが用意しているヘルパーメソッドにロードするページのURLを渡すことで、紐付け処理に必要となるクエリパラメータを付加することができます。

紐付け用のクエリパラメータが付加されたURLをWebViewでロードすることにより、紐付けが行われた状態でトラッキングが行われます。

if let baseUrl = URL(string: "https://example.com") {
  // 連携用のパラメータを付与したURLを取得
  let url = UserSync.appendingQueryParameter(baseUrl)
  
  // 連携用パラメータが付与されたURLを利用して、ページのロード処理を行う
  webView.loadRequest(URLRequest(url: url))
}
NSURL *baseURL = [NSURL URLWithString:@"https://example.com"];

// 連携用のパラメータを付与したURLを取得
NSURL *URL = [KRTUserSync appendingQueryParameterWithURL:baseURL];

// 連携用パラメータが付与されたURLを利用して、ページのロード処理を行う
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
[webView loadRequest:request];
val baseUrl = "https://example.com"

// 連携用のパラメータを付与したURLを取得
val url = UserSync.appendUserSyncQueryParameter(baseUrl)

// 連携用パラメータが付与されたURLを利用して、ページのロード処理を行う
webView.loadUrl(url)
String baseUrl = "https://example.com";

// 連携用のパラメータを付与したURLを取得
String url = UserSync.appendUserSyncQueryParameter(url);

// 連携用パラメータが付与されたURLを利用して、ページのロード処理を行う
webView.loadUrl(url);
const baseUrl = 'https://example.com';

// 連携用のパラメータを付与したURLを取得
const url = await UserSync.appendingQueryParameter(baseUrl);

// 連携用パラメータが付与されたURLを利用して、ページのロード処理を行う
webViewController.loadUrl(url);
const baseUrl = 'https://example.com';

// 連携用のパラメータを付与したURLを取得
const url = UserSync.appendingQueryParameter(url);

// 連携用パラメータが付与されたURLを利用して、ページのロード処理を行う
<WebView source={{ uri: url }} />;
KarteUserSync.appendingQueryParameter('<ロード対象のWebページURL>').then(url => {
    // クエリパラメータが付与されたurlでWebページをロードする処理を実装する
});

🚧

クエリパラメータの有効期限とリンクの扱いの注意点

クエリパラメータには1分の有効期限を設けており、有効期限が切れている場合は紐付けが行われません。
そのためページをロードする際は、URLに都度クエリパラメータを付与するようにしてください。

又、有効期限内のクエリパラメータつきのリンクを Safari や PC の Chrome などで開くと _source が意図せず native_app_webview で計測されます。
そのため、アプリ外でリンクを利用する場合は連携パラメータがついていないことを確認してください。
参考: https://support.karte.io/post/5p11ldZv1FiG7KAGtuO8y1#2-0

🚧

CustomChromeTabs等でのユーザ連携について

CustomChromeTabs等の外部ブラウザの機能をアプリ内WebViewのように使うことができますが、その際にはKARTEのユーザーの紐付けを行うことを推奨しません。
紐づけてしまった場合、Cookieが共有されてしまうことによりChrome等のブラウザからのKARTEイベントがアプリユーザのものと区別ができなくなってしまうためです。

外部ブラウザのユーザーとアプリのユーザーの紐付けはidentifyイベント等を用いて行ってください。
参考: https://support.karte.io/post/5p11ldZv1FiG7KAGtuO8y1#2-0