ディープリンク・サポートの追加
アプリがインストールされたデバイス上でユーザーがディープリンクをクリックすると、アプリが開き、特定の商品や体験が表示されます。
Singularのトラッキングリンクには、ディープリンク機能だけでなく、ディファードディープリンクも含めることができます(詳細については、ディープリンクFAQと Singular Links FAQを参照してください)。
前のステップで実装したSingular SDK Configは、コールバック関数("handleDeeplink")を参照します。handleDeeplink」関数は、Singular SDKでディープリンクと ディファードディープリンクのサポートを有効にするために必要です。
ディープリンクを実装するための前提条件
以下の手順を完了していることを確認してください:
- Singular Links Prerequisitesの指示に従ってください。
- Xcodeで、Singular Custom SubdomainをSigning & Capabilities > Associated Domainsに追加します。
- 情報(Info)>URLタイプ(URL Types)で、アプリのスキームをURLタイプに追加します。
- Singular プラットフォームのAppsページに Apple DeveloperTeam IDとスキームを追加しました。
注意事項
- アプリがすでにiOSユニバーサルリンクを使用するように設定されている場合、ユニバーサルリンクドメインは関連付けられたドメインにすでに存在し、残すことができます。このドメインは、次のセクションで説明するように、Supported Domains設定オプションに追加する必要があります。
- また、Singularカスタムリンクドメインも含める必要があります。これは、Singularがマーケティングキャンペーンからのアトリビュートをトラッキングし、これらのキャンペーンからのディープリンクを処理できるようにするためです。
ハンドラのコールバックメソッドの作成
以下のコード例では、handleDeeplinkというコールバックメソッドを作成しています (このメソッドは上記の Config コードサンプルで参照されています)。
ブロックシグネチャはvoid(^)(SingularLinkParams*) です。SingularLinkParamsには、ディープリンク先、パススルーパラメータ、リンクが延期されるかどうかが含まれます。
func handleDeeplink(params: SingularLinkParams?) {
// Get Deeplink data from Singular Link
let deeplink = params?.getDeepLink()
let passthrough = params?.getPassthrough()
let isDeferredDeeplink = params?.isDeferred()
let urlParams = params?.getUrlParameters()
// Add deep link handling code here
//...
}
- (void)handleDeeplink:(SingularLinkParams*)params{
// Get Deeplink data from Singular Link
NSString *deeplink = [params getDeepLink];
NSString *passthrough = [params getPassthrough];
BOOL isDeferredDeeplink = [params isDeferred];
NSDictionary *urlParams = [params getUrlParameters];
// Add deep link handling code here
//...
}
その他のリンクオプション
Singular SDKはSingularが提供しないユニバーサルリンクもサポートします。これは、Google Adsや Facebookなどのディープリンクをサポートするパートナーのアトリビューションを測定するために必要です。
Singular iOS SDKバージョン12.0.3以上では、Singular以外のユニバーサルリンクがデフォルトでサポートされています。
古いバージョンのSDKでサードパーティのディープリンクをサポートするため:
- Singular iOS SDKの古いバージョンでは、Singular SDKが初期化されるたびに、すべての関連ドメイン(sng.linkを除く)をsupportedDomains設定オプション(Configオブジェクト内)に追加する必要があります。これにより、サードパーティのディープリンクの動作が可能になりますが、ディープリンクへのアトリビューションはできません。アトリビューションのためには、Singularトラッキングリンクを使用する必要があります。
- supportedDomainsの機能は、ユニバーサルリンク用にアプリを設定し、現在ドメイン上で独自のAASAファイルをホストしていることを前提としています。
func getConfig() -> SingularConfig? {
// Singular Config Options
guard let config = SingularConfig(apiKey: Constants.APIKEY,
andSecret: Constants.SECRET) else {
return nil
}
//...
config.supportedDomains = ["subdomain.mywebsite.com",
"anothersubdomain.myotherwebsite.com"]
//...
return config
}
- (SingularConfig *)getConfig {
// Singular Config Options
SingularConfig* config = [[SingularConfig alloc] initWithApiKey:APIKEY
andSecret:SECRET];
//...
config.supportedDomains = @[@"subdomain.mywebsite.com",
"anothersubdomain.myotherwebsite.com"];
//...
return config;
}
Singular SDKはESP(メールサービスプロバイダ)が提供するユニバーサルリンクをサポートします。
ESPのドメインはHTTPSに対応している必要があります。AppleはiOSアプリがリダイレクトなしでHTTPS対応のエンドポイントからapple-app-site-associationファイルを取得することを要求しています。あなたのサイトのDNSでDNSコンフィギュレーションが必要な場合があるので、あなたのアプリのためにこのファイルをホストする方法をESPに確認してください。通常、ESPはHTTPSを有効にするために必要な手順を提供する。
ESPドメインをサポートするには、Singular SDKが初期化されるたびにespDomains設定オプション(configオブジェクト内)にカスタムトラッキングドメインを追加します。
func getConfig() -> SingularConfig? {
// Singular Config Options
guard let config = SingularConfig(apiKey: Constants.APIKEY,
andSecret: Constants.SECRET) else {
return nil
}
//...
config.espDomains = ["links.mywebsite.com"]
//...
return config
}
- (SingularConfig *)getConfig {
// Singular Config Options
SingularConfig* config = [[SingularConfig alloc] initWithApiKey:APIKEY
andSecret:SECRET];
//...
config.espDomains = @[@"links.mywebsite.com"];
//...
return config;
}