POST /api/v1/profile/save/

Lưu hồ sơ người dùng

Tạo hoặc cập nhật hồ sơ người dùng trong Adapty Mail. Hồ sơ người dùng chứa email và các thuộc tính mà Adapty Mail sử dụng để xác định người nhận và xây dựng phân khúc.

Xác định mỗi người dùng bằng một external_profile_id ổn định. Gửi cùng một external_profile_id lần nữa sẽ cập nhật hồ sơ người dùng hiện có thay vì tạo bản trùng lặp.

Request body

external_profile_idstringrequired

Mã định danh ổn định cho người dùng, do ứng dụng hoặc backend của bạn quản lý. Sử dụng lại cùng một giá trị trong các yêu cầu để Adapty Mail liên kết email, lượt nhấp và giao dịch mua vào một hồ sơ người dùng. Không bao giờ sử dụng mã định danh ẩn danh hoặc mã định danh theo từng lần cài đặt.

external_created_atstringrequired

Thời điểm tạo người dùng, theo định dạng ISO 8601 (ví dụ: "2026-06-01T10:30:00Z"). Bạn có thể sử dụng ngày này trong các phân khúc.

emailstringrequired

Địa chỉ email của người dùng. Adapty Mail gửi các chiến dịch đến địa chỉ này. Địa chỉ chỉ được ghi một lần: được thiết lập khi hồ sơ người dùng được tạo và các lần lưu sau đó sẽ không ghi đè lên nó.

customer_user_idstring

Mã định danh của người dùng trong hệ thống của bạn, nếu bạn có một mã định danh mà Adapty cũng biết. Adapty Mail sử dụng nó để nhận dạng một người cũng tiếp cận thông qua Adapty SDK, để hai nguồn chia sẻ một hồ sơ người dùng thay vì tạo ra một bản sao trùng lặp gửi thư cho cùng một người hai lần.

first_namestring

Tên của người dùng.

last_namestring

Họ của người dùng.

genderstring

Giới tính của người dùng.

birthdaystring

Ngày sinh của người dùng, theo định dạng ISO 8601 (ví dụ: "1990-05-21").

countrystring

Quốc gia của người dùng dưới dạng mã ISO 3166-1 alpha-2 gồm hai chữ cái (ví dụ: US).

store_countrystring

Khu vực cửa hàng của người dùng dưới dạng mã ISO 3166-1 alpha-2 gồm hai chữ cái (ví dụ: US).

custom_attributesobject

Các cặp khóa-giá trị tùy ý (giá trị chuỗi hoặc số) để đính kèm vào hồ sơ người dùng. Sử dụng chúng để xây dựng phân khúc — ví dụ: plan, signup_source, hoặc trial_days.

device_infoobject
platformstringrequired

Nền tảng mà người dùng đang sử dụng, ví dụ: iOS hoặc Android.

devicestring

Mẫu thiết bị, ví dụ: iPhone15,2.

osstring

Phiên bản hệ điều hành, ví dụ: 17.5.

localestring

Ngôn ngữ địa phương của người dùng, ví dụ: en-US. Adapty Mail sử dụng thông tin này để quyết định bản dịch nào của chiến dịch đã được bản địa hóa sẽ được gửi. Người dùng không có ngôn ngữ địa phương sẽ nhận email bằng tiếng Anh.

timezonestring

Múi giờ của người dùng, ví dụ: America/New_York.

app_versionstring

Phiên bản ứng dụng của bạn mà người dùng đang chạy, ví dụ: 3.1.0.

Responses

Hồ sơ người dùng đã được lưu thành công. Nội dung phản hồi là một đối tượng rỗng.

Schema
object
Example
{}

Xác thực thất bại — một trường bắt buộc bị thiếu hoặc không hợp lệ. field_name cho biết trường nào bị lỗi.

Schema

Phản hồi lỗi tiêu chuẩn. Mọi lỗi đều trả về trạng thái 4XX với cấu trúc này.

errorsarray of object
messagestring

Mô tả lỗi có thể đọc được.

error_codestring

Mã định danh lỗi dành cho máy đọc.

status_codeinteger

Mã trạng thái HTTP cho lỗi này.

field_namestring

Trường yêu cầu gây ra lỗi, hoặc null nếu lỗi không liên quan đến trường cụ thể nào.

Example
{
  "errors": [
    {
      "message": "Field required",
      "error_code": "base_error",
      "status_code": 400,
      "field_name": "email"
    }
  ]
}

Thiếu hoặc secret API key không hợp lệ.

Schema

Phản hồi lỗi tiêu chuẩn. Mọi lỗi đều trả về trạng thái 4XX với cấu trúc này.

errorsarray of object
messagestring

Mô tả lỗi có thể đọc được.

error_codestring

Mã định danh lỗi dành cho máy đọc.

status_codeinteger

Mã trạng thái HTTP cho lỗi này.

field_namestring

Trường yêu cầu gây ra lỗi, hoặc null nếu lỗi không liên quan đến trường cụ thể nào.

Example
{
  "errors": [
    {
      "message": "Secret key doesn't exist",
      "error_code": "secret_key_does_not_exist_error",
      "status_code": 403,
      "field_name": null
    }
  ]
}