iOS SDK ディープリンク実装

Singular iOS SDK
ダウンロード Singular iOS SDK version 9.2.8
互換性

iOS 8+

サンプルアプリ ベストプラクティスに基づくSDK全体実装方法確認の為に、サンプルアプリをご参照ください。
実装ガイド

 

初めに

ディープリンクとはアプリ内の特定コンテンツに繋げるリンクを意味します。ユーザーがアプリが設置されたデバイスにてディープリンクをクリックするとアプリ内の特定コンテンツが開きながらユーザーを特定商品や特定経験に誘導することが出来ます。

Singularトラッキングリンクにはこのようなディープリンクとディファードディープリンクを含む事が可能です。詳しい内容はディープリンクFAQ又はSingularリンクFAQをご参照ください。

本ガイドは次の内要を案内します。

  • アプリが開かれた際にこれの原因となったトラッキングリンクにアクセスします。
  • ディープリンクの目的地を確認します。
  • 意図したコンテンツを表示します。

注意:

  • 本文書は2019年導入されたSingularの新たなトラッキングリンク技術であるSingularリンクを使用するお客様を基準に記述されています。それ以前に導入されたお客様はSingularリンクの代わりに以前のトラッキングリンク(レガシーリンク)をご利用頂いている可能性があり、レガシーリンクでディープリンクを使用するには、レカシーリンクでのディープリンク処理項目をご参照ください。
  • アプリ内のディープリンク目的地はSingularのApps(アプリ) ページにて入力されている必要が有ります。 ディープリンクURL設定 箇所をご参照ください。

ディープリンク準備事項

SingularはディープリンクにiOS Universal Linksを使用します。

Universal Linksを活性化するには, Singularリンク必須条件の指示事項を順ってください。

ディープリンク処理

Singular SDKはSingular SDKを初期化する際に設定したハンドラーを通じてディープリンクを支援します。

まず void(^)(SingularLinkParams*) ブロックを使用しハンドラーの為のコールバックメソッドを生成してください。次の例は processDeeplinkという名前でコールバックメソッドを生成しています。SingularLinkParamsはディープリンク目的地、passthroughパラメーター、ディープリンクのディファード可否を含みます。

Objective-C:

- (void)processDeeplink:(SingularLinkParams *)params {
    NSString* deeplink = [params getDeepLink];
    NSString* passthrough = [params getPassthrough];
    BOOL isDeferredDeeplink = [params isDeferred];
    // ディープリンク를 처리할 코드를 아래에 추가
}

次に withSingularLinkHandlerとコールバックメソッドを含みSDK初期化メソッド呼び出しを追加します。下の例のように AppDelegateの didFinishLaunchingWithOptions continueUserActivityの二つの進入地点全てに追加が必要です。

// didFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application
     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
      [Singular startSession:@"YourAPIKey" withKey:@"YourAPISecret"
    andLaunchOptions:launchOptions
      withSingularLinkHandler:^(SingularLinkParams * params)
  {
          [self processDeeplink:params];
    }];
      return YES;
}
 
// continueUserActivity
- (BOOL)application:(UIApplication *)application
     continueUserActivity:(NSUserActivity *)userActivity
  restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>>
   *restorableObjects))restorationHandler {
      [Singular startSession:@"YourAPIKey" withKey:@"YourAPISecret"
    andUserActivity:userActivity
      withSingularLinkHandler:^(SingularLinkParams * params)
  {
          [self processDeeplink:params];
    }];
      return YES;
}

レガシーリンクでのディープリンク処理

既存Singularお客様の場合、新しく追加されたSingularリンクではなく、Singularの過去のトラッキング動作原理であるレガシートラッキングリンクをご利用中である可能性も有ります。 Create LinkView Linksページにて管理されるレガシーリンクでもディープリンクとディファードディープリンク機能を提供します。

レガシーリンクを使用される場合、上記の説明の代わりに、 registerDeferredDeepLinkHandlerを使用し他のハンドラーを登録し、ディープリンクとディファードディープリンクを実装可能です。

registerDeferredDeepLinkHandler メソッド
定義 ディープリンクとディファードディープリンクを読み処理するハンドラー生成
メソッド + (void)registerDeferredDeepLinkHandler:(void (^)(NSString *deeplink))handler
使用例

Objective-C:

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // ハンドラー登録 [Singular registerDeferredDeepLinkHandler:^(NSString
*deeplink) { NSLog(@"Deep link from Singular: %@", deeplink); [self processDeeplink:deeplink]; }]; return YES; } - (void)applicationDidBecomeActive:(UIApplication *)application { [Singular startSession:@"MyID" withKey:@"MyKey"]; } // ハンドラーの為のコールバックメソッド - (void)processDeeplink:(NSString *)deeplink { // ディープリンクを処理するコードをここに実装してください。 }

注意:

  • 必ずSingularのstartSessionセッションを呼び出す前にハンドラーを登録する必要が有ります。
  • 性能最適化の為に他のプロセスやライブラリを初期化する前にSingular startSessionを呼び出す事をお勧めします。
  • ブロックはメインスレッドのコンテキストにて呼び出される為、長い時間が所用される作業をブロックで行わないください。
  • Singular SDKは5秒内にディープリンク値を受け取れない場合、ブロックを呼び出しnull 値を渡します。

Universal Links無しにディープリンク処理

アプリがAppleのUniversal Linksをサポートしない場合、Singular SDKはAppleの以前URIスキーマ形式のディープリンクをサポートします。

URIスキーマ形式のディープリンクを支援する為にはアプリケーションメソッドに次のコードを追加してください。

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    [Singular startSession:@"yourAPIKey" withKey:@"yourSecret" andLaunchURL:url];
    return YES;
}
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています