ディープリンクを設定する
ディープリンクは、ユーザーをアプリ内の特定のイベントやページに誘導するリンクです。ユーザーがスマートバナーで確認したページに直接ルーティングされるようにすることで、シームレスなエクスペリエンスを提供できます。スマートバナーSDKは、プレーンな文字列のディープリンクと、プレースホルダーを含むディープリンクテンプレートをサポートしています。プレースホルダーは、提供されたディープリンクコンテキストまたはWebページURLのGETパラメーターを使用して、SDKによって入力されます。
スマートバナーSDKでディープリンクを設定するには、2つの方法があります。
AdjustSmartBanner.init
関数にパラメーターをパスするcontext
オブジェクトを設定してコンテキストを提供する
setAndroidDeepLinkPath
とsetIosDeepLinkPath
のセッターを呼び出すsetContext
セッターを呼び出してコンテキストを提供する- GETパラメーターを使用してコンテキストを提供する
ディープリンクパスとコンテキストセッターを設定する
これらの関数を使用して、ディープリンクを設定し、動的なコンテキストを設定することができます。
ディープリンクパスを設定する
setAndroidDeepLinkPath
およびsetIosDeepLinkPath
セッター関数を使用して、ターゲットのモバイルプラットフォームにディープリンクパスを設定する必要があります。これらの関数は、絶対パスまたはテンプレートパスのいずれかの文字列値を受け取ります。
ディープリンクのパスを設定するには、各プラットフォームのイベントまたはスクリーンへの関連パスを使用してAdjustSmartBanner.setIosDeepLinkPath
およびAdjustSmartBanner.setAndroidDeepLinkPath
関数を呼び出します。
AdjustSmartBanner.setIosDeepLinkPath(
"products/jeans/?product=cool-jeans&promo=spring_10"
);
ディープリンクパスには、中括弧で囲まれた任意の数のパラメーターを含めることができます。
AdjustSmartBanner.setIosDeepLinkPath(
"products/{category}/?product={product_id}&promo={promo}"
);
スマートバナーSDKは、これらのパラメーターを提供されたコンテキストの値に置き換えます。
ディープリンクコンテキストを設定
ディープリンクコンテキストを追加するには、コンテキスト値のキーと値のペアを含むオブジェクトでAdjustSmartBanner.setContext
関数を呼び出します。
AdjustSmartBanner.setContext({
category: "jeans",
product_id: "cool-jeans",
promo: "spring_10",
});
スマートバナーSDKは、コンテキストキーに一致するプレースホルダーを対応するコンテキスト値に置き換えます。
この例では、iOSのディープリンクパスはproducts/jeans/?product=cool-jeans&promo=spring_10
です。
AdjustSmartBanner.setIosDeepLinkPath(
"products/{category}/?product={product_id}&promo={promo}"
);
AdjustSmartBanner.setContext({
category: "jeans",
product_id: "cool-jeans",
promo: "spring_10",
});
context
値に一致するキーが見つからない場合、スマートバナーSDKは現在のURLのGETパラメーターからの値を使用しようとします。一致するパラメーターが見つからない場合は、空の文字列が使用されます。
この例では、Androidのディープリンクパスはproducts/jeans/?product=&promo=
です。
AdjustSmartBanner.setAndroidDeepLinkPath(
"products/{category}/?product={product_id}&promo={promo}"
);
AdjustSmartBanner.setContext({ category: "jeans" });
setContext
メソッドは、最後に保持されたコンテキストを上書きします。メソッドを複数回呼び出すのではなく、必要なすべてのパラメーターを単一のcontext
オブジェクトに組み合わせる必要があります。
この例では、setContext
が2回目に呼び出されたときに、最初の呼び出しのコンテキストが上書きされます。一致しない{category}
パラメーターが空の文字列に置き換えられるため、結果として得られるディープリンクパスはproducts//?product_id=blue_jeans
になります。
AdjustSmartBanner.setIosDeepLinkPath("products/{category}/?product={product_id}");
AdjustSmartBanner.setContext({ category: "jeans" });
AdjustSmartBanner.setContext({ product_id: "blue_jeans" });
この例では、コンテキストが正しく設定されており、結果のディープリンクパスはproducts/shoes/?product=red-sneakers
となります。
AdjustSmartBanner.setIosDeepLinkPath("products/{category}/?product={product_id}");
AdjustSmartBanner.setContext({
category: "shoes",
product_id: "red-sneakers",
});
GETパラメーターをコンテキストとして使用する
AdjustSmartBanner.show()
を呼び出します。
ディープリンクパスのパラメーターのいずれかがcontext
にない場合、SDKは現在のページURLのパラメーターを使用しようとします。
以下の例の場合:
category
パラメーターは、setContext
セッターで提供された値を使用して入力されます。- 現在のページURLは
https://my-shop.com/spring-promo?product_id=cool-jeans&promo=spring_10
となります。
SDKはproduct_id
とpromo
の値をページURLから読み取ります。生成されるディープリンクパスはproducts/jeans/?product=cool-jeans&promo=spring_10
となります。
AdjustSmartBanner.setAndroidDeepLinkPath(
"products/{category}/?product={product_id}&promo={promo}"
);
AdjustSmartBanner.setContext({ category: "jeans" });
setContext
セッターまたはinit
メソッドによって渡されるcontext
値は、URL内のGETパラメーターよりも常に優先されます。
以下の例の場合:
product_id
パラメーターは、setContext
セッターによって設定されます。- 現在のページURLは
https://my-shop.com/spring-promo?product_id=cool-jeans&promo=spring_10
となります。
product_id
の値はsetContext
セッターによって設定されるため、URLパラメーターの値は上書きされます。生成されるディープリンクパスはproducts/jeans/?product=floral-jeans&promo=spring_10
となります。
AdjustSmartBanner.setAndroidDeepLinkPath(
"products/jeans/?product={product_id}&promo={promo}"
);
AdjustSmartBanner.setContext({ product_id: "floral-jeans" });