SocialHub.AI
開発者センター · Web サインアップ フォーム

独自の Web サイトからサインアップを収集します。

店内の QR コードはすでに会員を獲得しています。これは Web でも同じで、HTML フォームをコピーして任意のページにドロップします。同じ キャプチャ パイプライン にポストするため、Web サイトのサインアップは同一の同意レコード、ウェルカム クーポン、ボット防御、および QR スキャンとしての CCPA 処理を取得します。キーも SDK もバックエンドもありません。

01 — 仕組み

1 つのフォーム、1 つのエンドポイントに投稿

フォーム POST は、ストアのキャプチャ エンドポイントへの小さな JSON 本文です。エンドポイントは CORS 対応であるため、フォームは独自のドメインから機能します。ユーザー側でプロキシやサーバー コードを使用する必要はありません。

POST https://flash.socialhub.ai/api/flash/capture/YOUR_SHORT_CODE

ショートコードを取得する

すべての店舗の QR コードにはショート コードがあります (店舗 → ストアを開く → QR コード)。これをエンドポイント URL で使用します。これにより店舗とブランドが識別され、キーは必要ありません。

フォームを貼り付けます

自己完結型スニペットを任意のページにドロップします。フォームをレンダリングし、ボット防御を実行し、送信時に投稿します。

残りは Flash が行います

1 つの統合連絡先が作成または更新され、同意が記録され、QR コードにウェルカム クーポンがある場合は、店内キャプチャとまったく同じようにクーポンが発行されます。

02 — インストール

YOUR_SHORT_CODEを設定して貼り付けてください。

自己完結型 - 外部スクリプトや依存関係はありません。サイトに合わせてスタイルを調整してください。website ハニーポットと _t timestamp は隠しておいてください。これらはボット対策です。また、ストア → QR コード → 「ウェブサイトに埋め込む」で、特定のストア向けにこのスニペットを生成することもできます。

index.html
<!-- SocialHub signup form — paste anywhere in your site's HTML -->
<form class="flash-signup" style="max-width:340px;font-family:sans-serif">
  <input type="email" name="email" required placeholder="Email address"
    style="width:100%;padding:10px;margin-bottom:8px;border:1px solid #ccc;border-radius:6px" />
  <label style="display:block;font-size:13px;margin-bottom:8px">
    <input type="checkbox" name="opt_in" checked /> Send me offers and updates
  </label>
  <!-- honeypot: real people never fill this; bots do -->
  <input type="text" name="website" tabindex="-1" autocomplete="off"
    style="position:absolute;left:-9999px" aria-hidden="true" />
  <button type="submit" style="width:100%;padding:10px;border:0;border-radius:6px;background:#111;color:#fff;cursor:pointer">Sign up</button>
</form>
<script>
(function () {
  var f = document.currentScript.previousElementSibling;
  var t = Date.now();                                  // render time — the min-fill-time bot check
  f.addEventListener("submit", function (e) {
    e.preventDefault();
    fetch("https://flash.socialhub.ai/api/flash/capture/YOUR_SHORT_CODE", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        email: f.email.value,
        opt_in: f.opt_in.checked,
        _t: String(t),
        website: f.website.value                       // honeypot value
      })
    })
      .then(function (r) { return r.json(); })
      .then(function (d) { f.innerHTML = d && d.success ? "<p>Thanks — you're signed up!</p>" : "<p>Sorry, something went wrong.</p>"; })
      .catch(function () { f.innerHTML = "<p>Sorry, something went wrong.</p>"; });
  });
})();
</script>
03 — 契約のリクエスト

JSONボディ

application/json を送信します。応答は、受け入れられた場合は { success: true, couponCode?, couponExpiresAt?, isRepeat } であり、それ以外の場合はエラー コードを含む success:false です。

分野タイプ注意事項
emailstring購読者の電子メール。必須。
opt_inbooleanチェックボックスからのマーケティング同意。キャプチャーで記録しました。
_tstringフォームがレンダリングされたときのミリ秒エポック — min-fill-time ボット チェックを強化します。必須。
websitestring?ハニーポットフィールド。非表示にして空欄のままにしてください。値が入力されている場合はボットとして扱われます。
fpstring?ユーザーが生成するオプションのデバイス フィンガープリント。
04 — 保護

組み込まれたボット防御機能

ショート コードは公開されている (ページ ソース内にある) ため、エンドポイントはサーバー側で自身を防御します。これは、店舗内キャプチャ フローと同じ保護です。

レート制限・常時稼働

エンドポイントは 1 つのソースが送信できるサインアップの数を制限するため、コピーされたショート コードがリストに溢れることはありません。

ハニーポット + タイミング

非表示のウェブサイト フィールドと _t レンダリング timestamp は、非表示のフィールドに入力したり、即座に送信したりするスクリプトによる送信を検出します。

使い捨てメール + 二重ガード

使い捨てドメインは拒否され、同じストアで繰り返されるメールは二重にカウントされるのではなく、重複が排除されます。

限界について正直に

これらは公的形式の基準を引き上げます。高機密の取り込みの場合は、代わりに認証された API を介してサーバー間で送信します。

05 — 同意とプライバシー

単なるアドレスではなく同意を取得する

オプトインは記録されます

opt_in チェックボックスはキャプチャとともに保存されるため、ダウンストリームは訪問者がマーケティングに同意したかどうかを尊重します。

CCPA 対応

QR フローと同じ開示処理 - カリフォルニア州の訪問者はサーバー側で必要な通知を受け取ります。

ページに秘密はありません

公開されているショートコードのみが公開されます。サイトには漏洩する API キーはありません。

まずは同意バナーを

同意マネージャーを使用する場合は、その背後でフォームをゲートして、権利のある場所のみを収集できるようにします。

顧客がどこにいてもキャプチャ

ストアでは QR 経由で、そしてウェブサイトではすべてのサインアップが同じ統一されたメンバー プロフィールに表示されます。