Google Cloud Storage

Bật tích hợp Google Cloud Storage để lưu trữ an toàn các sự kiện gói đăng ký và dữ liệu lượt xem paywall tại một nơi duy nhất: bucket Google Cloud Storage của bạn.

Mỗi ngày lúc 4 giờ sáng UTC, Adapty sẽ tải các file .csv chứa dữ liệu của ngày hôm trước lên bucket của bạn. Bạn có thể chọn nhận dữ liệu event, dữ liệu paywall visit, hoặc cả hai. Bạn cũng có thể xuất dữ liệu này thủ công bất cứ lúc nào, cho bất kỳ khoảng thời gian nào.

Để thiết lập tích hợp, hãy tạo khóa truy cập bucket trong Google Cloud console của bạn, rồi thêm vào cài đặt Adapty.

Lịch tải lên và thời gian xử lý

Adapty tải dữ liệu lên Google Cloud Storage mỗi 24 giờ, lúc 04:00 UTC.

Các file chứa dữ liệu cho các sự kiện được tạo trong ngày dương lịch trước đó (UTC). File được tải lên vào ngày 8 tháng 3 sẽ chứa tất cả sự kiện được tạo vào ngày 7 tháng 3, từ 00:00:00 đến 23:59:59 UTC.

Quá trình này có thể mất đến vài giờ, tùy thuộc vào tổng số file trong hàng đợi cũng như lượng dữ liệu bạn yêu cầu. Nếu Adapty đưa dữ liệu lịch sử vào lần tải lên đầu tiên, thời gian xử lý sẽ lâu hơn so với các lần tải lên hàng ngày sau đó.

Thiết lập tích hợp Google Cloud Storage

Bạn cần có khóa tài khoản dịch vụ Google Cloud hợp lệ với quyền ghi. Để tạo khóa, làm theo các bước trong phần tạo thông tin xác thực.

Warning

Bạn có thể dùng các bucket khác nhau với thông tin xác thực khác nhau cho sự kiện và lượt xem paywall. Tuy nhiên, nếu một trong hai bộ thông tin xác thực không hợp lệ, cả hai lần tải lên đều sẽ thất bại.

Vào Integrations -> Google Cloud Storage, mở tab cần thiết (Events hoặc Paywall visits). Bật tích hợp.

Tải lên file chứa khóa tài khoản dịch vụ Google Cloud của bạn. Chỉ định bucket và folder đích. Lưu các thay đổi.

google-cloud-storage-setup.webp

Cài đặt tùy chọn cho dữ liệu sự kiện

Bạn có thể chỉ định những sự kiện nào được đưa vào báo cáo và đặt tên tùy chỉnh cho các sự kiện. Xem bài viết events để biết danh sách đầy đủ các sự kiện khả dụng.

event-specific-settings.webp
TênMặc địnhMô tả
Exclude historical eventstrueLoại trừ thông tin về các sự kiện xảy ra trước khi bạn tích hợp Adapty SDK vào ứng dụng.

Nếu nền tảng phân tích của bạn đã nhận các sự kiện gói đăng ký trước khi bạn bắt đầu dùng Adapty, tùy chọn này đảm bảo nền tảng không nhận các sự kiện trùng lặp.
Ví dụ thực tế

Một người dùng đã mua gói đăng ký hàng tháng vào ngày 10 tháng 1. Bản cập nhật ngày 1 tháng 3 của ứng dụng là bản đầu tiên tích hợp Adapty SDK.

Nếu cài đặt này bật, báo cáo sẽ không bao gồm sự kiện “subscription started” từ tháng 1, cũng như sự kiện “subscription renewed” từ tháng 2. Nhưng sẽ bao gồm sự kiện “subscription renewed” từ ngày 10 tháng 3.

Include events without profilefalseBao gồm các giao dịch không được liên kết với hồ sơ người dùng, hoặc không thể liên kết ngay với một người dùng cụ thể. Có thể bao gồm các giao dịch thực hiện trước khi cài Adapty SDK, hoặc các giao dịch nhận qua thông báo từ server.
Send user attributesfalseBao gồm các thuộc tính người dùng tùy chỉnh, chẳng hạn như dữ liệu người dùng và dữ liệu sử dụng ứng dụng. Chọn tùy chọn này nếu gói OneSignal của bạn hỗ trợ hơn 10 thẻ. Lưu ý rằng vượt quá giới hạn thẻ có thể gây ra lỗi.

Tạo thông tin xác thực Google Cloud Storage

Hướng dẫn này giúp bạn tạo các thông tin xác thực cần thiết trong Google Cloud Platform Console.

Để Adapty có thể tải báo cáo dữ liệu thô lên bucket của bạn, cần có khóa tài khoản dịch vụ cùng với quyền ghi vào bucket tương ứng. Bằng cách cung cấp khóa tài khoản dịch vụ và cấp quyền ghi vào bucket, bạn cho phép Adapty chuyển báo cáo dữ liệu thô từ nền tảng của Adapty sang môi trường lưu trữ của bạn một cách an toàn và hiệu quả.

Warning

Lưu ý rằng chúng tôi chỉ hỗ trợ xác thực bằng khóa HMAC của Service Account, nghĩa là Service Account HMAC key của bạn phải được gán các vai trò “Storage Object Viewer”, “Storage Legacy Bucket Writer” và “Storage Object Creator” để truy cập đúng cách vào Google Cloud Storage.

  1. Đầu tiên, truy cập phần IAM trong tài khoản Google Cloud của bạn và chọn dự án phù hợp hoặc tạo dự án mới.
30a81ef-CleanShot_2023-03-17_at_15.22.142x.webp
  1. Tiếp theo, tạo tài khoản dịch vụ mới cho Adapty bằng cách nhấp vào nút ”+ CREATE SERVICE ACCOUNT”.

    98f8ebf-CleanShot_2023-03-17_at_15.40.062x.webp
  2. Điền vào các trường ở bước đầu tiên; quyền truy cập sẽ được cấp ở bước sau. Để tìm hiểu thêm về trang này, đọc tài liệu tại đây.

    2190c50-CleanShot_2023-03-17_at_15.48.552x.webp
  3. Để tạo và tải xuống khóa JSON riêng tư, điều hướng đến phần KEYS và nhấp vào nút “ADD KEY”.

    8a45468-CleanShot_2023-03-17_at_15.58.092x.webp
  4. Trong phần DETAILS, tìm giá trị Email liên kết với tài khoản dịch vụ vừa tạo và sao chép lại. Thông tin này sẽ cần thiết cho các bước tiếp theo để xác thực tài khoản và cho phép ghi vào bucket.

    6ccd0f0-CleanShot_2023-03-17_at_16.03.162x.webp
  5. Tiếp theo, vào trang Buckets của Google Cloud Storage, chọn bucket hiện có hoặc tạo bucket mới để lưu trữ báo cáo dữ liệu Sự kiện hoặc Lượt xem từ Adapty. Sau đó điều hướng đến phần PERMISSIONS và chọn tùy chọn GRANT ACCESS.

    3cdd937-CleanShot_2023-03-17_at_16.14.232x.webp
  6. Trong phần PERMISSIONS, nhập Email của tài khoản dịch vụ đã lấy ở bước năm, chọn vai trò Storage Object Creator. Cuối cùng, nhấp SAVE để áp dụng các thay đổi.

    62801f4-CleanShot_2023-03-17_at_16.17.312x.webp

    Hãy ghi nhớ tên bucket để sử dụng sau này.

Xuất dữ liệu thủ công

Ngoài tính năng tự động xuất dữ liệu sự kiện sang Google Cloud Storage, Adapty còn cung cấp chức năng xuất file thủ công. Với tính năng này, bạn có thể chọn khoảng thời gian cụ thể cho dữ liệu sự kiện và xuất thủ công vào bucket GCS của mình. Điều này giúp bạn kiểm soát tốt hơn dữ liệu cần xuất và thời điểm xuất.

Khoảng thời gian được chỉ định sẽ dùng để xuất các sự kiện được tạo từ Ngày A 00:00:00 UTC đến Ngày B 23:59:59 UTC.

e347308-CleanShot_2023-03-17_at_17.39.452x.webp

Cấu trúc dữ liệu

Adapty sử dụng file .csv để xuất dữ liệu ở định dạng bảng.

Warning

Nội dung sự kiện có thể tăng theo thời gian — khi chúng tôi hoặc các bên thứ ba mà chúng tôi hợp tác giới thiệu dữ liệu mới. Hãy đảm bảo code xử lý dữ liệu của bạn đủ linh hoạt và dựa vào các trường cụ thể, không phụ thuộc vào cấu trúc tổng thể.

Sự kiện

Bạn có thể chỉnh sửa danh sách sự kiện được đưa vào báo cáo của mình.

Note

Adapty chuyển đổi các loại tiền tệ khác sang USD theo tỷ giá của currencylayer.com (cập nhật mỗi 8 giờ). Tỷ giá được cố định tại thời điểm giao dịch — các thay đổi sau đó không ảnh hưởng đến kết quả chuyển đổi.

CộtMô tả
profile_idID người dùng Adapty.
event_typeTên sự kiện viết thường. Tham khảo phần Sự kiện để tìm hiểu các loại sự kiện.
event_datetimeNgày theo định dạng ISO 8601.
transaction_idMã định danh duy nhất cho một giao dịch như mua hàng hoặc gia hạn.
original_transaction_idMã định danh giao dịch của lần mua hàng gốc.
subscription_expires_atNgày hết hạn của gói đăng ký. Thường là ngày trong tương lai.
environmentCó thể là Sandbox hoặc Production.
revenue_usdDoanh thu tính bằng USD. Có thể để trống.
proceeds_usdTiền thu về tính bằng USD. Có thể để trống.
net_revenue_usdDoanh thu thuần (thu nhập sau thuế) tính bằng USD. Có thể để trống.
tax_amount_usdSố tiền bị khấu trừ cho thuế tính bằng USD. Có thể để trống.
revenue_localDoanh thu tính bằng tiền tệ địa phương. Có thể để trống.
proceeds_localTiền thu về tính bằng tiền tệ địa phương. Có thể để trống.
net_revenue_localDoanh thu thuần (thu nhập sau thuế) tính bằng tiền tệ địa phương. Có thể để trống.
tax_amount_localSố tiền bị khấu trừ cho thuế tính bằng tiền tệ địa phương. Có thể để trống.
customer_user_idID người dùng do nhà phát triển cung cấp. Ví dụ: có thể là UUID, email hoặc bất kỳ ID nào khác của người dùng. Null nếu bạn chưa thiết lập.
storeCó thể là app_store hoặc play_store.
product_idID sản phẩm trên Apple App Store, Google Play Store hoặc Stripe. Đối với gói cam kết 12 tháng, giá trị là <product_id>:monthly.
base_plan_idID gói cơ bản trên Google Play Store hoặc ID giá trên Stripe.
developer_idID nhà phát triển (SDK) của paywall nơi giao dịch phát sinh.
ab_test_nameTên của A/B test nơi giao dịch phát sinh. Đối với A/B test đa placement, là tên của test trên một placement (<tên test> child-N). Để gộp A/B test đa placement theo các placement, hãy dùng ab_test_id.
ab_test_revisionPhiên bản của A/B test nơi giao dịch phát sinh.
paywall_nameTên của paywall nơi giao dịch phát sinh. Đối với flow, là ID của màn hình paywall (scr_...). Tên flow nằm ở flow_name.
paywall_revisionPhiên bản của paywall nơi giao dịch phát sinh.
profile_countryQuốc gia của hồ sơ người dùng được Adapty xác định dựa trên địa chỉ IP.
install_dateNgày cài đặt theo định dạng ISO 8601.
idfvidentifierForVendor trên thiết bị iOS
idfaadvertisingIdentifier trên thiết bị iOS
advertising_idAdvertising ID là mã duy nhất được Hệ điều hành Android cấp, mà các nhà quảng cáo có thể dùng để nhận diện thiết bị của người dùng
ip_addressĐịa chỉ IP của thiết bị (có thể là IPv4 hoặc IPv6, ưu tiên IPv4 khi có). Được cập nhật mỗi khi IP của thiết bị thay đổi
cancellation_reason

Lý do người dùng hủy gói đăng ký.

Các giá trị có thể có:

iOS & Android — voluntarily_cancelled, billing_error, refund

Chỉ iOS — price_increase, product_was_not_available, unknown, upgraded

Chỉ Android — new_subscription_replace, cancelled_by_developer

android_app_set_idMột AppSetId — ID duy nhất theo từng thiết bị, theo từng tài khoản nhà phát triển, người dùng có thể đặt lại, dùng cho các trường hợp quảng cáo không liên quan đến kiếm tiền.
android_idTrên Android 8.0 (API cấp 26) và các phiên bản cao hơn, đây là một số 64-bit (biểu diễn dưới dạng chuỗi thập lục phân), duy nhất cho mỗi tổ hợp khóa ký ứng dụng, người dùng và thiết bị. Xem thêm tại tài liệu dành cho nhà phát triển Android.
deviceTên model thiết bị hiển thị với người dùng cuối.
currencyMã tiền tệ 3 chữ cái (ISO-4217) của giao dịch.
store_countryQuốc gia của hồ sơ người dùng được Apple/Google store xác định.
attribution_sourceNguồn attribution.
attribution_network_user_idID được nguồn attribution gán cho người dùng.
attribution_statusCó thể là organic, non_organic hoặc unknown.
attribution_channelTên kênh marketing.
attribution_campaignTên chiến dịch marketing.
attribution_ad_groupNhóm quảng cáo attribution.
attribution_ad_setBộ quảng cáo attribution.
attribution_creativeTừ khóa creative của attribution.
attributesJSON của thuộc tính người dùng tùy chỉnh. Bao gồm mọi thuộc tính tùy chỉnh bạn đã thiết lập để gửi từ ứng dụng mobile. Để gửi, hãy bật tùy chọn Send User Attributes trong trang Integrations -> Webhooks.
integration_idsTất cả các ID tích hợp liên kết với một hồ sơ người dùng. Dạng Dictionary. Ví dụ: {‘mixpanel_user_id’: ‘mixpanelUserId-test’, ‘facebook_anonymous_id’: ‘facebookAnonymousId-test’}
variation_idID duy nhất của paywall nơi giao dịch phát sinh. Đối với flow, là ID của màn hình paywall bên trong flow, không phải ID biến thể A/B test.
flow_idID của flow nơi giao dịch phát sinh.
flow_nameTên của flow nơi giao dịch phát sinh.
flow_variation_idID của biến thể flow trên placement này, giống với flow.variationId trong SDK.
ab_test_idID của A/B test nơi giao dịch phát sinh. Đối với A/B test đa placement, giá trị này giống nhau trên mọi placement.
ab_test_variant_idID của biến thể A/B test nơi giao dịch phát sinh. Dùng để phân tách giao dịch theo biến thể test.
ab_test_variant_nameTên của biến thể A/B test.
ab_test_parent_nameTên của A/B test đa placement. Để trống đối với các A/B test khác.

Các cột flow và A/B test là những cột cuối cùng của file. Adapty tính toán chúng tại thời điểm xuất file, vì vậy tên trong file xuất có thể khác với tên trong webhook event trước đó nếu bạn đã đổi tên A/B test, biến thể hoặc flow trong khoảng thời gian đó. Để biết mỗi cột chứa gì trong từng loại A/B test, xem Trường flow và A/B test.

Lượt xem paywall

CộtMô tả
profile_idID người dùng Adapty.
customer_user_idID người dùng do nhà phát triển đặt. Ví dụ: UUID người dùng, email hoặc ID bất kỳ. Null nếu bạn chưa thiết lập.
profile_countryQuốc gia của hồ sơ người dùng được xác định bởi cửa hàng Apple/Google.
install_dateNgày cài đặt theo định dạng ISO 8601.
storeCó thể là app_store hoặc play_store.
paywall_showed_atNgày paywall được hiển thị cho khách hàng.
developer_idID nhà phát triển (SDK) của paywall nơi giao dịch bắt nguồn.
ab_test_nameTên A/B test nơi giao dịch bắt nguồn.
ab_test_revisionPhiên bản của A/B test nơi giao dịch bắt nguồn.
paywall_nameTên paywall nơi giao dịch bắt nguồn.
paywall_revisionPhiên bản của paywall nơi giao dịch bắt nguồn.

Xử lý sự cố

Adapty kiểm tra tính hợp lệ của khóa truy cập trước khi bắt đầu tải lên. Ngay cả khi chỉ một trong các khóa Google Cloud Storage không hợp lệ, Adapty sẽ hủy toàn bộ quá trình tải lên và báo lỗi.

Để đảm bảo quá trình tải lên không bị gián đoạn, hãy thay thế khóa trước khi hết hạn. Nếu bạn cập nhật khóa cho sự kiện, đừng quên cập nhật khóa cho lượt xem paywall, và ngược lại.