제출하는 답변
무료 흐름은 선택한 스타일 및 쇼핑 답변과 선택 메모를 처리합니다. 결과를 요청할 때만 RingMatcher 서버로 보내며, 그 결과를 만들고 검증하는 데 사용합니다.
웹사이트와 네이티브 앱 모두에서 RingMatcher 서버는 이 답변과 선택 메모를 OpenRouter로 전달하고, OpenRouter는 결과 작성을 위해 이를 AI 모델 제공자에게 라우팅합니다. 무보존과 수집 거부 설정을 요청합니다. 이후 서버는 결과가 선택 사항을 지키는지 확인하며, AI 서비스를 사용할 수 없거나 결과가 확인을 통과하지 못하면 대신 규칙 기반 결과를 만듭니다.
선택 이미지와 AI 처리
사진은 선택 사항이며 얼굴 사진은 필요하지 않습니다. 최대 세 장을 브라우저에서 축소하고 해당 요청에 설정된 AI 제공자에게 RingMatcher 서버를 통해 보낼 수 있습니다. RingMatcher는 업로드 파일을 의도적으로 저장하지 않습니다. 무보존과 수집 거부 설정을 요청하지만 제공자의 인프라, 약관과 법적 의무는 계속 적용됩니다.
이미지 지시는 시각 디자인 단서만 허용하고 식별이나 민감한 특성 추론을 금지합니다. 이미지 안의 글이나 지시는 무시합니다.
공유 링크
공유 링크의 URL 조각에는 보이는 결과, 선택한 다이아몬드 경로, 예산 구간과 콘텐츠 언어가 들어갑니다. 업로드 이미지는 포함되지 않습니다. 링크를 가진 사람은 인코딩된 정보를 읽을 수 있으므로 보내기 전에 검토하세요.
제한된 조각으로 보이는 Ringprint 필드를 판매처 찾기에 전달할 수 있습니다. 페이지 HTTP 요청에는 전송되지 않고 가져온 뒤 주소 표시줄에서 제거되지만, 가져오기 전 링크를 가진 사람은 읽을 수 있습니다.
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.
요청 제한, 자사 측정 및 기술 로그
서버는 네트워크 주소에서 메모리에만 보관되는 임시 요청 제한 키를 만들 수 있습니다. RingMatcher는 랜딩 페이지, Ringprint 생성, 공유 및 다운로드, 선택형 결제와 유료 팩 흐름, 리테일러 찾기에서 자사 퍼널 단계를 기록합니다. 이벤트 규격은 이벤트 이름, 고정된 출처·채널·팩·상태·CTA 목적지·CTA 위치·로케일 값, 불리언, 제한된 개수 또는 점수만 허용합니다. 설문 답변, 예산, 메모, 생성된 방향 문구, 임의의 URL이나 페이지 경로, 자유 텍스트 목적지, 결제 식별자, 오류 메시지나 스택, 개인정보, 임의의 텍스트는 포함하지 않습니다.
리테일러 찾기 이벤트에는 고정된 구매 유형과 RingMatcher가 검토한 카탈로그의 리테일러 ID가 포함될 수도 있습니다.
가이드에서 퀴즈로 이동하는 링크를 클릭하면 브라우저 세션 저장소에 허용 목록의 가이드 슬러그, 로케일, CTA 위치라는 기여도 값만 기술 버전 및 만료 메타데이터와 함께 보관될 수 있습니다. 기여도 정보는 최대 30분 동안만 허용되며 출처가 연결된 Ringprint 요청에 한 번 사용됩니다. 만료된 기록은 무시되고 다음 접근 때 삭제되며, 세션 저장소도 브라우저 탭이나 세션과 함께 종료됩니다. 설문 답변, 예산, 사진, 연락처 정보, 계정 또는 사용자 식별자는 포함하지 않습니다.
허용된 공개 페이지 방문, 퀴즈 시작과 단계 완료, 맞춤형 또는 대체 결과 여부를 측정합니다. 브라우저 세션 저장소는 고정된 유입 페이지·언어·채널·캠페인 분류와 단계 표시를 최대 30분 보관하며 만료된 정보는 다음 접근 때 삭제합니다. 유입 URL은 기기에서 분류하고 전체 URL, 검색어, 개인 식별자는 보내지 않습니다. 집계는 고유 사용자 수가 아닌 탭 활동을 나타냅니다. 이어서 진행할 수 있도록 웹사이트는 선택과 무료 결과를 사용 후 최대 7일 동안 이 브라우저의 로컬 저장소에 보관합니다. 사진 파일과 메모 입력은 저장하지 않지만 생성된 결과에 메모 내용이 반영될 수 있습니다. 새로 시작하거나 브라우저 데이터를 지우면 이 무료 세션이 삭제됩니다. 유료 플랜은 별도로 저장됩니다.
이벤트는 호스팅 업체의 보존 설정에 따라 배포 로그에 기록될 수 있습니다. 고정 분류별 일일 합계는 서버에 UTC 기준 90일 동안 보관하고 다음 이벤트 기록 시 오래된 합계를 삭제합니다. 제3자 분석 서비스에 전송하지 않습니다. 답변, 사진, 연락처, 계정 또는 사용자 식별자는 포함하지 않습니다. 웹과 앱의 플랜 제안, 결제 결과, 유용한 플랜 작업도 구분해 집계합니다. 검증된 결제·제공·환불 집계는 결제 제공업체에서 가져오며 테스트 결제는 제외합니다. 무작위 이벤트 ID와 해시 처리된 결제 참조로 중복 집계를 막고, 90일 분석 보관 기간이 지나면 삭제합니다. 이는 이벤트 수이며 고유 고객 수나 매출 증가의 증거가 아닙니다.
유료 팩과 Stripe
선택형 유료 팩의 일회성 결제는 Stripe가 처리합니다. RingMatcher는 영수증 이메일, 선택한 팩, 서버가 정한 금액과 통화, 생성된 요청 및 PaymentIntent 식별자를 Stripe에 전송합니다. 결제 정보는 Stripe의 Payment Element가 수집하며 RingMatcher는 전체 카드 번호나 보안 코드를 받거나 저장하지 않습니다. 구매가 확인되면 RingMatcher는 이메일 발송 업체인 Resend를 통해 해당 주소로 플랜 링크를 보냅니다. 플랜에서 원하는 주소로 링크를 보낼 수도 있습니다. Resend는 주소와 링크를 받으며, 링크 자체에 플랜 내용이 담겨 있습니다(Couple’s Edition은 공동 정렬 페이지). Resend의 약관과 보존 정책이 적용됩니다.
Stripe 메타데이터에는 생성된 식별자, 결제 및 이행 상태, 브라우저 접근에 연결된 단방향 해시만 포함되며 설문 답변, 사진, 비공개 메모, 플랜 내용은 포함되지 않습니다. 팩별 HttpOnly·SameSite 쿠키는 최대 100일, 보류 중 결제 기록은 해당 브라우저의 로컬 저장소에 최대 30일 남을 수 있습니다. Stripe의 약관과 개인정보 처리방침이 적용됩니다.
프로덕션 웹사이트에서 유료 플랜 세션은 보호된 서버 볼륨에 저장되며 일반적인 재시작 및 배포 후 복원됩니다. Shortlist와 Complete Plan 세션은 30일 후, Couple’s Edition 세션은 90일 후 만료됩니다. RingMatcher는 삭제 요청을 완료하면 세션을 더 일찍 삭제할 수 있습니다. 후보 정보와 검토 결과는 플랜 세션에 저장됩니다. 수정은 기존 후보를 교체하며 이용 기간을 늘리지 않습니다. 서버 PDF 생성에는 유효한 접근 권한이 필요합니다. 플랜이 이 브라우저에 남아 있으면 만료 후에도 로컬 HTML 사본을 내보낼 수 있으나, 브라우저 데이터를 지우면 사본이 사라질 수 있습니다. 다운로드한 플랜은 유료 도구의 접근 권한을 복구하지 않습니다. 웹사이트에서 구매한 Complete Plan과 Couple’s Edition의 플랜을 작성하기 위해 RingMatcher는 플랜의 답변과 Ringprint(선택 메모 제외), 조정 요청, 입력한 후보 정보(견적 메모 포함)를 OpenRouter와 OpenRouter가 라우팅하는 AI 모델 제공자에게 보내며, 무보존과 수집 거부 설정을 요청합니다. 해당 서비스를 사용할 수 없으면 대신 규칙 기반 플랜을 사용합니다.
RingMatcher가 판매하지 않는 것
RingMatcher는 반지나 개인정보를 판매하지 않습니다. 계정, 결제, 분석, 저장 또는 모델 제공자가 바뀌면 변경된 서비스를 공개하기 전에 이 페이지를 검토해야 합니다. 개인정보 질문은 contact@ringmatcher.com으로 보내세요.