ディープリンクの設定方法について
本マニュアルは、アプリにディープリンク機能を設定して、ウェブブラウザーから「myapp://」のようなディープリンクURLでアプリを起動する方法を案内します。
アイジーエイワークスのサービスでディープリンクを利用する場合は本マニュアルを必ずご確認ください。
目次
1. Androidディープリンク設定 / 必須確認!2. iOSディープリンク設定 / 必須確認!
Androidディープリンクの設定
Androidアプリにディープリンク機能を設定するために、AndroidManifest.xmlファイルに、以下のようなintent-filterを追加してください。
<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="YOUR_SCHEME_NAME_HERE" />
</intent-filter>
scheme 値を設定します。確定されていない場合、adbrixのAppKeyなどで問題ございません。
adbrixのAppKeyが123456である場合、以下の例のようにAndroidManifest.xmlファイルを修正してください。
<activity android:label="@string/app_name" android:launchMode="singleTask" ...... >
<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="adbrix123456"/>
</intent-filter>
</activity>
ご注意! 正常にディープリンク計測ができるようにActivityはSingleTaskモードをご使用ください。
ディープリンク起動テスト
以下の手順でディープリンクが正常に設定されているかテストを行います。
- 上記の内容を適用したアプリをビルドし、起動します。
- Windowのコマンド機能にアクセスします。( Win+R, cmd入力)
- adb shellを起動します。
- adbコマンドを入力します。上記の例のように設定した場合、adbrix123456:// を [URI] 部分に入力します。
C:/>adb shell
[コマンド]
am start -a android.intent.action.VIEW -d [URI] [PackageName]
[一例]
am start -a android.intent.action.VIEW -d "adbrix123456://" com.myapp.packageName
上記のようにテストを実施した場合、アプリが起動されるかを確認します。
Google Developer Guideを参考すると、ディープリンクに関するより詳細な情報が確認できます。
ディープリンクオープン計測
ディープリンクを設定すると、ディープリンクトラッキングURLでアプリを起動することができます。
ディープリンクトラッキングURLのレポートをご確認するため、Androidの開発環境では例外ケースに対する処理が必要となります。
上記のフローチャートのご参考の上、例外ケースに対するソリューションを提供します。
ソリューション A. アプリランチモード(LaunchMode)をSingleTask以外のモードまたは外部ツールで利用する場合
一定の目的によりStandard、SingleTopなどのSingleTask以外のモードまたはUnity,Cocos2dxのような外部ツールを利用する場合、ディープリンクを経由したアプリ起動時のディープリンク計測が正常にできない場合があります。
この場合、以下のガイドを参考してAndroidManifest.xmlファイルにIgawDefaultDeeplinkActivityを基本ディープリンク追加します。
<activity
android:name="com.igaworks.IgawDefaultDeeplinkActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
android:noHistory="true">
<intent-filter android:label="@string/app_name">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!—ディープリンクSchemeとHostを入力します。 -->
<data android:scheme="YOUR_SCHEME_NAME_HERE" android:host="YOUR_HOST_NAME_HERE" />
</intent-filter>
<!—ディープリンク計測以後にメインアクティビティへのリダイレクト処理のため、メインアクティビティのFull Package nameを入力します。" -->
<meta-data android:name="IgawRedirectActivity" android:value="INPUT_YOUR_FULL_PACKAGE_NAME_OF_MAIN_ACTIVITY"/>
</activity>
上記のように設定すると、ディープリンクでアプリが起動される際、既存ディープリンクのオープンアクティビティの代わりに、IgawDefaultDeeplinkActivityが起動されて計測を行った後、IgawRedirectActivityに設定したディープリンクオープンアクティビティがオープンされるようになります。
IgawDefaultDeeplinkActivityはViewが無く、計測のみ機能を実行するためユーザーには表示されません。
ご注意! IgawDefaultDeeplinkActivityを利用する場合は、既存設定されたディープリンクの設定は削除してください。
ソリューションB. ディープリンクオープン以後にインテントデータを修正処理する場合 (SingleTaskモードを利用するばあい )
ディープリンクでアプリが起動される際、インテントに渡されるディープリンクデータを利用してアプリのステータスを変更することができます。
関連機能を起動した後にディープリンクデータを全て削除または修正する場合、adbrixの計測機能が正常に起動できない場合があります。
そのため、ディープリンクデータが含まれているインテントを修正する前に、adbrixの計測のためのAPIを呼び出す必要があります。
下記マニュアルを参考して、IgawCommon.registerReferrer apiを呼び出してください。
// Example Code
public class DeeplinkActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onNewIntent(DeeplinkActivity.this.getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
IgawCommon.registerReferrer(DeeplinkActivity.this);
}
}
iOSディープリンクの設定
iOSアプリにディープリンク機能を設定するために、アプリのinfo.plistファイルを修正します。
- XcodeプロジェクトからInfo panelを開きます。
- URL types 項目に URL Schemesを追加します。
- scheme が確定されていない場合、adbrixのAppKeyを設定しても問題ございません。
- adbrixのAppKeyが 123456 である場合、以下のように修正をします。
ディープリンク起動テスト
以下の手順でディープリンクが正常に設定されているかテストを行います。
- 起動されたデバイスまたはエミュレーターのSafariブラウザーを起動します。
- URL入力画面にschemeを入力します。上記の例の場合、adbrix123456:// を入力します。
入力の後、アプリが起動されかを確認します。
ディープリンク起動計測
ディープリンクを設定すると、ディープリンクトラッキングによるアプリ起動が可能になります。
ディープリンクトラッキングレポートを利用するために、下記のようにpassOpenUrl apiを呼び出します。
#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
[IgaworksCore passOpenURL:url];
return YES;
}
#else
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options
{
[IgaworksCore passOpenURL:url];
return YES;
}
#endif