概要:OneLinkリンクを使用する広告主は、自社のドメインを使用してリンクをブランド化できます。これにより、キャンペーンのパフォーマンス向上とブランド露出の拡大が期待できます。
ブランドドメイン
- ブランドドメインを使用すると、自社ブランドとドメインを用いてアトリビューションリンクをブランド化できます。たとえば、上の図では以下のように設定されています。
- OneLink: abcdef.onelink.me
- ブランドドメイン: abcdef.com
- サブドメイン例: app
- ブランドドメインを実装すると、自社の完全修飾ドメインを使用でき、アトリビューションリンクをclick.abcdef.comのような形式にできます。
- ブランドドメインには、以下のようなメリットがあり、キャンペーンのパフォーマンス向上につながります。
- 信頼性の向上: 自社ブランドを活用し、一貫したブランドアイデンティティを維持することで、ユーザージャーニー上の不安や抵抗を減らし、CTRの向上につなげます。
- 自社ブランドのドメインを使用したディープリンク: 自社ブランドのドメインを使って、ユーザーをアプリ内の特定のコンテンツへ遷移させることができます。
- 簡単な実装: 実装が容易で、OneLinkと同じように動作します。
- ブランド認知度の向上: 一般的な汎用リンクではなく、自社ブランドをキャンペーンに表示できます。
- メールのスパム判定回避: リンクのドメインと送信元メールアドレスのドメインが一致しないことを理由に、メールがスパムとして判定されるリスクを抑えられます。
- ブランドドメインは、AppsFlyerの有料契約プランに含まれています。
実装の基本原則
ブランドドメインは、DNS(Domain Name System)で定義した完全修飾ドメインを、OneLinkのサブドメイン、すなわちAppsFlyerのCNAME参照先に関連付けることで実装します。実装には、DNSの標準設定を使用するとともに、AppsFlyer上でブランドドメインを設定します。さらに、ブランドドメインに対応するため、アプリにも軽微な変更を加える必要があります。
設定にあたっては、通常、自社のITチームまたはDNSホスティングプロバイダーに所属するDNS管理者と、アプリ開発者の協力が必要です。
1つのOneLinkサブドメインに、複数の完全修飾ドメインを関連付けることもできます。これにより、複数のブランドで同じOneLinkサブドメインを使用できます。
ブランドドメインの設定
ブランドドメインを設定するには、以下の作業を完了してください。
| 担当者 | 作業 | 備考 | |
|---|---|---|---|
| 1 | DNS管理者の支援を受けるマーケター | AppsFlyerでブランドリンクを設定する | 通常は自社のITチームまたはDNSホスティングプロバイダーに所属するDNS管理者が、完全修飾ドメイン(ホストとも呼ばれます)を定義し、手順に従ってCNAMEレコードを設定する必要があります。 |
| 2 | 開発者 | アプリでブランドドメインを設定する | アプリのコードに軽微な変更を加えます。 |
| 3 | マーケター | ブランドドメインを使用してテストする | |
| 任意 | マーケター | ブランドドメインを編集または削除する |
手順
AppsFlyerでブランドドメインを設定する
ブランドドメインの設定では、以下の図のように、DNSで設定した完全修飾ドメインをAppsFlyerのOneLinkサブドメインに関連付けます。
AppsFlyerサーバーを参照するブランドドメイン
始める前に:
- 使用する完全修飾ドメイン名を決定します。たとえば、app.abcdef.comです。
abcdef.comは自社ブランドのドメインです。appなどのサブドメインも任意に設定できます - DSN管理者にフルドメイン(ホスト)を作成するよう依頼します。
- DNS管理者に、完全修飾ドメイン、つまりブランドドメインが指定されたURL、
すなわちAppsFlyerホストを参照するよう、CNAMEレコードの設定を依頼します。
この構成は、上の「AppsFlyerサーバーを参照するブランドドメイン」の図に示されています。
完全修飾ドメインをOneLinkサブドメインにマッピングする:
- AppsFlyerで、エンゲージメント > ブランドドメインの順にクリックします。
- [+新しいブランドドメイン] をクリックします。
- [ブランドドメイン]フィールドに、DNSで設定した完全修飾ドメインを入力します。例:click.abcdef.com 注意:ドメインの末尾にピリオドを付けないでください。
- 表示された一覧から、OneLinkサブドメインを選択します。一覧が表示されない場合は、
OneLinkテンプレートを作成する必要があります。OneLinkテンプレートを作成すると、
デフォルトのサブドメインが提供されます。 - [次へ]をクリックします。
- CNAMEレコードを設定します:
- ドメインがAppsFlyerのCNAME参照先を正しく参照している場合は、
「AppsFlyerのCNAMEが見つかりました」と表示されます。 -
CNAMEが見つからない場合は、AppsFlyerのCNAME参照先をコピーしてDNS管理者に共有し、完全修飾ドメインがそのCNAME参照先にマッピングされていることを確認するよう依頼してください。DNS管理者は、完全修飾ドメインをAppsFlyerのCNAME参照先にマッピングする必要があります。マッピングされていない場合、ブランドドメイン自体は作成されますが、正常に動作しません。
注意
CNAMEレコードは、ブランドドメインの作成日から、確認ダイアログに表示される期日までの7日以内にマッピングする必要があります。
指定された期日までにCNAMEレコードがマッピングされなかった場合は、
7日間の設定期間を更新する必要があります。
- ドメインがAppsFlyerのCNAME参照先を正しく参照している場合は、
-
[完了]をクリックします。これで、ブランドドメインにマッピングされたOneLinkテンプレートを使用して、新しいリンクを作成できます。
注意
- ブランドドメインを設定する前に、同じOneLinkテンプレートを使用してリンクをすでに作成している場合でも、それらのリンクは引き続き正常に動作します。
- 新しいブランドドメインが利用可能になるまで、最大24時間かかる場合があります。
CNAMEレコードのマッピング期限である7日間を更新する
ブランドドメインの作成から7日以内に、完全修飾ドメインのCNAMEレコードがAppsFlyerにマッピングされなかった場合、新しいブランドドメインは動作しません。
注意
7日間の期限が過ぎた後にCNAMEレコードをマッピングした場合でも、新しいブランドドメインを動作させるには、7日間の設定期間を更新する必要があります。
7日間の設定期間を更新するには、以下の手順を実行します:
- AppsFlyer管理画面 左メニュー エンゲージメント > ブランドドメインへ移動します。
- 警告アイコン(
)が表示されている、AppsFlyerにまだマッピングされていないブランドドメインを開きます。
- 更新アイコン(
)をクリックして、7日間の設定期間を更新します。
注意
7日間の設定期間を更新しない場合は、削除アイコン()をクリックしてブランドドメインを削除できます。削除できるのは、AppsFlyerにまだマッピングされていないブランドドメインのみです。
カスタムSSL証明書(任意)
AppsFlyerが管理するSSLは、デフォルトかつ多くのお客様に推奨される設定です。AppsFlyerが証明書の発行と更新を自動的に行うため、追加の対応は必要ありません。特定のセキュリティ要件やコンプライアンス要件がある場合は、AppsFlyer管理のSSLではなく、自社で選択した認証局のSSL証明書、すなわちカスタムSSL証明書を使用できます。このオプションを選択した場合、証明書の発行、アップロード、管理、更新はお客様の責任で行う必要があります。証明書の有効期限が切れ、期限内に更新されなかった場合、サービスが中断する可能性があります。
カスタムSSL証明書を使用するには:
- ブランドドメインを作成します。
-
AppsFlyerで、 [エンゲージメント] > [ブランドドメイン]に移動し、対象のドメインにカーソルを合わせて、カスタムSSL証明書アイコンを選択します。
-
証明書情報のフォームに必要事項を入力します。
- [CSRをダウンロード]をクリックし、入力したフォームの内容に基づくCSRファイルをダウンロードします。
- ダウンロードしたCSRファイルを、選択したSSL認証局に提出します。
- 認証局から新しいSSL証明書が発行されたら、その証明書をAppsFlyerにアップロードします。
注意
SSL証明書には有効期限があります。現在の証明書の有効期限が切れる前に、証明書を更新し、更新後の証明書をAppsFlyerにアップロードする責任はお客様にあります。
アプリでブランドドメインを設定する
- 以下のSDKバージョンを使用してください:
- Android SDK V4.10.1以降
- iOS SDK V4.10.1以降
- ユーザー紹介機能を使用する場合は、iOSとAndroidの両方でSDK V5.2.0以降が必要
ブランドドメインのSDK実装に関する考慮事項
- ブランドドメインを使用してディープリンクが行われた場合、AppsFlyer SDKは、インストールおよびディープリンクに関するコンバージョンデータを取得できません。
- この問題に対応するため、開発者はAndroidでは
setOneLinkCustomDomain、iOSではoneLinkCustomDomainsのSDK APIを使用します。 - このAPIはブランドドメインに問い合わせ、マッピングされているOneLinkドメインを取得したうえで、OneLinkの処理を完了します。
マニフェストのintent-filterを更新し、android:hostにブランドドメインを指定してください。
AndroidのグローバルApplicationクラスで、SDKを初期化する前にこのAPIを使用してください。
例
public class AFApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// Set branded link domain. Don't include https:// as part of the domain.
AppsFlyerLib.getInstance().setOneLinkCustomDomain("promotion.greatapp.com");
AppsFlyerLib.getInstance().init(AF_DEV_KEY, conversionListener, this);
AppsFlyerLib.getInstance().start(this, AF_DEV_KEY);
}
}
ブランドドメインが複数ある場合は、コンバージョンデータを常に取得し、アプリへのディープリンクを正常に行えるよう、すべてのドメインをAPIに渡してください。
例
AppsFlyerLib.getInstance().setOneLinkCustomDomain("promotion.greatapp.com",
"click.greatapp.com",
"deals.greatapp.com");
iOS Universal Links用にドメインを関連付ける方法:
- OneLinkのドメインまたはサブドメインを、XcodeでAssociated Domainsとして設定します。
- Xcode にてブランドドメインを associated domain と設定します。
- コンバージョンデータを取得できるよう、ブランドリンクを設定します。手順については、以下から該当するプログラミング言語を選択してください。
AppDelegate.mのdidFinishLaunchingWithOptionsメソッド内で、以下のAPIを使用します。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/** APPSFLYER INIT **/
[AppsFlyerLib shared].appsFlyerDevKey = @"SED_DEV_KEY";
[AppsFlyerLib shared].appleAppID = @"123456789";
[AppsFlyerLib shared].oneLinkCustomDomains = @[@"promotion.greatapp.com"];
//...
//...
}
ブランドドメインが複数ある場合は、コンバージョンデータを常に取得し、アプリへのディープリンクを正常に行えるよう、すべてのドメインをAPIに渡してください。
例
[AppsFlyerLib shared].oneLinkCustomDomains = @[@"promotion.greatapp.com", @"click.greatapp.com"];
AppDelegate.swiftのdidFinishLaunchingWithOptionsメソッド内で、以下のAPIを使用します:
func application(_ application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
AppsFlyerLib.shared().appsFlyerDevKey = "6CQi4Be6Zs9oNLsCusPbUL"
AppsFlyerLib.shared().appleAppID = "340954504"
AppsFlyerLib.shared().oneLinkCustomDomains = ["example.com"]
//...
//...
}
ブランドドメインが複数ある場合は、文字列の配列としてAPIに渡すことができます。これにより、どのブランドリンクが使用された場合でも、コンバージョンデータを取得し、アプリへのディープリンクを正常に行えるようになります。
例
AppsFlyerLib.shared().oneLinkCustomDomains = ["promotion.greatapp.com", "click.greatapp.com"]
ブランドドメインを使用してテストする
前提条件:
ブランドドメインを使用してテストする前に、ブランドドメインのワークフローに記載されている手順をすべて完了してください。
ブランドドメインの作成とテスト方法:
- ブランドドメインにマッピングされたOneLinkテンプレートを使用してOneLinkのカスタムリンクを作成してください。
- カスタム計測リンクをテキストエディタにコピーします。
-
カスタム計測リンクは、OneLinkサブドメイン、OneLink ID、およびカスタムリンクID で構成されています。OneLinkサブドメインを、ブランドドメインの完全修飾ドメインに置き換えます。例:
カスタム計測リンク ブランドドメイン abcdef.onelink.me/A1bc/dc1234ef click.abcdef.com/A1bc/dc1234ef - ブランドリンクを使用してインストールとディープリンクをテストします。
- テストの一環としてローデータレポートを使用する場合、Original URLのフィールドにはブランドリンクが入力されます。
ブランドドメインを編集、検証、削除する
ブランドドメインのマッピングを編集する:
既存の完全修飾ドメインのマッピング先を、別のOneLinkサブドメインに変更できます。この場合、CNAMEを再設定する必要はありません。
- AppsFlyer管理画面 左メニュー エンゲージメント > ブランドドメインへ移動します。
- 編集するブランドドメインに移動します。
- 編集アイコン (
) をクリックします。
- 新しいOneLinkサブドメインを選択します。
- 次へをクリックします。CNAME を設定する必要はありません。
- [完了]をクリックします。
要注意
配信中のキャンペーンで使用しているブランドドメインを変更すると、リンクの動作が変わったり、リンクが機能しなくなったりする可能性があります。
ブランドドメインのマッピングを検証する
ブランドドメインにマッピングされているOneLinkサブドメインを変更した後は、ブランドドメインが正しくマッピングされていることを確認してください。
- AppsFlyer管理画面 左メニュー エンゲージメント > ブランドドメインへ移動します。
- 検証するブランドドメインに移動します。
- 確認アイコン(
)をクリックします。
注意
CNAMEレコードがまだマッピングされていないことが原因で検証に失敗した場合は、検証失敗ダイアログに表示される期日まで、最大7日間の設定期間があります。
指定された期日までにCNAMEレコードがマッピングされなかった場合は、7日間の設定期間を更新する必要があります。
ドメインのCNAMEレコードがAppsFlyerを参照しなくなった場合:
CNAMEレコードを変更し、AppsFlyerを参照しない状態にすると、該当するブランドドメインはAppsFlyerから削除されます。
ブランドドメインのマッピングを削除する:
ブランドドメインを削除するには、AppsFlyerのCSMまたはhello@appsflyer.comまでお問い合わせください。
トラブルシューティング、特性、制限事項
トラブルシューティング
| 症状 | 原因/解決方法 |
|---|---|
| ブランドドメインをOneLinkテンプレートにマッピングできない |
|
| ブランドドメインからアプリへディープリンクされない |
|
| ブランドドメイン経由のインストールが計測されない |
|
| ブランドドメイン経由のリエンゲージメントが記録されない |
以下が有効であり、正しく設定されていることを確認してください。
|
| ブランドドメインの設定中に「ドメインが存在しません」と表示される |
|
| ブランドドメインの設定中に「AppsFlyerのCNAMEが見つかりません」と表示される |
|
| ブランドドメインのページを開いたときに「ブロックされました」と表示される |
ブランドドメイン単体には、テンプレートやパラメーターは含まれていません。ブランドドメインを使用する場合は、ブランドドメインURLの末尾にテンプレートまたはパラメーターを追加する必要があります。 たとえば、ブランドドメインがclick.abcdef.comの場合、click.abcdef.comのみを使用すると、「ブロックされました」というメッセージが表示されます。 URLの末尾にパラメーターまたはテンプレートを追加する必要があります。例:click.abcdef.com/A1bc/dc1234ef
|
| ブランドドメインのページを開いたときにerr_cert_authority_invalidエラーが表示される |
このエラーは、認証局が認識されていないため、ブランドドメインに有効なHTTPS証明書が設定されていないことを示します。AppsFlyerはLet's Encryptを使用してブランドドメインの証明書を発行しているため、ドメインのCAA(Certification Authority Authorization)DNSレコードで、Let's Encryptが有効な認証局(CA)として認識されていない可能性があります。 解決策
|
特性と制限事項
| 特性 | はい ✓ / いいえ x | 備考 |
|---|---|---|
| アカウントユーザーのアクセス権限 | ✓ | |
| アドネットワークのアクセス権限 | x | |
| 代理店によるアクセス制限 | x | 代理店は、ブランドドメインまたはOneLinkリンクを作成できません。 |
| 代理店の運用媒体の開示設定 | x | |
| アプリ固有の通貨設定 | N/A | |
| アプリ固有のタイムゾーン設定 | N/A | |
| ブランドドメインの利用可否 | N/A | ブランドドメインは、対象となる有料プランでのみ利用できます。サブスクリプションプランの有効期限が切れた場合や解約された場合は、ブランドドメインを利用できなくなり、既存のブランドドメインを使用したリンクも機能しなくなります。 |
| 文字の制限 | N/A | ブランドドメインを入力する際、末尾の文字にピリオド(.)は使用できません。 |
| データの更新頻度 | N/A | |
| 過去データ | ✓ | |
| HTTP | x | ブランドリンクではHTTPプロトコルはサポートされていません。HTTPSを使用する必要があります。 |
| 非オーガニックデータ | ✓ | |
| オーガニックデータ | ✓ | |
| レート制限 | ✓ | ブランドドメインのSSL/HTTP証明書は、AppsFlyerがLet's Encryptを使用して発行します。証明書の発行上限は、1つのドメインにつき1週間あたり新規50件です。 |
| サイズ制限 | N/A | |
| SSL / HTTP証明書の更新 | ✓ | AppsFlyerが管理するブランドドメインのSSL / HTTP証明書は、自動的に更新されます。お客様側での対応は必要ありません。 |