コンテンツへスキップ

成長

ディープリンク

ディープリンクは、チャレンジ、紹介の招待、商品ページなど、インストール済みのアプリ内の特定の画面を開きます。アプリがインストールされていない場合は、スマートリンクと同じように訪問者をストアに送ります。ディープリンクはPro、Studio、買い切りで利用できます。Universal LinksとAndroid App Linksには、Studioに含まれるカスタムドメインも必要です。

ディープリンクの仕組み

スマートリンクに/open/とアプリ内のパスを追加します。クエリ文字列も引き継がれます。

https://mapps.one/habitly/open/challenges/30-days?ref=newsletter
訪問者動作
iOS URLスキームが設定されているiPhoneまたはiPad 短いページがhabitly://challenges/30-days?ref=newsletterを開こうとします。アプリがインストールされていない場合、訪問者はそのままApp Storeに進みます。
パッケージ名が設定されているAndroidまたはHuawei 短いページが、同じパスに対してお客様のパッケージに限定したAndroidインテントを開きます。Chromeは、アプリがインストールされていればアプリを開き、インストールされていなければGoogle Playへのフォールバックに従います。
そのプラットフォームのディープリンク設定がないスマートフォンまたはタブレット フォールバック先に直接リダイレクトされます。
デスクトップコンピューターとボット クエリ文字列を保持したまま、スマートリンクにリダイレクトされます。

フォールバック先は、リダイレクトルールに従ってスマートリンクがそのデバイスを送る先で、UTMタグも転送されます。そのプラットフォームにストアリンクがない場合、フォールバック先はランディングページになります。ディープリンクがまったく設定されていない場合や、プランにディープリンクが含まれていない場合は、すべての訪問者がスマートリンクにリダイレクトされます。

パスには、英字、数字、/ _ - . ~ %の文字を使用できます。それ以外の文字は削除されるため、スペース(%20)などはパーセントエンコードしてください。

設定

アプリのディープリンクタブを開き、対応するプラットフォームの項目を入力します。

項目例用途
iOS URLスキームhabitly://iPhoneとiPadで、リダイレクトページからアプリを開く
Apple Team IDA1B2C3D4E5Universal Links。Apple Developerアカウントの「Membership details」に記載されている10文字のIDです。
iOSバンドルIDcom.habitly.appUniversal Links
Androidパッケージ名com.habitly.appAndroidデバイスとHuaweiデバイスでアプリを開く
Androidスキームhabitlyインテントフィルターが処理するスキーム
SHA-256証明書フィンガープリント14:6D:E9:83:...:44:E5Android App Links。1つ以上追加でき、カンマ、スペース、改行で区切ります。
Androidスキーム:アプリが登録しているカスタムスキーム(habitlyなど)を設定してください。空欄の場合はhttpsが使用され、パスの最初の部分がホストになります(https://challenges/30-days)。これは、インテントフィルターがその形式を想定している場合にのみ機能します。

アプリにスキームを登録する

iOSでは、Info.plistに次のように記述します。

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>habitly</string>
    </array>
  </dict>
</array>

Androidでは、AndroidManifest.xmlに次のように記述します。

<activity android:name=".MainActivity" android:exported="true">
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="habitly" />
  </intent-filter>
</activity>

アプリでは、受け取ったURLを読み取って対応する画面に遷移し、必要なクエリパラメーターを読み取ります。URLは人の手で編集されることがあるため、不明なパスはホーム画面に送ってください。

Universal LinksとAndroid App Links

スキームを使ったリンクでは最初に短いリダイレクトページが表示され、iOSでは訪問者に確認を求める場合があります。検証済みのリンクではこの手順が省略され、アプリがインストールされていれば、システムが直接アプリを開きます。検証にはそのアプリ専用のドメインが必要なため、カスタムドメインで利用できます。get.habitly.appを接続すると、mapps.oneが関連付けファイルを自動的に配信します。

ファイル生成元
https://get.habitly.app/.well-known/apple-app-site-association
(/apple-app-site-associationでも配信)
Apple Team IDとバンドルID
https://get.habitly.app/.well-known/assetlinks.jsonAndroidパッケージ名とSHA-256フィンガープリント

Appleのファイルは、/open/以下のすべてのパスを対象にします。

{
  "applinks": {
    "details": [
      {
        "appIDs": ["A1B2C3D4E5.com.habitly.app"],
        "components": [
          { "/": "/open/*", "comment": "Deep links created with mapps.one" }
        ]
      }
    ]
  },
  "webcredentials": { "apps": ["A1B2C3D4E5.com.habitly.app"] }
}

Androidのファイルは次のとおりです。

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.habitly.app",
      "sha256_cert_fingerprints": [
        "14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"
      ]
    }
  }
]

各ファイルは、項目が有効な値になるまで「404 Not Found」を返します。Appleの場合は10文字のTeam IDとバンドルID、Androidの場合はパッケージ名と、AA:BB:...形式(32組)のフィンガープリント1つ以上が必要です。フィンガープリントにはPlay Console → App integrityにあるPlay App Signing鍵のものを使用し、ローカルで署名したビルドをテストする場合はアップロード鍵のものも追加してください。ファイルは1時間キャッシュされます。Appleも自社のサーバーでファイルをキャッシュするため、変更をテストするときはアプリを再インストールしてください。

アプリを設定する

iOS:applinks:get.habitly.appを指定して、Associated Domainsケイパビリティを追加します。

Android:ドメイン用に、検証付きのインテントフィルターを追加します。

<intent-filter android:autoVerify="true">
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="https" android:host="get.habitly.app" android:pathPrefix="/open/" />
</intent-filter>

その後、キャンペーンでhttps://get.habitly.app/open/challenges/30-daysのようなリンクを使用します。アプリがインストールされていない場合はブラウザでページが読み込まれ、同じフォールバックの流れが実行されます。

検証済みリンクには独自のドメインを使用してください。mapps.oneは多くのアプリで共有されているため、関連付けファイルはカスタムドメインでのみ配信されます。mapps.one/habitly/open/のリンクも、リダイレクトページを経由して引き続き機能します。ダッシュボードとAPIに表示されるディープリンクのURLにはmapps.oneが使われているため、検証済みリンクを使いたい場合は、ホストを独自のドメインに置き換えてください。

分析

ディープリンクのオープンには、スマートフォンやタブレットが/open/ URLを読み込み、mapps.oneがアプリを開こうとしたときのオープンがカウントされます。ストアへのフォールバックが二重にカウントされることはありません。アプリを直接開く検証済みリンクはmapps.oneに到達しないため、カウントされません。それらについては、アプリ独自の分析をご利用ください。