ÿÿ Firebase và Google Analytics | Tài liệu Adapty

Firebase và Google Analytics

Adapty có thể chuyển các sá»± kiện gói đăng ký — mua hàng, gia hạn, hoàn tiá»n, bắt đầu dùng thá»­ — đến Firebase và Google Analytics, giúp má»™t lần tích hợp cung cấp dữ liệu cho cả hai ná»n tảng.

Bạn cần có cả Firebase project lẫn Google Analytics property được liên kết — dù bạn chỉ dùng một trong hai. Firebase và Google Analytics là cùng một dữ liệu hiển thị trên hai giao diện khác nhau.

Sá»± kiện mua hàng và hoàn tiá»n được gá»­i kèm theo doanh thu, đơn vị tiá»n tệ và thông tin chi tiết vá» sản phẩm. Dữ liệu này đồng thá»i cung cấp cho các công cụ di động cá»§a Firebase (Audiences, Remote Config, v.v.) và báo cáo trong Google Analytics.

Äây là tích hợp analytics, không phải công cụ attribution Google Ads — xem Giá»›i hạn.

Bạn có thể làm gì với tích hợp này

Adapty phân nhóm ngưá»i dùng theo subscription_state (subscribed, active_trial, never_subscribed, v.v.) và chuyển tiếp các sá»± kiện vòng Ä‘á»i gói đăng ký đến Firebase và Google Analytics.

  • Audiences: Xây dá»±ng đối tượng ngưá»i đăng ký trong Firebase và Google Analytics cho các kênh bên ngoài — retargeting Google Ads, chiến dịch FCM, mô hình lookalike.
  • Google Ads conversions (Google Analytics): Sá»­ dụng purchase và refund làm mục tiêu chuyển đổi Google Ads.
  • Firebase Remote Config: Thay đổi giá»›i hạn sá»­ dụng, ná»™i dung copy, hoặc feature flag mà không cần cập nhật app — áp Ä‘iá»u kiện dá»±a trên trạng thái gói đăng ký. (Không nhầm vá»›i Adapty Remote Config, dùng để cấu hình ná»™i dung flow/paywall.)
  • Cloud Messaging: Gá»­i push notification đến ngưá»i dùng đã há»§y gói khi app Ä‘ang đóng.
  • Cross-device tracking (Google Analytics): Adapty gá»­i customer_user_id đến Google Analytics để Google Ads có thể theo dõi cùng má»™t ngưá»i trên nhiá»u thiết bị.
  • Conversion funnels (Google Analytics): Xem ngưá»i dùng đã làm gì trong app trước khi chuyển đổi hoặc rá»i bá».
  • Predictions: Dá»± Ä‘oán churn và chi tiêu dá»±a trên lịch sá»­ mua hàng.
  • A/B Testing: Kiểm thá»­ tính năng app trên các cohort ngưá»i đăng ký — ví dụ, triển khai mẫu Ä‘iá»u hướng má»›i cho ngưá»i dùng Ä‘ang dùng thá»­ và Ä‘o độ dài phiên. (Äể kiểm thá»­ các biến thể paywall, hãy dùng Adapty A/B Tests.)

Cách tích hợp hoạt động

  1. Khi ngưá»i dùng mở ứng dụng lần đầu, Firebase SDK tạo má»™t định danh duy nhất cho lần cài đặt đó — gá»i là Firebase App Instance ID. Firebase và Google Analytics dùng ID này để xác định lần cài đặt nào chịu trách nhiệm cho từng sá»± kiện.
  2. Ứng dụng cá»§a bạn truyá»n Firebase App Instance ID cho SDK cá»§a Adapty. Adapty liên kết hồ sÆ¡ ngưá»i dùng vá»›i lần cài đặt Firebase đó.
  3. Khi ngưá»i dùng thá»±c hiện mua hàng, máy chá»§ cá»§a Adapty chuyển tiếp sá»± kiện đến Firebase kèm theo Firebase App Instance ID. Dữ liệu được trao đổi theo kiểu server-to-server, ngoài ứng dụng.
  4. Firebase khá»›p giao dịch mua hàng vá»›i lần cài đặt tương ứng, giúp bạn xem các giao dịch mua hàng cùng vá»›i má»i hành động khác cá»§a ngưá»i dùng trong ứng dụng.

Firebase App Instance ID là ID dành riêng cho từng thiết bị. Khi cùng má»™t ngưá»i dùng Adapty mở ứng dụng trên thiết bị khác, Firebase ID má»›i sẽ ghi đè lên ID trước đó. Hãy sá»­ dụng customer user ID để duy trì danh tính ngưá»i dùng trên nhiá»u thiết bị.

Giao dịch mua qua Stripe

Giao dịch mua qua Stripe chỉ được ghi nhận vào Firebase nếu ngưá»i dùng đã mở ứng dụng mobile cá»§a bạn trước. Firebase App Instance ID phải được thiết lập trước khi giao dịch Stripe được kích hoạt.

Äối vá»›i các giao dịch qua App Store và Play Store, Ä‘iá»u này xảy ra tá»± động. Chúng bắt nguồn từ bên trong ứng dụng mobile cá»§a bạn, cùng vá»›i lệnh gá»i setIntegrationIdentifier. Firebase ID đã có mặt khi giao dịch được kích hoạt. Giao dịch mua qua Stripe bắt nguồn từ ngoài ứng dụng, trên server cá»§a bạn. Ứng dụng mobile phải gá»i setIntegrationIdentifier khi khởi động — trước khi bất kỳ giao dịch mua Stripe nào được thá»±c hiện. Nếu không, Adapty sẽ không có ID để gắn vào, và giao dịch mua Stripe sẽ không bao giỠđến được Firebase.

Giới hạn

  • Không phải công cụ attribution cho Google Ads. Tích hợp này gá»­i các sá»± kiện Adapty vào Firebase và Google Analytics để phân tích. Nó không attribution lượt cài đặt ứng dụng cho các chiến dịch Google Ads (UAC / Universal App Campaigns) hay phân tách traffic trả phí vá»›i organic. Äể attribution lượt cài đặt, hãy dùng tính năng Adapty Attribution tích hợp sẵn.
  • Không có backfill dữ liệu lịch sá»­. Adapty chỉ chuyển tiếp các sá»± kiện kể từ thá»i Ä‘iểm bạn bật tích hợp — các giao dịch mua, gia hạn và hoàn tiá»n trong quá khứ sẽ không bao giỠđến Firebase. (Dữ liệu cÅ© lưu trong các bản xuất S3 / GCS cá»§a Adapty, nhưng việc nhập dữ liệu đó vào Firebase không thuá»™c phạm vi tích hợp này.)
  • Ngưá»i mua chỉ trên web không đến được Firebase. Adapty chuyển tiếp các giao dịch mua đến Firebase thông qua Firebase App Instance ID do ứng dụng di động cá»§a bạn thiết lập. Những ngưá»i mua chưa từng cài ứng dụng sẽ không có ID — giao dịch cá»§a há» sẽ không đến Firebase. Xem Stripe purchases ở trên để biết thêm chi tiết, và cân nhắc dùng tích hợp Firebase cá»§a FunnelFox hoặc má»™t web data stream cá»§a Google Analytics để theo dõi trên web.
  • Paddle purchases không được há»— trợ. Tích hợp này hiện chưa há»— trợ Paddle. Các giao dịch Paddle vẫn nằm trong Adapty Analytics và không đến Firebase qua đưá»ng này.
  • Stripe purchases kế thừa các giá»›i hạn riêng cá»§a Stripe. Xem giá»›i hạn tích hợp Stripe.

Hướng dẫn cài đặt

Cấu hình Firebase

  1. Mở Firebase Console và chá»n hoặc tạo má»™t dá»± án. Äể giữ analytics production không bị ảnh hưởng bởi các sá»± kiện sandbox, hãy dùng má»™t dá»± án Firebase riêng cho các bản build phát triển.

  2. Liên kết dá»± án vá»›i má»™t thuá»™c tính Google Analytics. Firebase sẽ nhắc bạn thá»±c hiện Ä‘iá»u này khi tạo dá»± án, hoặc bạn có thể thêm sau qua Project settings > Integrations > Google Analytics.

    Adapty Dashboard Firebase integration settings page
  3. Trong Project settings > General > Your apps, thêm má»™t mục cho má»—i ná»n tảng bạn phát hành (iOS / Android / Web). Äối vá»›i Stripe, thêm mục Web app — không có loại Stripe app riêng. Má»—i mục sẽ tạo ra má»™t Firebase App ID duy nhất và má»™t data stream tương ứng trong Google Analytics. Bạn sẽ dán ID này vào phần cài đặt tích hợp Firebase cá»§a Adapty trong quá trình thiết lập.

    Firebase Console hiển thị App ID cho một mục iOS app

Cấu hình Adapty

  1. Mở Integrations > Firebase trong Adapty Dashboard.

  2. Bật toggle Firebase integration.

  3. Nhập thông tin xác thá»±c cho từng ná»n tảng bạn phân phối. Adapty cần cả Firebase App ID và Google Analytics secret cho má»—i ná»n tảng — má»—i giá trị sẽ khác nhau giữa iOS, Android và Stripe.

    Adapty DashboardGoogle AnalyticsTìm ở đâu
    Firebase App IDApp IDFirebase Console > Project settings > General > Your apps
    Google Analytics secretMeasurement Protocol API secretGoogle Analytics > Admin > Data streams > Measurement Protocol API secrets > Create
    Màn hình tạo Measurement Protocol API secret của Google Analytics
  4. Cấu hình cách Adapty chuyển tiếp dữ liệu doanh thu và ngưá»i dùng. Bốn tùy chá»n này nằm chung má»™t hàng trên dashboard:

  • Dropdown Revenue definition: Gross revenue, Proceeds after store commission, hoặc Proceeds after store commission and taxes.
    • Toggle Send user properties: Khi bật, các sá»± kiện sẽ bao gồm subscription_state và subscription_product_id. Äể sá»­ dụng chúng trong báo cáo hoặc đối tượng, xem Sá»­ dụng dữ liệu gói đăng ký trong báo cáo.
    • Toggle Report user’s currency: Khi bật, Adapty chuyển đổi tiá»n tệ địa phương cá»§a má»—i giao dịch sang tiá»n tệ báo cáo cá»§a tài khoản bạn trước khi chuyển tiếp sang Google Analytics.
    • Toggle Send trial price: Các lần bắt đầu dùng thá»­ rất có giá trị — hầu hết ngưá»i dùng trả phí thưá»ng bắt đầu bằng má»™t lần dùng thá»­. Nhưng tính năng tối ưu hóa đặt giá thầu cá»§a Google Ads chỉ coi các sá»± kiện có doanh thu má»›i đáng theo Ä‘uổi. Bật tính năng này để gán má»™t mức giá tạm thá»i cho má»—i lần dùng thá»­ để Google coi chúng là lượt chuyển đổi và tối ưu hóa chi tiêu quảng cáo hướng đến việc thu hút ngưá»i dùng bắt đầu dùng thá»­. Khi bật, trưá»ng Trial price percentage sẽ xuất hiện. Äặt giá trị này là tá»· lệ phần trăm cá»§a giá gói đăng ký đầy đủ mà Google nên coi má»—i lần dùng thá»­ có giá trị — ví dụ: 50% sẽ báo cáo ná»­a giá gói đăng ký trong thá»i gian dùng thá»­.
Firebase integration revenue data row with the four controls
  1. Map các sá»± kiện Adapty vá»›i tên sá»± kiện Firebase/Google Analytics. Adapty cung cấp bảng ánh xạ sá»± kiện riêng cho iOS và Android để bạn có thể dùng tên khác nhau theo từng ná»n tảng. Các giao dịch mua qua Stripe sá»­ dụng bảng ánh xạ sá»± kiện iOS — không có bảng ánh xạ riêng cho Stripe. Google Analytics áp dụng các giá»›i hạn nghiêm ngặt vá» Measurement Protocol — tên sá»± kiện tối Ä‘a 40 ký tá»±, tên thuá»™c tính ngưá»i dùng tối Ä‘a 24 ký tá»±, và giá trị tối Ä‘a 36 ký tá»±. Google Analytics sẽ âm thầm bá» qua các sá»± kiện tùy chỉnh vượt quá các giá»›i hạn này.

Má»™t số sá»± kiện sá»­ dụng từ vá»±ng ecommerce được đặt trước trong Firebase và Google Analytics — purchase và refund. Tính năng nhập chuyển đổi Google Ads, báo cáo doanh thu Google Analytics, và đối tượng dá»± Ä‘oán Ä‘á»u phụ thuá»™c vào chính xác các chuá»—i này. Chỉ ghi đè giá trị mặc định nếu bạn không cần những tính năng đó.

Adapty Dashboard Firebase event names configuration
  1. Nhấp Save. Adapty sẽ bắt đầu chuyển tiếp các sự kiện đến Firebase trong vài phút.

Cấu hình mã ứng dụng của bạn

Hãy đảm bảo ứng dụng của bạn đã tích hợp Firebase SDK .

Adapty cần gửi kèm Firebase App Instance ID với mỗi sự kiện — nếu không, không có gì được gửi đến Firebase (MISSING_INTEGRATION_ID).

Sau khi gá»i FirebaseApp.configure() và Adapty.activate(), hãy yêu cầu Firebase SDK cung cấp App Instance ID. Truyá»n nó vào Adapty qua setIntegrationIdentifier. Chạy Ä‘oạn code này má»™t lần má»—i lần khởi động app, trước bất kỳ luồng mua hàng nào.

Các SDK bên thứ ba tạo user ID theo cách bất đồng bá»™. ID có thể chưa sẵn sàng khi Adapty.activate() chạy. Nếu Customer User ID cá»§a bạn đến từ má»™t trong các SDK này, hãy gá»i Adapty.activate() mà không truyá»n ID đó. Khi ID đã có, gá»i setIntegrationIdentifier(), sau đó gá»i identify() vá»›i CUID.

Xác minh tích hợp

Cách nhanh nhất để xác nhận các sự kiện đang được gửi đi là Firebase DebugView:

  1. Trên thiết bị thử nghiệm, chạy ứng dụng với chế độ debug của Firebase được bật.
  2. Kích hoạt một giao dịch mua sandbox hoặc bất kỳ sự kiện nào bạn đã bật trong Adapty Dashboard.
  3. Mở Firebase Console > Analytics > DebugView. Các sự kiện sẽ xuất hiện trong vài giây, kèm theo đầy đủ các tham số.

Các báo cáo thông thưá»ng — Realtime, Reports, audiences — sẽ được cập nhật trong vài phút đến 24 giá», tùy thuá»™c vào loại báo cáo. DebugView là nÆ¡i duy nhất để xác nhận theo thá»i gian thá»±c.

Sử dụng dữ liệu gói đăng ký trong báo cáo và đối tượng

Bật Send user properties trong Adapty Dashboard (Cấu hình Adapty, bước 4). Nếu không bật, Adapty sẽ không gá»­i subscription_state hay subscription_product_id — và phần còn lại cá»§a mục này sẽ không có tác dụng gì. Theo mặc định, Firebase và Google Analytics không hiển thị các thuá»™c tính ngưá»i dùng. Hãy đăng ký từng thuá»™c tính dưới dạng custom dimension. Äiá»u này giúp subscription_state và subscription_product_id xuất hiện trong các báo cáo, Explorations và đối tượng. Cấu hình dimension trong Google Analytics Admin. Sau đó bạn có thể truy vấn chúng trong cả Firebase lẫn Google Analytics — vì hai ná»n tảng này dùng chung backend.

Hữu ích cho việc xây dá»±ng đối tượng Google Ads từ ngưá»i dùng trả phí hoặc đưa dữ liệu vào các mô hình dá»± Ä‘oán.

Khi hoàn tất thiết lập, Adapty sẽ Ä‘iá»n các thuá»™c tính này cho các sá»± kiện tiếp theo. Các sá»± kiện cÅ© sẽ không được cập nhật.

  1. Trong Google Analytics, mở Admin > Custom definitions.
    Google Analytics Custom Definitions
  2. Nhấp Create custom dimensions.
  3. Với mỗi thuộc tính, thiết lập:
    • Dimension name: Bất kỳ tên nào dá»… Ä‘á»c, ví dụ “Subscription stateâ€.
    • Scope: User.
    • User property: subscription_state hoặc subscription_product_id. Tên phải khá»›p chính xác — Google Analytics có phân biệt chữ hoa/thưá»ng.
    Google Analytics New Custom Definition

Khắc phục sự cố

Sự kiện không xuất hiện trong Firebase

  • Xác nhận rằng Firebase App Instance ID đã được thiết lập trước khi giao dịch mua đầu tiên được thá»±c hiện. Các sá»± kiện không có Firebase ID sẽ không đến được Firebase và sẽ gây ra lá»—i.
  • Xác nhận rằng thuá»™c tính Google Analytics được liên kết trong Firebase Console khá»›p vá»›i data stream.
  • Xác nhận rằng bá»™ thông tin xác thá»±c (ID + secret) trong Adapty khá»›p vá»›i ná»n tảng.

access_level_updated hiển thị là thất bại trong Event Feed

access_level_updated là sá»± kiện chỉ dành cho webhook. Adapty không bao giá» cố gắng gá»­i nó tá»›i Firebase — nhưng Event Feed vẫn liệt kê nó là giao nhận thất bại. Hãy bá» qua dòng đó. Tích hợp cá»§a bạn vẫn hoạt động bình thưá»ng. Äể sá»­ dụng sá»± kiện này, hãy cấu hình tích hợp webhook.

Các sự kiện sandbox làm ô nhiễm dữ liệu production

Adapty chuyển tiếp các giao dịch sandbox và production đến cùng một Firebase project. Xem Cấu hình Firebase — sử dụng một Firebase project riêng cho các bản build development sẽ tránh hoàn toàn vấn đỠnày.

Firebase đếm thiếu doanh thu cho các ứng dụng dùng StoreKit 2

Firebase tá»± động ghi lại sá»± kiện in_app_purchase cho má»i giao dịch mua qua StoreKit 1 — không cần viết code. StoreKit 2 dùng API khác. Firebase không bao giá» nhìn thấy các giao dịch đó.

Hệ quả: các ứng dụng chá»§ yếu dùng SK2 mà không có pipeline doanh thu riêng sẽ báo cáo thiếu má»™t ná»­a hoặc hÆ¡n — trong Firebase, trong Google Analytics, và trong má»i chiến dịch Google Ads phía sau. Tối ưu hóa đặt giá thầu chạy dá»±a trên con số sai. Báo cáo doanh thu chỉ phản ánh má»™t ná»­a thá»±c tế. Cách khắc phục: truyá»n firebase_app_instance_id vào Adapty (xem Cấu hình mã ứng dụng cá»§a bạn). Adapty sẽ chuyển tiếp má»i giao dịch mua qua Measurement Protocol — bao gồm doanh thu, đơn vị tiá»n tệ và sản phẩm Ä‘i kèm.

Số liệu Adapty Analytics và Firebase không khớp

  • StoreKit 2: Äây là nguyên nhân lá»›n nhất. Xem Firebase thống kê thiếu doanh thu cho ứng dụng StoreKit 2.
  • Mức độ áp dụng SDK: Firebase chỉ đếm các sá»± kiện từ ngưá»i dùng có ứng dụng gá»­i Firebase App Instance ID. Các phiên bản ứng dụng cÅ© hÆ¡n không thá»±c hiện lệnh gá»i đó. Adapty vẫn đếm những ngưá»i dùng đó; còn Firebase thì không.
  • Sá»± kiện sandbox: Adapty cÅ©ng chuyển tiếp các giao dịch sandbox sang Firebase. Hãy dùng má»™t dá»± án Firebase riêng cho các bản build phát triển để tách biệt chúng.
  • Lấy mẫu: Google Analytics Explorations lấy mẫu các tập dữ liệu lá»›n. Äể có số liệu chưa qua lấy mẫu, hãy kiểm tra chế độ xem Realtime hoặc các báo cáo tiêu chuẩn.

Tên sự kiện tùy chỉnh bị Google Analytics từ chối

Google Analytics giới hạn tên sự kiện tối đa 40 ký tự, chỉ bao gồm chữ cái, số và dấu gạch dưới, và phải bắt đầu bằng một chữ cái. Hãy đổi tên các sự kiện Adapty tùy chỉnh trên dashboard nếu chúng vi phạm những giới hạn này.

ÿÿÿÿ