Bạn có thể khởi tạo trình cắm bằng cách sử dụng AppsFlyerObject tạo sẵn hoặc theo cách thủ công.

Sử dụng AppsFlyerObject.prefab

  1. Truy cập Assets > AppsFlyer và kéo AppsFlyerObject.prefab vào cảnh của bạn.


  2. Cập nhật các trường sau:
Cài đặtMô tả
Dev KeyDev Key của AppsFlyer, có thể truy cập được từ bảng điều khiển AppsFlyer.
ID ứng dụngID Ứng dụng iTunes của bạn. (Nếu ứng dụng của bạn không dành cho iOS, hãy để trống trường này)
Nhận Dữ liệu Chuyển đổiĐặt giá trị này thành true nếu ứng dụng của bạn đang sử dụng AppsFlyer để liên kết sâu.
isDebugĐặt giá trị này thành true để xem nhật ký gỡ lỗi. (chỉ dành cho phát triển!)
  1. Cập nhật mã trong Assets > AppsFlyer > AppsFlyerObjectScript.cs với các API khác có sẵn.

Tích hợp thủ công

Tạo một đối tượng trò chơi và thêm mã init sau:

using AppsFlyerSDK;

public class AppsFlyerObjectScript : MonoBehaviour
{
  void Start()
  {
    AppsFlyer.initSDK("devkey", "appID");
    AppsFlyer.startSDK();
  }
}

Lưu ý:

  • Đảm bảo không gọi ra lệnh hủy đối tượng trò chơi.
  • Use DontDestroyOnLoad để giữ lại đối tượng khi tải một cảnh mới.

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.

Thu thập IDFA bằng ATTrackingManager

  1. Thêm AppTrackingTransparency khung cho dự án xcode của bạn.

  2. Trong mục Info.plist:

    1. Thêm một mục vào danh sách: Nhấn + bên cạnh Information Property List.
    2. Cuộn xuống và chọn Privacy - Tracking Usage Description.
    3. Thêm dưới dạng giá trị từ ngữ bạn muốn trình bày với người dùng khi yêu cầu quyền thu thập IDFA.
  3. Gọi ra api waitForATTUserAuthorizationWithTimeoutInterval trước startSDK()

    #if UNITY_IOS && !UNITY_EDITOR
    AppsFlyer.waitForATTUserAuthorizationWithTimeoutInterval(60);
    #endif
    
  4. 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

Hộp thoại đồng ý ATT có thể được tùy chỉnh bằng cách trong dự án Xcode của bạn, sửa đổi info.plist:

Để biết hướng dẫn chi tiết, hãy xem tài liệu của 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

  1. Initialize the SDK.

  2. Call enableTCFDataCollection(true) api before startSDK() to instruct the SDK to collect the TCF data from the device.

  3. 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.

  4. Get confirmation from the CMP that the user has made their consent decision and the data is available.

  5. 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

  1. Initialize the SDK.
  2. Determine whether the GDPR applies or not to the user.

When GDPR applies to the user

  1. 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.

  2. 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.
  3. Call setConsentData()with the AppsFlyerConsent object.

  4. 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

  1. Create an AppsFlyerConsent object using the ForNonGDPRUser() initializer. This initializer doesn’t accept any parameters.

  2. Pass the empty AppsFlyerConsent object to setConsentData().

  3. 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:

  1. Enable the SDK debug mode.
  2. Search for consent_data in the log of the outgoing request.

for more information visit iOS
Android


Gửi đăng lại SKAN tới Appsflyer

Để đăng ký điểm cuối AppsFlyer, bạn cần thêm mã khóa NSAdvertisingAttributionReportEndpoint vào info.plist của bạn và đặt giá trị thành https://appsflyer-skadnetwork.com/.
Bạn có thể tìm thêm thông tin về cách cập nhật info.plist tại đây.


Khởi chạy MacOS

  1. Sử dụng bản tạo sẵn AppsFlyerObject
  2. Thêm id ứng dụng MacOS của bạn
  3. Xây dựng cho nền tảng PC, Mac & Linux Standelone và chọn MacOS làm nền tảng mục tiêu.

Trình nghe Yêu cầu (Tùy chọn)

  1. Đính kèm tập lệnh 'AppsFlyer.cs' vào đối tượng trò chơi bằng mã khởi tạo AppsFlyer. (AppsFlyerObject, v.v.)
  2. Thêm mã sau vào trước startSDK()

Ví dụ về phản hồi phiên:

    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);
    }

Ví dụ về phản hồi trong ứng dụng:

    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();
    }


statusCodeerrorDescription
200null
10"Event timeout. Check 'minTimeBetweenSessions' param" (Hết thời gian chờ của sự kiện. Kiểm tra thông số 'minTimeBetweenSessions')
11"Skipping event because 'isStopTracking' enabled" (Bỏ qua sự kiện vì 'isStopTracking' đã được bật)
40Network error: Error description comes from Android (Lỗi mạng: Mô tả lỗi đến từ Android)
41"No dev key" (Không có dev key)
50"Status code failure" (Lỗi mã trạng thái) + mã phản hồi thực tế từ máy chủ