従来のAPI
概要:ディープリンクとディファードディープリンクの従来の方法を紹介します。注:従来の方法ではなくUDLメソッドを使用することを推奨します。
ディープリンクにより、マーケティング担当者は既存アプリユーザーを特定のアプリ体験(例えば、アプリ内の特定のページなど)へ誘導するためのリンクを作成できます。ディファードディープリンクは、アプリを持っていない新規ユーザーに、まずアプリストアでのアプリダウンロードを促し、その後特定のアプリ体験へ誘導します。


ディープリンク
Overview
ディープリンクは、モバイルユーザーを特定のアクティビティまたはアプリ内コンテンツに誘導します。
このようなアプリ内での特定のアクティビティへのルーティングは、OSがアプリを開いたときにアプリに渡される deep_link_value
と、onAppOpenAttribution
メソッドが呼び出されることで可能になります。AppsFlyerのOneLinkは、ユーザーのクリックに伴い正しい値が渡されるため、ユーザーのアプリ体験をパーソナライズすることができます。
ディープリンクの場合は、deep_link_value
のみが必要です。ただし、その他のパラメーターと値(カスタム計測パラメーターなど)もリンクに追加でき、SDKがディープリンクデータとして返すことも可能です。
マーケティング担当者とディベロッパーは、希望のアプリ動作と deep_link_value
について共同で決定する必要があります。マーケティング担当者はこのパラメーターをディープリンクを作成するために使用し、ディベロッパーは、受け取った値をもとにアプリの動作をカスタマイズします。
AppsFlyer SDKは、ユーザーがクリックしたリンクからパラメータを返します。アプリ内のルーティングやリンク内のデータのパーソナライズのために、アプリ内でパラメーターが正しく処理されるようにするのはディベロッパーの責任です。
ディープリンクは次の流れで機能します:


- ユーザーがOneLinkのショートURLをクリックします。
- Androidは、AndroidManifest.xml の関連するアクティビティに基づいてアプリを起動します。
- AppsFlyer SDKがアプリ内で起動します。
- AppsFlyer SDKはOneLinkデータを取得します。
- ショートURLでは、AppsFlyerのサーバーにあるショートURLリゾルバAPIからデータを取得します。
- ロングURLでは、データを直接取得しています。
- AppsFlyer SDKが、取得したパラメーターとキャッシュした計測パラメーター(例:
install_time
)と一緒にonAppOpenAttribution()
をトリガーします。 - 非同期的に、
onConversionDataSuccess()
が呼び出され、キャッシュされた計測データを完全に保持します。(is_first_launch
がtrue
であるかどうかを確認することで、この関数を終了することができます。) onAppOpenAttribution()
は、attributionData マップを使用してアプリ内のその他のアクティビティを起動し、関連するデータを渡します。- これにより、OneLinkの最大の目的である、ユーザーのためのパーソナライズされた体験が生まれます。
Procedures
onAppOpenAttribution
メソッドを実装し、パラメーターの動作を設定するには、次の手順のチェックリストを完了する必要があります。
手順のチェックリスト |
---|
|
|
アプリの動作を決定
リンクがクリックされた際のアプリ動作を決定する方法:
マーケティング担当者から、アプリがクリックされた際に期待する動作を聞き出してください。
メソッドインプットの計画
OneLinkがクリックされ、ユーザーのデバイスにアプリがインストールされている場合、AppsFlyer SDKにより onAppOpenAttribution
メソッドが呼び出されます。これはリターゲティングエンゲージメントと呼ばれます。
onAppOpenAttribution
は、次のようなインプットとして変数を取得します:Map <String, String>
インプットデータの構成はこちらで説明しています。
リンクがクリックされた際に期待するアプリの動作に基づいて、マーケティング担当者とディベロッパーは、deep_link_value
(およびその他のパラメーターと値)について、共同で計画する必要があります。
期待するリンクの動作に基づいて、deep_link_value
、およびその他のパラメーター名と値を計画する方法:
- 希望するアプリの動作を実装するために必要なパラメーターと値について、マーケティング担当者に伝えてください。
deep_link_value
とその他のパラメーターと値の命名規則を決定してください。
注:カスタムパラメーターは、AppsFlyerのローデータには表示されません。
ヒント
マーケティング担当者とデベロッパーは、アプリの更新作業を最小限に抑えるために、
deep_link_value
(およびその他パラメーター/値)のための長期的なシステムを一緒に決定する必要があります。
deep_link_value
は、SKU、投稿ID、パスなどに基づいて指定できます。選択したパラメータに動的な値を入力できるシステムの構築ついて、開発担当者と合意することを強くお勧めします。そうすることで、開発者に毎回アプリのコード変更を依頼する必要なく、アプリ内の異なるコンテンツにユーザーを遷移させる様々なディープリンクをマーケティング担当者が生成できます。次のURLの例を参照してください。フルーツタイプの
deep_link_value
は、マーケティング担当者とディベロッパーが共同で選択したものです。そして、デベロッパーが値を動的なものに設定したので、マーケティング担当者は開発チームにこれ以上作業を依頼することなく任意のフルーツを入力することができます。https://onelink-sample-app.onelink.me/H5hv?pid=Email&c=fruit_of_the_month**&deep_link_value=apples**...
https://onelink-sample-app.onelink.me/H5hv?pid=Email&c=fruit_of_the_month**&deep_link_value=bananas**...
https://onelink-sample-app.onelink.me/H5hv?pid=Email&c=fruit_of_the_month**&deep_link_value=peaches**...
onAppOpenAttribution() ロジックの実装
ディープリンクは、メインアクティビティ内でonAppOpenAttribution
メソッドを開きます。メソッドインプットにある deep_link_value
とその他のパラメーターは、アプリ起動時の特定のユーザー体験の実装に使用されます。
ロジックを実装する方法:
- 選択したパラメーターと値に基づいてロジックを実装してください。次のコードの例を参照してください。
- 完了後、アプリが予定通り動作するかの確認をマーケティング担当者に送ります。
サンプルコード
@Override
public void onAppOpenAttribution(Map<String, String> attributionData) {
if (!attributionData.containsKey("is_first_launch"))
Log.d(LOG_TAG, "onAppOpenAttribution: This is NOT deferred deep linking");
for (String attrName : attributionData.keySet()) {
String deepLinkAttrStr = attrName + " = " + attributionData.get(attrName);
Log.d(LOG_TAG, "Deeplink attribute: " + deepLinkAttrStr);
}
Log.d(LOG_TAG, "onAppOpenAttribution: Deep linking into " + attributionData.get("deep_link_value"));
goToFruit(attributionData.get("deep_link_value"), attributionData);
}
@Override
public void onAttributionFailure(String errorMessage) {
Log.d(LOG_TAG, "error onAttributionFailure : " + errorMessage);
}
private void goToFruit(String fruitName, Map<String, String> dlData) {
String fruitClassName = fruitName.concat("Activity");
try {
Class fruitClass = Class.forName(this.getPackageName().concat(".").concat(fruitClassName));
Log.d(LOG_TAG, "Looking for class " + fruitClass);
Intent intent = new Intent(getApplicationContext(), fruitClass);
if (dlData != null) {
// Map is casted HashMap since it is easier to pass serializable data to an intent
HashMap<String, String> copy = new HashMap<String, String>(dlData);
intent.putExtra(DL_ATTRS, copy);
}
startActivity(intent);
} catch (ClassNotFoundException e) {
Log.d(LOG_TAG, "Deep linking failed looking for " + fruitName);
e.printStackTrace();
}
}
⇲ Github リンク:Java
注意
onAppOpenAttribution
は、アプリがバックグラウンドで動作していて、Application LaunchModeが標準でない場合には呼び出されません。これを修正するには、アプリケーションが非標準の LaunchMode を使用している場合、setIntent(intent) メソッドを呼び出して、オーバーライドされたメソッド onNewIntent の中でインテント値を設定します。
import android.content.Intent; ... ... ... @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); }
onAttributionFailure() ロジックの実装
onAttributionFailure
メソッドは、onAppOpenAttribution
が失敗するたびに呼び出されます。この関数は、エラーを報告し、ユーザーに期待される体験を提供する必要があります。
onAttributionFailure
メソッドを実装する方法:
次のコードを入力してください:
@Override
public void onAttributionFailure(String errorMessage) {
Log.d(LOG_TAG, "error onAttributionFailure : " + errorMessage);
}
⇲ Github リンク:Java
ディファードディープリンク
Overview
ディファードディープリンクは、新規ユーザーがアプリをインストールするために正しいアプリストアへ誘導し、その後、初回起動後に特定のアプリ体験(例:アプリ内の特定のページ)へ誘導します。
ユーザーがアプリを初めて起動したとき、onConversionDataSuccess
コールバック関数は、新規ユーザーのコンバージョンデータとOneLinkデータの両方を受取ります。OneLinkデータは、OSがアプリを起動したときにアプリに渡されるdeep_link_value
によりアプリ内のルーティングを可能します。
ディープリンクの場合は、deep_link_value
のみが必要です。ただし、その他のパラメーターと値(カスタム計測パラメーターなど)もリンクに追加でき、SDKがディープリンクデータとして返すことも可能です。AppsFlyer OneLinkは、ユーザーのクリックに伴い正しいパラメーターが渡されるため、ユーザーのアプリ体験をパーソナライズすることができます。
マーケティング担当者とディベロッパーは、希望のアプリ動作と deep_link_value
について共同で決定する必要があります。マーケティング担当者はこのパラメーターをディープリンクを作成するために使用し、ディベロッパーは、受け取った値をもとにアプリの動作をカスタマイズします。
アプリ内でのルーティングやリンク先でのデータのパーソナライズなど、アプリ内でパラメータが正しく処理されるように実装するのはディベロッパーの責任です。
ディープリンクは次の流れで機能します:


- ユーザーが、アプリがまだインストールされていないデバイス上でOneLinkをクリックします。
- AppsFlyerはクリックを登録し、ユーザーを正しいアプリストアまたはランディングページに誘導します。
- ユーザーがアプリをインストールし起動します。
- AppsFlyer SDKが初期化され、AppsFlyerサーバーにインストールが帰属されます。
- SDKは
onConversionDataSuccess
メソッドをトリガーします。関数は、deep_link_value
とOneLinkデータで定義された計測データ/パラメーターの両方を含むインプットを受け取ります。 - パラメーター
is_first_launch
は、ディファードディープリンクのフローを示す値true
を持っています。
ディベロッパーはonConversionDataSuccess
関数で受信したデータを使用し、ユーザーの初回起動時にパーソナライズされたユーザー体験を提供します。
Procedures
onConversionDataSuccess
メソッドを実装し、パラメーターの動作を設定するには、次の手順のチェックリストを完了する必要があります。
手順のチェックリスト |
---|
|
|
初回起動時のアプリ動作を決定する
初回起動時のアプリ動作を決定する:
マーケティング担当者から、リンクがクリックされたときと、アプリが初回起動されたときに期待される動作を入手してください。
メソッドインプットの計画
ディファードディープリンクでは、onConversionDataSuccess
メソッドのインプットを計画する必要があり、アプリの初回起動時に前項で決定した(ディープリンク向け)インプットを関連付ける必要があります。
onConversionDataSuccess
メソッドは、deep_link_value
とその他の変数を、次のようなインプットで取得します:Map <String, Object>。
マップには2種類のデータがあります:
- 計測データ
- マーケティング担当者がリンクで定義したデータ(
deep_link_value
とその他のパラメータと値)
その他のパラメータは以下のいずれかとなります。- AppsFlyerの公式パラメーター
- マーケティング担当者とディベロッパーが選択したカスタムパラメーターと値
- インプットデータの構成はこちらで説明しています。
リンクがクリックされた際に期待されるアプリの動作に基づいて、マーケティング担当者とディベロッパーは、deep_link_value
(およびその他のパラメーターと値)について、共同で計画する必要があります。
期待するリンクの動作に基づいて、deep_link_value
、およびその他のパラメーター名と値を計画する方法:
- 希望するアプリの動作を実装するために必要なパラメーターと値について、マーケティング担当者に伝えてください。
deep_link_value
とその他のパラメーターと値の命名規則を決定してください。
注:- カスタムパラメーターは、AppsFlyerのローデータには表示されません。
- コンバージョンデータは、小文字の「n」を使ったカスタムパラメーター名「name」を返しません。
onConversionDataSuccess() ロジックの実装
アプリが初回起動されたとき、onConversionDataSuccess
メソッドはメインアクティビティ内でトリガーされます。メソッドメソッド内の deep_link_value
とその他のパラメーターは、アプリの初回起動時の特定のユーザー体験を実装するために使用されます。
ロジックを実装する方法:
- 選択したパラメーターと値に基づいてロジックを実装してください。次のコードの例を参照してください。
- 完了後、アプリが予定通り動作するかの確認をマーケティング担当者に送ります。
サンプルコード
@Override
public void onConversionDataSuccess(Map<String, Object> conversionData) {
for (String attrName : conversionData.keySet())
Log.d(LOG_TAG, "Conversion attribute: " + attrName + " = " + conversionData.get(attrName));
String status = Objects.requireNonNull(conversionData.get("af_status")).toString();
if(status.equals("Non-organic")){
if( Objects.requireNonNull(conversionData.get("is_first_launch")).toString().equals("true")){
Log.d(LOG_TAG,"Conversion: First Launch");
if (conversionData.containsKey("deep_link_value")){
Log.d(LOG_TAG,"Conversion: This is deferred deep linking.");
// TODO SDK in future versions - match the input types
Map<String,String> newMap = new HashMap<>();
for (Map.Entry<String, Object> entry : conversionData.entrySet()) {
newMap.put(entry.getKey(), String.valueOf(entry.getValue()));
}
onAppOpenAttribution(newMap);
}
} else {
Log.d(LOG_TAG,"Conversion: Not First Launch");
}
} else {
Log.d(LOG_TAG,"Conversion: This is an organic install.");
}
}
⇲ Github リンク:Java
onConversionDataFailure() ロジックの実装
onConversionDataFailure
メソッドは、onConversionDataSuccess
が失敗するたびに呼び出されます。この関数は、エラーを報告し、ユーザーに期待される体験を提供する必要があります。
onConversionDataFailure
メソッドを実装する方法:
次のコードを入力してください:
@Override
public void onConversionDataFail(String errorMessage) {
Log.d(LOG_TAG, "error getting conversion data: " + errorMessage);
}
⇲ Github リンク:Java
一般的なデータ構造
このセクションでは、OneLinkがインプットとして渡すことができるデータ構造と可能なパラメーターに関する情報が含まれています。
Input parameters
次の表には、OneLinkがインプットとして渡すことができるパラメーターのリストが含まれています。
インプットマップには2種類のデータがあります:
- 計測データ
- リンク内でマーケティング担当者が定義したデータ(パラメーターと値)
パラメーターは次のいずれかです:- AppsFlyerの公式パラメーター
- マーケティング担当者とディベロッパーが選択したカスタムパラメーターと値
注意
- 次の表はAppsFlyer SDK 5.4.1以上に関連するものです。以前のSDKバージョンでは、パラメータが存在しない、または名前が変更されている場合があります。
- 非推奨とされていないパラメーターは、すべての OneLink タイプに関連しています。
- ショートURL
- ロングURL
- 全OSのリンク:
- Androidアプリリンク
- ユニバーサルリンク
- URLスキーム(iOSとAndroidの両方)
パラメーター名 | タイプ | 詳細 | 備考 |
---|---|---|---|
af_dp | 文字列 | URIスキームURL | アプリリンクのフォールバック。 |
link | 文字列 | ディープリンクの実行に使用された完全なリンク。 | 例: https://onelink-basic-app.onelink.me/H5hv?pid=Email&c=fruit_of_the_month |
deep_link_value | 文字列 | ユーザーが誘導される特定のアプリ内コンテンツの値名です。 | |
pid (media source) | 文字列 | OneLinkのメディアソース、例:email、SMS、social media | |
install_time | 文字列 | アプリが初回起動された時刻。 | 非推奨 |
scheme | 文字列 | URLの最初の単語で、インターネット上のリソースにアクセスする際に使用するプロトコルを識別します。例: mygreatapp://mainactivity または https://killerapp.onelink.me/coolactivity/H7JK | 非推奨 |
host | 文字列 | リソースを保有するホストを識別します。例:mygreatapp://mainactivity または | 非推奨 |
path | 文字列 | Webクライアントがアクセスしたいホスト内の特定のリソースです。例:https://killerapp.onelink.me/coolactivity/**H7JK** | 非推奨 |
shortlink | 文字列 | 元のリンクよりも大幅に少ない文字数で短縮されたURLです。例:https://killerapp.onelink.me/coolactivity/H7JK/**checkitout** | |
af_web_id | 文字列 | ピープルベースドアトリビューションのためのトークンです。 | |
af_status | 文字列 | 非推奨 | |
af_deeplink | Boolean | 非推奨 | |
c (campaign) | 文字列 | マーケティングキャンペーンの名称 | AppsFlyer管理画面でマーケティング担当者が設定した値。 |
is_retargeting | Boolean | リターゲティングキャンペーンの一環としてリンクを識別します。 | 値はマーケティング担当者が設定します。 |
af_ios_url | 文字列 | 関連がない場合でも、Androidデバイスにも渡されます。 | |
af_android_url | 文字列 | Androidデバイスでディープリンクが失敗した場合のフォールバックURL。 | |
af_sub[1-5] | 文字列 | 広告主が事前に定義したオプションのパラメーター。 | AppsFlyer管理画面でマーケティング担当者が設定した値。 |
af_adset | 文字列 | 広告セットはキャンペーンと広告の間に位置する階層です。 | AppsFlyer管理画面でマーケティング担当者が設定した値 |
af_channel | 文字列 | 広告が配信されるメディアソースのチャンネル。例:UAC_Search、UAC_Display、Instagram、Facebook Audience Network など。 | AppsFlyer管理画面でマーケティング担当者が設定した値 |
ad_adname | 文字列 | マーケティング担当者/パブリッシャーから提供された広告名。 | AppsFlyer管理画面でマーケティング担当者が設定した値 |
af_cost_currency | 文字列 | ISO-4217に準拠した3 文字の通貨コード。例:USD、ZAR、EUR | AppsFlyer管理画面でマーケティング担当者が設定した値 |
af_cost_value | 文字列 | 通貨設定 (af_cost_currency) に則したコストの値です。 | AppsFlyer管理画面でマーケティング担当者が設定した値 |
af_click_lookback | 文字列 | 設定可能なルックバッククリック計測期間の日数。 | AppsFlyer管理画面でマーケティング担当者が設定した値 |
af_force_deeplink | Boolean | af_dpの値で指定されたアクティビティに強制的にディープリンクさせます。 | iOSのみに関連します。 |
Android sample payloads
以下、ユニバーサルリンク、URIスキーム、ディファードディープリンクのサンプルペイロードを参照してください。サンプルにはフルペイロードが含まれており、Onelinkのカスタムリンク設定ページのすべてのパラメーターにデータが含まれている場合に関連します。
注:ペイロードはマップとして返されます。ただし、わかりやすくするため、以下のサンプルペイロードはJSON形式で表示しています。
アプリリンク
インプット先: onAppOpenAttribution(Map<String, String> attributionData)
{
"af_dp": "afbasicapp://mainactivity",
"af_ios_url": "https://isitchristmas.com/",
"fruit_name": "apples",
"c": "fruit_of_the_month",
"media_source": "Email",
"link": "https://onelink-basic-app.onelink.me/H5hv/6d66214a",
"pid": "Email",
"af_cost_currency": "USD",
"af_sub1": "my_sub1",
"af_click_lookback": "20d",
"af_adset": "my_adset",
"af_android_url": "https://isitchristmas.com/",
"af_sub2": "my_sub2",
"fruit_amount": 26,
"af_cost_value": 6,
"campaign": "fruit_of_the_month",
"af_channel": "my_channel",
"af_ad": "my_adname",
"is_retargeting": "true"
}
{
"af_dp": "afbasicapp://mainactivity",
"install_time": "2020-08-06 06:56:02",
"fruit_name": "apples",
"af_ios_url": "https://my_ios_lp.com",
"media_source": "Email",
"scheme": "https",
"link": "https://onelink-basic-app.onelink.me/H5hv?pid=Email&c=fruit_of_the_month&af_channel=my_channel&af_adset=my_adset&af_ad=my_adname&af_sub1=my_sub1&af_sub2=my_sub2&fruit_name=apples&fruit_amount=16&af_cost_currency=USD&af_cost_value=6&af_click_lookback=20d&af_dp=afbasicapp%3A%2F%2Fmainactivity&af_ios_url=https%3A%2F%2Fmy_ios_lp.com&af_android_url=https%3A%2F%2Fmy_android_lp.com",
"af_cost_currency": "USD",
"af_sub1": "my_sub1",
"af_click_lookback": "20d",
"path": "/H5hv",
"af_adset": "my_adset",
"af_android_url": "https://my_android_lp.com",
"af_sub2": "my_sub2",
"fruit_amount": 16,
"af_cost_value": 6,
"host": "onelink-basic-app.onelink.me",
"campaign": "fruit_of_the_month",
"af_channel": "my_channel",
"af_ad": "my_adname"
}
URIスキーム
インプット先: onAppOpenAttribution(Map<String, String> attributionData)
{
"scheme": "afbasicapp",
"link": "afbasicapp://mainactivity?af_ad=my_adname&af_adset=my_adset&af_android_url=https%3A%2F%2Fmy_android_lp.com&af_channel=my_channel&af_click_lookback=25d&af_cost_currency=NZD&af_cost_value=5&af_deeplink=true&af_dp=afbasicapp%3A%2F%2Fmainactivity&af_force_deeplink=true&af_ios_url=https%3A%2F%2Fmy_ios_lp.com&af_sub1=my_sub1&af_sub2=my_sub2&af_web_id=367f81fb-59a4-446a-ac6c-a68d2ee9447c-p&campaign=my_campaign&fruit_amount=15&fruit_name=apples&is_retargeting=true&media_source=Email&shortlink=9270d092",
"af_cost_currency": "NZD",
"af_click_lookback": "25d",
"af_deeplink": true,
"path": "",
"af_android_url": "https://my_android_lp.com",
"af_force_deeplink": true,
"fruit_amount": 15,
"host": "mainactivity",
"af_channel": "my_channel",
"shortlink": "9270d092",
"af_dp": "afbasicapp://mainactivity",
"install_time": "2020-08-06 06:56:02",
"af_ios_url": "https://my_ios_lp.com",
"fruit_name": "apples",
"af_web_id": "367f81fb-59a4-446a-ac6c-a68d2ee9447c-p",
"media_source": "Email",
"af_status": "Non-organic",
"af_sub1": "my_sub1",
"af_adset": "my_adset",
"af_sub2": "my_sub2",
"af_cost_value": 5,
"campaign": "my_campaign",
"af_ad": "my_adname",
"is_retargeting": true
}
{
"af_dp": "afbasicapp://mainactivity",
"install_time": "2020-08-06 06:56:02",
"af_ios_url": "https://my_ios_lp.com",
"fruit_name": "apples",
"af_web_id": "367f81fb-59a4-446a-ac6c-a68d2ee9447c-p",
"scheme": "afbasicapp",
"media_source": "Email",
"link": "afbasicapp://mainactivity?af_ad=my_adname&af_adset=my_adset&af_android_url=https%3A%2F%2Fmy_android_lp.com&af_channel=my_channel&af_click_lookback=25d&af_cost_currency=NZD&af_cost_value=5&af_deeplink=true&af_dp=afbasicapp%3A%2F%2Fmainactivity&af_ios_url=https%3A%2F%2Fmy_ios_lp.com&af_sub1=my_sub1&af_sub2=my_sub2&af_web_id=367f81fb-59a4-446a-ac6c-a68d2ee9447c-p&campaign=my_campaign&fruit_amount=15&fruit_name=apples&is_retargeting=true&media_source=Email",
"af_cost_currency": "NZD",
"af_status": "Non-organic",
"af_click_lookback": "25d",
"af_sub1": "my_sub1",
"af_deeplink": true,
"path": "",
"af_android_url": "https://my_android_lp.com",
"af_adset": "my_adset",
"fruit_amount": 15,
"af_sub2": "my_sub2",
"host": "mainactivity",
"af_cost_value": 5,
"campaign": "my_campaign",
"af_channel": "my_channel",
"af_ad": "my_adname",
"is_retargeting": true
}
ディファードディープリンク
インプット先: onConversionDataSuccess(Map<String, Object> conversionData)
{
"redirect_response_data": null,
"adgroup_id": null,
"engmnt_source": null,
"retargeting_conversion_type": "none",
"orig_cost": 6.0,
"af_cost_currency": "USD",
"is_first_launch": true,
"af_click_lookback": "20d",
"af_cpi": null,
"iscache": true,
"click_time": "2020-08-12 16:04:50.605",
"af_android_url": "https://isitchristmas.com/",
"fruit_amount": 26,
"is_branded_link": null,
"match_type": "fingerprinting",
"adset": null,
"af_channel": "my_channel",
"campaign_id": null,
"shortlink": "6d66214a",
"af_dp": "afbasicapp://mainactivity",
"install_time": "2020-08-12 16:05:33.750",
"af_ios_url": "https://isitchristmas.com/",
"fruit_name": "apples",
"media_source": "Email",
"agency": null,
"af_siteid": null,
"af_status": "Non-organic",
"af_sub1": "my_sub1",
"cost_cents_USD": 600,
"af_sub5": null,
"af_adset": "my_adset",
"af_sub4": null,
"af_sub3": null,
"af_sub2": "my_sub2",
"adset_id": null,
"esp_name": null,
"af_cost_value": 6,
"campaign": "fruit_of_the_month",
"http_referrer": "android-app://com.slack/",
"af_ad": "my_adname",
"is_universal_link": null,
"is_retargeting": true,
"adgroup": null
}
更新済 12 months ago