Thông báo đẩy

Tổng quan

The following guide covers the configuration of the iOS SDK for processing incoming push notifications and sending extracted attribution data to AppsFlyer.

Có 2 phương thức để triển khai tích hợp:

  • By utilizing OneLink in the push payload (recommended method). Step 3 is required only if implementing this solution.
  • Bằng cách sử dụng JSON thuần trong tải trọng đẩy (phương thức kế thừa).

Chọn phương thức phù hợp cho bạn dựa trên cách nhà tiếp thị cấu trúc thông báo đẩy.

Tích hợp AppsFlyer với các thông báo đẩy iOS

Tích hợp AppsFlyer với các thông báo đẩy iOS bao gồm:

  • Cấu hình SDK AppsFlyer.
  • Configuring a UNUserNotificationCenter delegate.

Prerequisites

Trước khi tiếp tục, hãy đảm bảo rằng bạn có:

  1. Một ứng dụng iOS có các thông báo đẩy được kích hoạt.
  2. Integrated the SDK.
  3. Nếu triển khai giải pháp dựa trên OneLink được đề xuất, bạn cần có tên của mã khóa bên trong tải trọng của thông báo đẩy có chứa OneLink (do nhà tiếp thị ứng dụng cung cấp).

Steps

  1. Configure the app to use the UNUserNotificationCenter delegate:

    if #available(iOS 10.0, *) {
              // For iOS 10 display notification (sent via APNS)
              UNUserNotificationCenter.current().delegate = self
    
              let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
              UNUserNotificationCenter.current().requestAuthorization(
                options: authOptions,
                completionHandler: { _, _ in }
              )
            } else {
              let settings: UIUserNotificationSettings =
                UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
              application.registerUserNotificationSettings(settings)
            }
    
            application.registerForRemoteNotifications()
    }
    
  2. Triển khai UNUserNotificationCenter delegate. In the didReceive , gọi ra handlePushNotification:

    @available(iOS 10, *)
    extension AppDelegate: UNUserNotificationCenterDelegate {
      func userNotificationCenter(_ center: UNUserNotificationCenter,
                                  didReceive response: UNNotificationResponse,
                                  withCompletionHandler completionHandler: @escaping () -> Void) {
        let userInfo = response.notification.request.content.userInfo
        print(userInfo)
        completionHandler()
        AppsFlyerLib.shared().handlePushNotification(userInfo)
      }
      
      // Receive displayed notifications for iOS 10 devices.
      func userNotificationCenter(_ center: UNUserNotificationCenter,
                                  willPresent notification: UNNotification,
                                  withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions)
                                    -> Void) {
        let userInfo = notification.request.content.userInfo
        print(userInfo)
    
        // Change this to your preferred presentation option
        completionHandler([[.alert, .sound]])
      }
    }
    
  3. This step is required only if you're implementing the recommended OneLink-based solution.
    In didFinishLaunchingWithOptions, call addPushNotificationDeepLinkPath before calling start:

    AppsFlyerLib.shared().addPushNotificationDeepLinkPath(["af_push_link"])
    

    In this example, the SDK is configured to look for the af_push_link key in the push notification payload.
    When calling addPushNotificationDeepLinkPath the SDK verifies that:

    • Mã khóa được yêu cầu tồn tại trong tải trọng.
    • Mã khóa chứa một URL OneLink hợp lệ.

📘

Lưu ý

addPushNotificationDeepLinkPath accepts an array of strings too, to allow you to extract the relevant key from nested JSON structures. For more information, see addPushNotificationDeepLinkPath.