ÿÿ Thứ Tá»± Gá»i iOS SDK | Tài liệu Adapty

Thứ tá»± gá»i trong iOS SDK

Adapty.activate() phải hoàn thành trước khi bạn gá»i bất kỳ phương thức nào khác cá»§a Adapty SDK. Cho đến khi nó hoàn tất, SDK chưa có trạng thái. Bất kỳ lệnh gá»i nào được thá»±c hiện trước hoặc song song vá»›i activate() sẽ thất bại vá»›i lá»—i #2002 notActivated.

Nếu ứng dụng cá»§a bạn xác thá»±c ngưá»i dùng và bạn thu thập customer user ID sau khi khởi chạy, hãy gá»i Adapty.identify() tại thá»i Ä‘iểm đó. Äừng gá»i các phương thức liên quan đến hành động ngưá»i dùng cho đến khi identify hoàn tất. Các lệnh gá»i thá»±c hiện song song vá»›i nó sẽ thất bại vá»›i lá»—i #3006 profileWasChanged, hoặc đổ vào hồ sÆ¡ ngưá»i dùng ẩn danh được tạo lúc activation. Khi Ä‘iá»u này xảy ra, attribution, MMP ID như appsflyer_id, và quyá»n sở hữu lượt cài đặt không phải lúc nào cÅ©ng được chuyển sang hồ sÆ¡ ngưá»i dùng đã xác định. Nếu ứng dụng cá»§a bạn không xác thá»±c ngưá»i dùng, hãy bá» qua identify và tiếp tục làm việc vá»›i hồ sÆ¡ ngưá»i dùng ẩn danh.

Các SDK MMP và analytics (AppsFlyer, Adjust, Branch, PostHog) tuân theo cùng má»™t quy tắc. Hãy khởi tạo chúng trước và chá» callback UID cá»§a chúng trước khi gá»i Adapty.activate. Nếu không, MMP ID sẽ gắn vào má»™t hồ sÆ¡ ngưá»i dùng ẩn danh tồn tại ngắn và không phải lúc nào cÅ©ng được chuyển sang hồ sÆ¡ ngưá»i dùng đã xác định. Vá» chi tiết cụ thể vá»›i AppsFlyer, xem AppsFlyer.

Thứ tự đúng

Lộ trình của bạn phụ thuộc vào hai yếu tố: khi nào bạn biết customer user ID và bạn có sử dụng SDK MMP hoặc analytics hay không.

  • Bước 2 và 5: Bắt buá»™c cho má»i ứng dụng. Activate SDK, sau đó gá»i các phương thức SDK.
  • Bước 1 và 3: Chỉ bắt buá»™c nếu bạn tích hợp SDK MMP hoặc analytics (AppsFlyer, Adjust, Branch, PostHog).
  • Bước 4: Chỉ bắt buá»™c nếu ứng dụng cá»§a bạn xác thá»±c ngưá»i dùng và thu thập customer user ID sau khi khởi chạy.

Nếu bạn có customer user ID ngay khi ứng dụng khởi chạy, hãy truyá»n trá»±c tiếp vào activate() (bước 2a). Lá»™ trình này không bao giá» tạo hồ sÆ¡ ngưá»i dùng ẩn danh, do đó bước 4 là không cần thiết.

BướcLệnh gá»iThá»i Ä‘iểmLưu ý
1Khởi tạo SDK MMP hoặc analytics của bạn (AppsFlyer, Adjust, PostHog, Branch)Khởi chạy ứng dụng, đầu tiênChỠcallback UID của MMP, ví dụ getAppsFlyerUID.
2aAdapty.activate(with: config) vá»›i customerUserId được đặt trên configKhởi chạy ứng dụng, sau bước 1, nếu bạn có customer user IDÄÆ°á»£c khuyến nghị. Không bao giá» tạo hồ sÆ¡ ngưá»i dùng ẩn danh.
2bAdapty.activate(with: config) không có customerUserIdKhởi chạy ứng dụng, sau bước 1, nếu bạn không có customer user ID (hoặc không thu thập)Adapty tạo má»™t hồ sÆ¡ ngưá»i dùng ẩn danh.
3Adapty.setIntegrationIdentifier(...) cho từng MMPSau bước 2, trước bất kỳ lệnh gá»i hành động ngưá»i dùng nàoBắt buá»™c để MMP ID gắn vào đúng hồ sÆ¡ ngưá»i dùng.
4try await Adapty.identify("YOUR_USER_ID")Sau bước 3 (hoặc bước 2 nếu không có MMP), trước bước 5 — chỉ trên lá»™ trình 2b có xác thá»±cLuôn await. Các lệnh gá»i đồng thá»i trong quá trình identify sẽ tạo ra lá»—i #3006 profileWasChanged.
5getPaywall, getPaywallProducts, restorePurchases, makePurchase, updateAttribution, updateProfileSau bước 4 nếu bạn gá»i identify; nếu không thì sau bước 3 (hoặc bước 2 nếu không có MMP)Các lệnh gá»i này cần má»™t hồ sÆ¡ ngưá»i dùng ổn định.

Bá» qua các bước này sẽ gây ra mất quyá»n truy cập premium cho ngưá»i dùng quay lại, thiếu appsflyer_id trên hồ sÆ¡ ngưá»i dùng, và paywall được trả vá» sai đối tượng.

Cài đặt web2app và web-funnel

Nếu ngưá»i dùng mua hàng qua web checkout (Stripe, Paddle, FunnelFox) và sau đó cài đặt ứng dụng native, lần activate() đầu tiên trên thiết bị sẽ tạo má»™t hồ sÆ¡ ngưá»i dùng ẩn danh má»›i. Hồ sÆ¡ này không được liên kết vá»›i hồ sÆ¡ web. Nếu bạn có thể xác định customer user ID trước khi khởi chạy ứng dụng (từ luồng xác thá»±c hoặc install referrer), hãy truyá»n trá»±c tiếp vào activate(). Nếu không, giao dịch mua hàng trên web sẽ không hiển thị trên thiết bị cho đến khi bạn gá»i identify("YOUR_USER_ID") và sau đó restorePurchases.

VỠmetadata cần gửi kèm theo mỗi web checkout, xem:

ÿÿÿÿ