iOS向けURIスキームのフォールバック

概要:ユーザーがiOS端末でOneLinkカスタムリンクをクリックした際に、URIスキームのみでアプリ起動する、もしくはユニバーサルリンクがアプリ起動に失敗した際のフローを理解しましょう。

iOS向けURIスキームのフォールバックについて

  • iOS端末でアプリを開く上で、最もサポートされている方法はユニバーサルリンクの利用です。2016年以降、iOSのユニバーサルリンクでアプリを開くことができなかった場合のフォールバックとしてURIスキームを利用するには、ユーザーの利用しているOSバージョンの状況により、多くの障壁が存在します。これらの制限は AppsFlyerに関連するものではなく、アプリを開くために使用するURIスキームを持つ他のリンクにも影響します。
  • デフォルトでは、URIスキーム(af_dp パラメーターの値を含む)は、限られた特定のブラウザ/プラットフォーム上で、iOSアプリを起動するためのフォールバックメソッドとしてのみ使用されます。
  • Safariでは、iOSでアプリを開くフォールバックとしてURIスキームを使用するには、OneLink URLに次のパラメーターを設定する必要があります:
    • af_dpaf_dp (パラメータ値にURIスキームを設定します)
    • af_force_deeplink=true(アプリをaf_dpのURIスキームを使用して開くことを強制します)。このパラメーターを付与しない場合は、URIスキームを使用したアプリ起動はできません。
  • その他のブラウザに関しては、URIスキームの挙動は予測不可能であるため、デフォルトではサポートされていません。リンクをクリックしたユーザーは、App Store(または af_ios_url パラメーターが設定されている場合は、設定したURL)にリダイレクトされます。
  • その他の詳細については、次のシナリオフローチャートと使用例をご覧ください。

注意

X(旧Twitter)は URIスキームをサポートしていません。アプリ起動時の問題を回避するため、Universal Link を設定したソーシャルアプリ向けランディングページ機能の利用を推奨します。 

シナリオ フローチャート

flowchartdoctored.png

使用事例

デフォルトでURIスキームを使用できるブラウザ

時々、ユニバーサルリンクはアプリ起動に失敗します。アプリが存在しないか、リンクにユニバーサルリンクが設定されていないためです。その場合、次のブラウザ / プラットフォームは、デフォルトでアプリを開くためのフォールバック方法としてURIスキームを使用できます:

  • Chrome
  • Kakaotalk
  • Naver
  • Naverブログ
  • Weibo

フローチャート

use case flowchart.png

Safari

以下では、ユニバーサルリンクがアプリ起動に失敗し、リンクに af_dp(URIスキームが値に設定されている)が含まれている時のユーザーフローを説明しています。

アプリがインストールされていない場合:

  1. Safariのエラーメッセージダイアログが表示されます。"Safariはページを開けません。アドレスが無効です"
  2. ユーザーがOKをクリックしてダイアログを閉じ、バックグランドでランディングページが一瞬読み込まれるのが見え、1秒以内に自動でApp Store、または af_ios_url パラメーターの値に設定したページにリダイレクトされます。
     

アプリがインストールされている場合:

  • リンクに af_force_deeplink=true が含まれていない場合、ユーザーはApp Storeにリダイレクトされます。またはaf_ios_urlパラメータのリダイレクト設定に従います。
  • リンクに af_force_deeplink=true が含まれている場合:
    1. Safariダイアログが表示されます。
    2. ユーザーが Openをクリックすると、アプリが起動します。
    3. ユーザーがCancel をクリックした場合:
      • もし af_ios_url パラメーターが設定されている場合、ユーザーはその値に応じてリダイレクトされます。
      • af_ios_urlパラメータが設定されていない場合、Safariのエラーメッセージダイアログがバックグラウンドのランディングページの上に表示され、「Safariはページを開けません。アドレスが無効です」と表示されます。
    4. ユーザーがOKをクリックしアクションを促すCTAボタンを含むランディングページが表示されます。
    5. ユーザーがCTAをクリックしダイアログが表示されます。
    6. ユーザーが Openをクリックすると、アプリが起動します。 
    7. ユーザーがCancelをクリックすると、ダイアログが表示されます。
    8. ユーザーがOKをクリックすると、App Storeにリダイレクトされます。  
    9. ユーザーがCancelをクリックすると、ユーザーはランディングページにとどまります。 

フローチャート

Copy_of_Ios_fall_back_-_safari.png

Facebook投稿 — オウンド(無料)

以下では、ユニバーサルリンクがアプリ起動に失敗し、リンクに af_dp(URIスキームが値に設定されている)が含まれている時のユーザーフローを説明しています。

アプリがインストールされている場合:

  • アプリが起動します。

アプリがインストールされていない場合:

  1. ソーシャルメディアアプリが設定されていない場合、ユーザーがSALPでCTAをクリックしたあと、ランディングページ上にダイアログが表示されます。
  2. [アプリを開く]をクリックします。次のうちいずれかが発生します:
    • af_ios_url パラメータが設定されている場合、ユーザーはそれに応じてリダイレクトされます。
    • af_ios_url パラメータが設定されておらず、af_force_deeplink=true がリンクにない場合、ユーザーはそれに応じてリダイレクトされます。
    • af_ios_urlパラメーターが設定されておらず、 af_force_deeplink=true がリンクにある場合、バックグラウンドのランディングページ上にダイアログが再表示されます。
  3. ユーザーがOpenをクリックすると、App Storeに遷移します。
  4. ユーザーがCloseをクリックすると、ランディングページが表示されます。
  5. ユーザーがApp Storeバッジをクリックし、App Storeにリダイレクトします。

フローチャート

diagram-X.png