送信する回答
無料フローは選択したスタイルと買い物に関する回答、任意のメモを処理します。結果を要求したときだけRingMatcherサーバーへ送信され、結果の作成と検証に使われます。
ウェブサイトでもネイティブアプリでも、RingMatcherサーバーはこれらの回答と任意のメモをOpenRouterへ転送し、OpenRouterが結果を作成するAIモデル提供者へ振り分けます。ゼロ保持と収集拒否の設定を要求します。その後、サーバーは結果が選択内容に沿っているかを確認し、AIサービスが利用できない場合や確認を通過しない場合は、代わりにルールに基づく結果を作成します。
任意画像とAI処理
写真は任意で、顔写真は不要です。最大3枚がブラウザで縮小され、そのリクエスト用に設定された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日保持し、次のイベント記録時に古い合計を削除します。外部分析サービスには送りません。回答、写真、連絡先、アカウントやユーザー識別子は含みません。 プランの提示、決済結果、プランの有用な操作も、ウェブとアプリを分けて集計します。確認済みの支払い、提供、返金の集計は決済事業者から取得し、テスト決済は除外します。ランダムなイベントIDとハッシュ化した決済参照で重複を防ぎ、分析データの保持期間90日が経過すると削除します。これはイベント数であり、個別の顧客数や売上増加の証明ではありません。
有料パックとStripe
任意の有料パックの1回払いはStripeが処理します。RingMatcherは、領収書用メールアドレス、選択したパック、サーバーが設定した金額と通貨、生成されたリクエストIDとPaymentIntent IDをStripeへ送信します。支払い情報はStripeのPayment Elementが収集し、RingMatcherが完全なカード番号やセキュリティコードを受信または保存することはありません。購入が確認されると、RingMatcherは当社のメール配信事業者Resendを通じて、そのメールアドレスにプランへのリンクを送信します。プランから任意のアドレスにリンクを送ることもできます。Resendはアドレスとリンクを受け取り、リンク自体にプランの内容が含まれます(Couple’s Editionの場合は共有アラインメントページ)。Resendの規約と保存方針が適用されます。
Stripeのメタデータに含まれるのは、生成されたID、支払いと提供処理の状態、ブラウザーのアクセスに結び付く一方向ハッシュのみで、質問への回答、写真、個人的なメモ、プランの内容は含まれません。パックごとのHttpOnly・SameSite Cookieは最長100日、保留中の支払い記録はそのブラウザーのローカルストレージに最長30日保存される場合があります。Stripeの規約とプライバシーポリシーが適用されます。
本番サイトでは、有料プランのセッションを保護されたサーバーボリュームに保存し、通常の再起動やデプロイ後に復元します。Shortlist と Complete Plan のセッションは30日後、Couple’s Edition は90日後に期限切れとなります。RingMatcherは削除依頼を完了した時点で、セッションをそれ以前に削除する場合があります。 候補の詳細と確認結果はプランのセッションに保存されます。編集は既存候補の置き換えとなり、利用期間は延長されません。サーバーでのPDF作成には有効なアクセス権が必要です。このブラウザーにプランが残っていれば、期限後もローカルHTMLコピーを書き出せますが、ブラウザーデータの削除で失われる場合があります。ダウンロードしたプランで有料ツールの利用権は復元できません。ウェブサイトで購入したComplete PlanとCouple’s Editionでは、プラン作成のため、プランの回答とRingprint(任意のメモを除く)、調整リクエスト、入力した候補の詳細(見積もりメモを含む)をOpenRouterと、そこから振り分けられるAIモデル提供者へ送信し、ゼロ保持と収集拒否の設定を要求します。このサービスが利用できない場合は、ルールに基づくプランを代わりに使用します。
RingMatcherが販売しないもの
RingMatcherは指輪も個人データも販売しません。アカウント、決済、分析、保存、モデル提供者が変わる場合は、変更後のサービス公開前にこのページを見直します。プライバシーに関する質問はcontact@ringmatcher.comへお送りください。