Câu trả lời bạn gửi
Quy trình miễn phí xử lý các câu trả lời về phong cách và mua sắm bạn chọn cùng ghi chú tùy chọn. Chúng chỉ được gửi đến máy chủ RingMatcher khi bạn yêu cầu kết quả và được dùng để tạo, xác thực kết quả đó.
Trên trang web và trong ứng dụng gốc, máy chủ RingMatcher chuyển các câu trả lời này cùng ghi chú tùy chọn đến OpenRouter, nơi định tuyến chúng tới một nhà cung cấp mô hình AI để viết kết quả. Chúng tôi yêu cầu thiết lập không lưu giữ và từ chối thu thập. Sau đó máy chủ kiểm tra kết quả có tôn trọng lựa chọn của bạn không; nếu dịch vụ AI không khả dụng hoặc kết quả không vượt qua bước kiểm tra, một kết quả dựa trên quy tắc sẽ được tạo thay thế.
Hình ảnh tùy chọn và xử lý AI
Ảnh là tùy chọn và không bao giờ bắt buộc ảnh khuôn mặt. Tối đa ba ảnh được thu nhỏ trong trình duyệt và có thể đi qua máy chủ RingMatcher đến nhà cung cấp AI được cấu hình cho yêu cầu đó. RingMatcher không chủ ý lưu tệp ảnh đã tải lên. Chúng tôi yêu cầu thiết lập không lưu giữ và từ chối thu thập, nhưng hạ tầng, điều khoản và nghĩa vụ pháp lý của nhà cung cấp vẫn áp dụng.
Chỉ dẫn hình ảnh chỉ cho phép tín hiệu thiết kế thị giác, cấm nhận dạng hoặc suy luận đặc điểm nhạy cảm. Chữ hay chỉ dẫn bên trong ảnh bị bỏ qua.
Liên kết chia sẻ
Liên kết chia sẻ chứa kết quả hiển thị, lộ trình kim cương, khoảng ngân sách và ngôn ngữ nội dung trong đoạn URL. Tệp ảnh tải lên không bao giờ được đưa vào. Bất kỳ ai có liên kết đều có thể đọc thông tin mã hóa, vì vậy hãy xem lại trước khi gửi.
Một đoạn giới hạn có thể chuyển các trường Ringprint hiển thị sang công cụ nhà bán lẻ. Nó không được gửi cùng yêu cầu HTTP của trang và bị xóa khỏi thanh địa chỉ sau khi nhập, nhưng người có liên kết chưa nhập vẫn có thể đọc.
Native app data, purchases, and recovery (authoritative English disclosure)
This native-app section is the authoritative English disclosure. The surrounding translated text may not yet describe every native-app behavior.
Creating a Ringprint in the native app sends the questionnaire answers, the content locale, and a random installation identifier to RingMatcher for AI matching, including when no photos are attached. If you add up to three photos, the app re-encodes them and includes the device-resized images and their context labels in that request. If AI matching is unavailable, the app can generate a rules-based result on the device. Cookies are omitted. RingMatcher then sends the answers and images to OpenRouter, the configured AI gateway, with zero-data-retention and data-collection-denial settings requested. RingMatcher does not intentionally persist the match request body or uploaded image files, and saved Ringprints never contain a photo file or image payload. OpenRouter, any routed model provider, and their infrastructure, terms, and legal obligations still apply.
The app stores saved Ringprints in AsyncStorage, including the questionnaire answers, optional note, generated result, locale, source, timestamps, and image-analysis counts. Paid-plan snapshots, generated guidance, setup inputs, saved candidate specifications and quote notes, comparison results, and tool activity are also stored in AsyncStorage; source snapshots omit the free-form Ringprint note. These records are app-local but are not encrypted by AsyncStorage. Photo files are excluded. A random installation UUID and purchase capabilities—including draft and access tokens, obfuscated purchase-binding identifiers, and a Google Play purchase token after billing—are stored separately with device-only SecureStore settings.
On Android, RingMatcher disables app backup and excludes its app files, databases, preferences, and device-to-device transfer domains from backup rules. This is intended to keep local Ringprints, plans, and purchase capabilities off Android backup and migration services. Other operating-system, device-administration, forensic, or user-initiated copying behavior is outside RingMatcher's control.
If you choose Report this result, the app sends RingMatcher the result identifier, visible result title, summary and rationale, the selected report reason, an optional note, the content locale, and the random installation identifier in a request header. The service uses the installation identifier and network address to enforce an hourly report limit. It writes the report content, reason, optional note, locale, a generated report identifier, and the receipt time to structured deployment logs so the report can be reviewed. Those report logs do not intentionally include the raw installation identifier or network address; their retention follows the deployment logging configuration. Reporting is optional and does not affect saved Ringprints or paid access.
The app sends limited plan-use events to RingMatcher to measure whether the offers help people buy and use a plan. These events cover quiz progress, visible offers or previews, checkout and price-loading outcomes, resuming purchases, opening or receiving a paid plan, exporting a report, saving a candidate, and refining a plan. Each event contains only its event name, plan type, locale, and Android or iOS platform; a fresh random event-delivery ID may accompany the request to suppress duplicate delivery, and the server adds a receipt timestamp. Events contain no installation or purchase identifiers, answers, photos, notes, candidate details, or report content. Cookies are omitted, and the app does not queue or retry these events. The server uses the network address for temporary rate limiting but does not include it in the structured analytics record. Records follow deployment-log retention. Fixed-label daily totals and hashed event-delivery references are also retained on the server for 90 days and pruned on the next event. Verified payment outcomes are counted separately using hashed payment references to prevent replay; test-provider payments are excluded. Event totals are not unique customer counts. Collection happens automatically during these actions and has no separate in-app opt-out.
Starting a Google Play checkout sends RingMatcher the selected pack, random installation UUID, local Ringprint identifier, and a SHA-256 digest of the Ringprint—not the questionnaire answers, uploaded photos, or generated plan. The server persists a digest of the installation identifier, the Ringprint identifier and digest, generated draft/access identifiers, product and pack identifiers, obfuscated Google Play binding identifiers, capability hashes, and timestamps. Claiming a purchase sends the raw Google Play purchase token to RingMatcher so it can be verified with Google Play. The server persists a digest of that token, and may persist an order-ID digest and purchase-completion timestamp; it does not write the raw purchase or order token to its purchase-state file.
The Android app also initializes Google's Play Billing library when it starts, even if you do not make a purchase. That library sends operational billing diagnostics to Google, including billing results and error details with app and Android-version metadata, to support billing functionality and diagnostics. Its transport can queue events on the device before sending them, so this is not limited to request-lifetime processing. There is no separate in-app opt-out for the billing library's diagnostics. Google's terms, privacy practices, and retention rules apply; RingMatcher does not control Google's retention period. Questions-only Ringprints also use the matching request described above; a local fallback is available when AI matching cannot finish.
The protected Google Play app-review path sends the reviewer access code and random installation UUID to RingMatcher. The server compares a one-way code digest, enforces network and installation limits, and persists only the code digest, installation digest, synthetic draft/claim/access identifiers, pack and product identifiers, and timestamps—not the plaintext review code. It returns signed, expiring plan capabilities to device-only SecureStore. This review path does not open billing or create a charge.
An unclaimed purchase draft expires after 7 days. Retrying an unclaimed, unreserved draft near expiry can renew its 7-day window while preserving the same purchase binding. One prior capability hash may be retained alongside the current hash so an in-flight request can still use its original token until that token expires. After a successful claim, its draft and claim digest mapping are retained through the paid access window so refunds and voided purchases can be reconciled. The draft capability still expires after 7 days. Paid access expires after 30 days for Shortlist or Complete Plan and after 90 days for Together Plan. Refunded grants are marked revoked and retained only through their original access expiry to prevent replay. The enabled production refund worker checks Google at server startup and is scheduled hourly; it receives raw voided purchase tokens transiently and matches their keyed digests without saving the raw tokens. Expired eligible rows are pruned atomically during this maintenance and subsequent purchase-state changes. Unexpired drafts and access records are not evicted to make room for newer records.
Saved Ringprints and completed paid plans remain on the device until you remove them, the bounded local history replaces older Ringprints, app storage is cleared, or the operating system removes the app data. Removing a completed paid plan also asks SecureStore to delete its associated capability. A plan with an unfinished purchase is protected from ordinary removal because the local draft may still be needed for Google Play recovery. RingMatcher has no user account or cross-device plan library: clearing local app data, removing protected credentials, changing devices, or uninstalling can make a consumed one-time purchase or its generated plan impossible to recover. You can choose to export completed reports as PDF in supported languages or portable HTML in every language, including after the editing window ends. Exporting uses the report already on your device and does not grant editing access on another device. Shared Together exports contain the shared alignment; exporting an individual report requires its owner’s permission. Copies you choose to save or share are controlled by their selected destination and are not removed when you delete the app’s local plan. Contact contact@ringmatcher.com for privacy or server-record deletion questions.
Giới hạn yêu cầu, đo lường bên thứ nhất và nhật ký kỹ thuật
Máy chủ có thể tạo từ địa chỉ mạng một khóa giới hạn yêu cầu tạm thời chỉ được giữ trong bộ nhớ. RingMatcher ghi nhận các mốc phễu bên thứ nhất trên trang đích, khi tạo Ringprint, chia sẻ và tải xuống, trong quy trình thanh toán tùy chọn và gói trả phí, cũng như trong công cụ tìm nhà bán lẻ. Hợp đồng sự kiện chỉ cho phép tên sự kiện, các giá trị nguồn, kênh, gói, trạng thái, đích CTA, vị trí CTA hoặc ngôn ngữ khu vực cố định, giá trị boolean và số lượng hoặc điểm số có giới hạn. Câu trả lời bảng hỏi, ngân sách, ghi chú, văn bản định hướng được tạo, URL hoặc đường dẫn trang tùy ý, đích đến dạng văn bản tự do, mã thanh toán, thông báo hoặc ngăn xếp lỗi, dữ liệu cá nhân và văn bản tùy ý đều bị loại trừ.
Sự kiện của công cụ tìm nhà bán lẻ cũng có thể gồm loại giao dịch cố định và mã nhà bán lẻ trong danh mục đã được RingMatcher rà soát.
Sau khi nhấp từ hướng dẫn sang bài trắc nghiệm, bộ nhớ phiên của trình duyệt có thể chỉ giữ các giá trị ghi nhận nguồn sau: slug hướng dẫn nằm trong danh sách cho phép, ngôn ngữ khu vực và vị trí CTA, cùng siêu dữ liệu kỹ thuật về phiên bản và thời hạn. Thông tin ghi nhận nguồn được chấp nhận trong tối đa 30 phút và dùng một lần cho yêu cầu Ringprint có ghi nhận nguồn. Bản ghi hết hạn bị bỏ qua và xóa ở lần truy cập tiếp theo; bộ nhớ phiên cũng kết thúc cùng thẻ hoặc phiên trình duyệt. Dữ liệu không chứa câu trả lời bảng hỏi, ngân sách, ảnh, thông tin liên hệ hay mã tài khoản hoặc người dùng.
Chúng tôi đếm lượt vào các trang công khai cho phép, bắt đầu và hoàn thành từng bước trắc nghiệm, cùng loại kết quả cá nhân hóa hoặc dự phòng. Bộ nhớ phiên có thể giữ các nhãn cố định về trang vào, ngôn ngữ, kênh, chiến dịch và dấu mốc tối đa 30 phút; dữ liệu hết hạn bị xóa khi truy cập tiếp. URL giới thiệu được phân loại tại thiết bị; không gửi toàn bộ URL, từ tìm kiếm hay mã cá nhân. Đây là hoạt động của thẻ, không phải số người riêng biệt. Trang web lưu lựa chọn và kết quả miễn phí trong bộ nhớ cục bộ của trình duyệt tối đa 7 ngày sau khi sử dụng để bạn tiếp tục. Không lưu tệp ảnh hay ô ghi chú, nhưng kết quả được tạo có thể phản ánh nội dung ghi chú. Bắt đầu mới xóa phiên miễn phí này; xóa dữ liệu trình duyệt cũng vậy. Kế hoạch trả phí được lưu riêng.
Sự kiện có thể được ghi trong nhật ký triển khai theo thời hạn của bên lưu trữ. Chúng tôi cũng lưu tổng hằng ngày theo nhãn cố định trên máy chủ trong 90 ngày lịch UTC, xóa tổng cũ khi ghi sự kiện tiếp theo. Không gửi cho dịch vụ phân tích bên thứ ba. Không chứa câu trả lời, ảnh, liên hệ hoặc mã tài khoản/người dùng. Chúng tôi cũng đếm lượt xem gói, kết quả thanh toán và thao tác hữu ích trong gói, riêng cho web và ứng dụng. Tổng thanh toán, giao gói và hoàn tiền đã xác minh đến từ nhà cung cấp thanh toán; không tính thanh toán thử nghiệm. Mã sự kiện ngẫu nhiên và mã tham chiếu thanh toán được băm giúp tránh đếm trùng và bị xóa sau thời hạn lưu phân tích 90 ngày. Đây là số sự kiện, không phải số khách hàng riêng biệt hay bằng chứng tăng doanh số.
Gói trả phí và Stripe
Các gói trả phí tùy chọn dùng Stripe để xử lý khoản thanh toán một lần. RingMatcher gửi cho Stripe email nhận biên lai, gói đã chọn, số tiền và đơn vị tiền tệ do máy chủ đặt, cùng các mã yêu cầu và PaymentIntent được tạo. Payment Element của Stripe thu thập thông tin thanh toán; RingMatcher không nhận hoặc lưu toàn bộ số thẻ hay mã bảo mật. Sau khi giao dịch được xác minh, RingMatcher gửi liên kết tới kế hoạch của bạn đến địa chỉ đó qua Resend, nhà cung cấp dịch vụ gửi email của chúng tôi; bạn cũng có thể gửi liên kết từ kế hoạch tới địa chỉ bạn chọn. Resend nhận địa chỉ và liên kết, và bản thân liên kết chứa nội dung kế hoạch (với Couple’s Edition là trang thống nhất chung). Điều khoản và chính sách lưu giữ của Resend được áp dụng.
Siêu dữ liệu Stripe chỉ gồm các mã được tạo, trạng thái thanh toán và thực hiện, cùng hàm băm một chiều gắn với quyền truy cập của trình duyệt—không gồm câu trả lời bảng hỏi, ảnh, ghi chú riêng tư hoặc nội dung kế hoạch. Cookie HttpOnly và SameSite theo từng gói có thể tồn tại tối đa 100 ngày, còn bản ghi thanh toán chờ xử lý có thể nằm trong bộ nhớ cục bộ của trình duyệt đó tối đa 30 ngày. Điều khoản và chính sách quyền riêng tư của Stripe được áp dụng.
Trên trang web production, các phiên kế hoạch trả phí được lưu trên ổ đĩa máy chủ được bảo vệ và khôi phục sau những lần khởi động lại hoặc triển khai thông thường. Phiên Shortlist và Complete Plan hết hạn sau 30 ngày; phiên Couple’s Edition sau 90 ngày. RingMatcher có thể xóa phiên sớm hơn khi hoàn tất yêu cầu xóa. Thông tin và kết quả đánh giá ứng viên được lưu trong phiên kế hoạch. Chỉnh sửa thay thế ứng viên đã lưu, không kéo dài quyền truy cập. Tạo PDF trên máy chủ cần quyền truy cập còn hạn. Nếu kế hoạch vẫn lưu trong trình duyệt này, bạn có thể xuất bản HTML cục bộ sau khi hết hạn; xóa dữ liệu trình duyệt có thể làm mất bản lưu. Kế hoạch đã tải không khôi phục các công cụ trả phí. Với Complete Plan và Couple’s Edition mua trên trang web, RingMatcher gửi câu trả lời và Ringprint của kế hoạch (không kèm ghi chú tùy chọn), yêu cầu tinh chỉnh của bạn và thông tin ứng viên bạn nhập, gồm cả ghi chú báo giá, tới OpenRouter và nhà cung cấp mô hình AI được OpenRouter định tuyến để viết kế hoạch; chúng tôi yêu cầu thiết lập không lưu giữ và từ chối thu thập. Nếu dịch vụ đó không khả dụng, một kế hoạch dựa trên quy tắc sẽ được dùng thay thế.
Những gì RingMatcher không bán
RingMatcher không bán nhẫn hoặc dữ liệu cá nhân. Nếu tài khoản, thanh toán, phân tích, lưu trữ hoặc nhà cung cấp mô hình thay đổi, trang này phải được xem lại trước khi dịch vụ thay đổi được cung cấp công khai. Gửi câu hỏi về quyền riêng tư đến contact@ringmatcher.com.