ディープリンクを設定する

ディープリンクは、ユーザーをアプリ内の特定のイベントやページに誘導するリンクです。ユーザーがスマートバナーで確認したページに直接ルーティングされるようにすることで、シームレスなエクスペリエンスを提供できます。スマートバナーSDKは、プレーンな文字列のディープリンクと、プレースホルダーを含むディープリンクテンプレートをサポートしています。プレースホルダーは、提供されたディープリンクコンテキストまたはWebページURLのGETパラメーターを使用して、SDKによって入力されます。

スマートバナーSDKでディープリンクを設定するには、2つの方法があります。

ディープリンクパスとコンテキストセッターを設定する

これらの関数を使用して、ディープリンクを設定し、動的なコンテキストを設定することができます。

ディープリンクパスを設定する

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パラメーターをコンテキストとして使用する

重要:
WebアプリがSPAシングルページアプリケーションの場合、SDKはURLの変更を検出できません。常に現在のURLの値を読み取るようにするには、ルートが変更されたときに AdjustSmartBanner.show() を呼び出します。

ディープリンクパスのパラメーターのいずれかがcontextにない場合、SDKは現在のページURLのパラメーターを使用しようとします。

以下の例の場合:

  • categoryパラメーターは、 setContextセッターで提供された値を使用して入力されます。
  • 現在のページURLはhttps://my-shop.com/spring-promo?product_id=cool-jeans&promo=spring_10となります。

SDKはproduct_idpromoの値をページ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" });