連携
プラグインは、AppsFlyerObject prefabを使用、または手動で初期化できます。
- AppsFlyerObject.prefab の使用
- マニュアル連携
- ATTrackingManagerで IDFAを収集する
- Send consent for DMA compliance
- SKANポストバックをAppsFlyerに送信する
- macOSの初期化
- リクエストリスナー(オプション)
AppsFlyerObject.prefab の使用
- Assets > AppsFlyer に移動し、AppFlyerObject.prefab をシーンにドラッグします。
- 次の項目を更新します:
設定項目 | 詳細 |
---|---|
Dev Key | AppsFlyerのDev Key - AppsFlyer管理画面から取得できます |
アプリID | iTunesアプリID (アプリが iOS用でない場合は、項目を空のままにします) |
Get Conversion Data | ディープリンクにAppsFlyerを使用している場合は、これをtrueに設定します。 |
Is Debug | デバッグログを表示するには、true に設定します。(開発用) |
- 他の利用可能なAPIと一緒に、Assets > AppsFlyerObjectScript.cs でコードをアップデートします。
マニュアル連携
ゲームオブジェクトを作成し、以下のinitコードを追加してください:
using AppsFlyerSDK;
public class AppsFlyerObjectScript : MonoBehaviour
{
void Start()
{
AppsFlyer.initSDK("devkey", "appID");
AppsFlyer.startSDK();
}
}
注意:
- ゲームオブジェクトでdestroyを呼び出さないようにしてください。
- Use
DontDestroyOnLoad
を使用して、新しいシーンをロードするときにオブジェクトを保持します。
Set customer user ID
Set your own unique customer user ID (CUID) and cross-reference it with the unique AppsFlyer ID.
- Appear in AppsFlyer raw data CSV reports.
- Can be used in postback APIs to cross-reference with internal IDs.
To set the CUID, use:
AppsFlyer.setCustomerUserId("someId");
Good practice! Set the CUID early in the app flow—it is only associated with events reported after its setup.
- Recorded events will be associated with the CUID.
- Related data will appear in the raw data reports for installs and events..
Associate the CUID with the install event
If it’s important for you to associate the install event with the CUID, call setCustomerUserId
before calling startSDK
.
ATTrackingManagerで IDFAを収集する
-
Add the
AppTrackingTransparency
フレームワークをXcodeプロジェクトに追加します。 -
In the
Info.plist
:- リストにエントリを追加:以下リストの横にある + をクリックします
Information Property List
. - スクロールダウンして次を選択します:
Privacy - Tracking Usage Description
. - IDFAを収集する許可を求める際にユーザーに提示したい文言を値として追加します。
- リストにエントリを追加:以下リストの横にある + をクリックします
-
API
waitForATTUserAuthorizationWithTimeoutInterval
を次のメソッドの前にコールします:startSDK()
#if UNITY_IOS && !UNITY_EDITOR AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(60); #endif
-
Request the tracking authorization where you wish to display the prompt:
You can use the following package or any other package that allows you to request the tracking authorization.using Unity.Advertisement.IosSupport; /* ... */ if (ATTrackingStatusBinding.GetAuthorizationTrackingStatus() == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED) { ATTrackingStatusBinding.RequestAuthorizationTracking(); } /* ... */
Customizing the ATT consent dialog
The ATT consent dialog can be customized by modifying your Xcode project's info.plist
:
詳しい説明は、Appleのドキュメントを参照してください。
Send consent for DMA compliance
Unity SDK plugin offers two alternative methods for gathering consent data:
Through a Consent Management Platform (CMP): If the app uses a CMP that complies with the Transparency and Consent Framework (TCF) v2.2 protocol, the Unity SDK can automatically retrieve the consent details.
OR
Through a dedicated Unity SDK API: Developers can pass Google's required consent data directly to the Unity SDK using a specific API designed for this purpose.
Use CMP to collect consent data
-
SDKの初期化
-
Call enableTCFDataCollection(true) api before startSDK() to instruct the SDK to collect the TCF data from the device.
-
Use the CMP to decide if you need the consent dialog in the current session to acquire the consent data. If you need the consent dialog move to step 4; otherwise move to step 5.
-
Get confirmation from the CMP that the user has made their consent decision and the data is available.
-
Call start().
AppsFlyer.initSDK(devKey, appID, this); AppsFlyer.enableTCFDataCollection(true); //YOUR_CMP_FLOW() // if already has consent ready - you can start AppsFlyer.startSDK(); //else Waiting for CMP completion and data ready and then start AppsFlyer.startSDK();
Manually collect consent data
- SDKの初期化
- Determine whether the GDPR applies or not to the user.
When GDPR applies to the user
-
Given that GDPR is applicable to the user, determine whether the consent data is already stored for this session.
i. If there is no consent data stored, show the consent dialog to capture the user consent decision.
ii. If there is consent data stored continue to the next step. -
To transfer the consent data to the SDK create an AppsFlyerConsent object with the following parameters:
- hasConsentForDataUsage - Indicates whether the user has consented to use their data for advertising purposes.
- hasConsentForAdsPersonalization - Indicates whether the user has consented to use their data for personalized advertising.
-
Call setConsentData()with the AppsFlyerConsent object.
-
Call start().
// If the user is subject to GDPR - collect the consent data // or retrieve it from the storage ... // Set the consent data to the SDK: AppsFlyerConsent consent = AppsFlyerConsent.ForGDPRUser(true, true); AppsFlyer.setConsentData(consent); AppsFlyer.startSDK();
When GDPR does not apply to the user
-
Create an AppsFlyerConsent object using the ForNonGDPRUser() initializer. This initializer doesn’t accept any parameters.
-
Pass the empty AppsFlyerConsent object to setConsentData().
-
Call start().
// If the user is not subject to GDPR: AppsFlyerConsent consent = AppsFlyerConsent.ForNonGDPRUser(); AppsFlyer.setConsentData(consent); AppsFlyer.startSDK();
Verify consent data is sent
To test whether your SDK sends DMA consent data with each event, perform the following steps:
- Enable the SDK debug mode.
- Search for consent_data in the log of the outgoing request.
for more information visit iOS
Android
SKANポストバックをAppsFlyerに送信する
AppsFlyerエンドポイントを登録するには、info.plist に NSAdvertisingAttributionReportEndpoint
を追加し、値を https://appsflyer-skadnetwork.com/
と設定します。
info.plist を更新する方法の詳細については、 こちらを参照してください。
macOSの初期化
- 次を使用してください:prefab
AppsFlyerObject
- MacOS app idを追加します。
- プラットフォーム
PC, Mac & Linux Standelone
向けにビルドし、ターゲットプラットフォームとしてMacOS
を選択します。
リクエストリスナー(オプション)
- ゲームオブジェクトへ AppsFlyer初期化コードと一緒に 'AppsFlyer.cs' スクリプトを添付します。(AppsFlyerObject, ect)
- startSDK() の前に 次のコードを追加します。
セッションレスポンスの例:
void Start()
{
AppsFlyer.OnRequestResponse += AppsFlyerOnRequestResponse;
AppsFlyer.initSDK(devKey, appID, this);
AppsFlyer.startSDK();
}
void AppsFlyerOnRequestResponse(object sender, EventArgs e)
{
var args = e as AppsFlyerRequestEventArgs;
AppsFlyer.AFLog("AppsFlyerOnRequestResponse", " status code " + args.statusCode);
}
アプリ内イベントレスポンスの例:
void Start()
{
AppsFlyer.OnInAppResponse += (sender, args) =>
{
var af_args = args as AppsFlyerRequestEventArgs;
AppsFlyer.AFLog("AppsFlyerOnRequestResponse", " status code " + af_args.statusCode);
};
AppsFlyer.initSDK(devKey, appID, this);
AppsFlyer.startSDK();
}
statusCode | errorDescription |
---|---|
200 | null |
10 | "Event timeout. Check 'minTimeBetweenSessions' param" |
11 | "Skipping event because 'isStopTracking' enabled" |
40 | ネットワークエラー:Android経由のエラーの説明 |
41 | "No dev key" |
50 | "Status code failure" + サーバーからの実際のエラーコード |
更新済 2か月前