スマートリンク. One link, many destinations.
デバイス、地理情報、言語、時間帯に基づいてルーティングを行います。ルールはエッジPOPで評価され、最初に一致したものが適用されます。一致しない場合はデフォルトの遷移先へリダイレクトされます。通常のキャッシュヒット時のリダイレクトに追加費用はかかりません。
- First-match rule engine at the edge
- Sub-millisecond rule evaluation
- A/B variants with z-test confidence
- Time-windowed campaigns in UTC
How it works
The redirect path, end to end
Smart-link rules are evaluated inside the same edge process that answers the redirect — there is no separate rules service to call. A cache-hit redirect with rules is indistinguishable from a plain one in latency.
- Step 1
User clicks
elido.me/xFrom email, QR, social, anywhere.
- Step 2
Nearest edge POP
Frankfurt · 4 msAnycast routes to Hetzner FRA / OVH SGP / Hetzner ASH.
- Step 3
Rule eval
L1 cache · 0.2 msFirst-match wins, no origin round-trip.
- Step 4
302 → destination
elido.me/x → /de/preiseClick event fired async to Redpanda.
Rule builder
Rules that read like English
Every rule combines up to six dimensions — geo, device, OS, language, referrer, and time — joined with AND. Drag to reorder; first match wins. The fallback is always required, so a rule set never produces a 404.
- CountryISO 3166-1 alpha-2 lists, e.g. DE, AT, CH
- Device & OSiOS, Android, Windows, macOS, Linux
- LanguageAccept-Language with BCP-47 fallbacks
- Time windowUTC range with day-of-week filter
- ReferrerExact or wildcard host match
- 1ifCountry: DE, AT, CHANDDevice: Mobile/de/preise⋮⋮
- 2ifCountry: FR, BEANDLanguage: fr-*/fr/tarifs⋮⋮
- 3ifOS: iOSApp Store · apps.apple.com/...⋮⋮
- 4ifTime: Mon–Fri 09–17 UTCANDReferrer: newsletter.*/promo/q2⋮⋮
- else/en/pricing— fallback (required)
Real-world routing
Same short link. Different landing per visitor.
The two patterns we see most: device-fork to native app stores with a desktop fallback, and country-fork for localised pricing pages. Both compose with A/B splits on the fallback path.
Country routing in production
An EU SaaS routing brand.app/pricing by visitor country. The fallback (everyone else) lands on the English page.
- DE · Germany/de/preise
- FR · France/fr/tarifs
- ES · Spain/es/precios
- IT · Italy/it/prezzi
- PL · Poland/pl/cennik
- NL · Netherlands/nl/prijzen
- SE · Sweden/sv/priser
- UA · Ukraine/uk/tsiny
- — · Everyone else/en/pricing
A/B testing
Split traffic. Watch confidence climb.
Up to 5 variants per link with weighted or round-robin splits. Each variant tracks its own click time-series. The dashboard surfaces a two-proportion z-test as a directional indicator — we don’t hide the math.
- Weighted (sums to 100) or round-robin
- Per-variant click time-series
- Z-test confidence over a configurable sample floor
- Winner-picks-all locks the link to the leading variant
- Composes with rules — A/B applies to the fallback path
What you can do
- ISO国コードとIANAタイムゾーンの一致
- モバイル / タブレット / デスクトップのターゲティング
- 曜日フィルター付きの時間枠設定
- パワーユーザー向けのUser-Agent正規表現
- リンクごとのクリック上限設定 (max_clicks)
- 重み付けまたはラウンドロビンによるA/Bバリアント
スマートリンク・ルールエンジンの仕組み
地理情報によるルーティングやデバイスターゲティングは当然の機能です。以下では、基本的な実装では対応が難しいエッジケースへの対応について解説します。
最初に一致したルールを適用、エッジPOPで評価(オリジンへの通信なし)
ルールはRedis(L2キャッシュ)に保存され、リダイレクトを実行する同一プロセス内のedge-redirectサービスによってリクエストごとに評価されます。個別のルールエンジンを呼び出す必要はありません。ルールの評価による遅延は、キャッシュヒット時のリダイレクトにおいて1ミリ秒未満です。評価順序はダッシュボードまたはAPIで設定した順序に従い、ドラッグによる並べ替えやAPIのorderフィールドで調整可能です。最初に一致したルールが適用されるため、具体的なルール(例:「モバイル + ドイツ + 月曜朝 → プロモーションページ」)を先に配置し、包括的なルールを最後に配置してください。どのルールにも一致しない場合は、必須項目であるデフォルトの遷移先(フォールバック)へ誘導されます。ルールの変更はapi-coreからRedisへ30秒以内に反映されます。ルールを含むリンクに対するエッジのLRUキャッシュのTTLは60秒であるため、全体で90秒以内に反映が完了します。
6つの次元:地理情報、デバイス、OS、言語、リファラー、時間
各ルールは、1つの条件で最大6つの次元を組み合わせることができます。地理情報:ISO 3166-1 alpha-2国コードリスト(1つまたは複数)。デバイス:User-Agentから判別されるモバイル、タブレット、デスクトップ。OS:User-Agentから判別されるiOS、Android、Windows、macOS、Linux。言語:Accept-Languageヘッダーとの一致(BCP 47言語タグ。「fr」は「fr-FR」や「fr-CA」などに一致)。リファラー:Refererヘッダーのドメインとの完全一致またはワイルドカード一致(SNS、メール、ダイレクト流入の振り分けに有効)。時間:UTC時間枠と任意の曜日フィルター(例:「月〜金 09:00〜17:00 UTC」)。パワーユーザー向けには特定のブラウザバージョンやクローラーを対象としたUser-Agent正規表現も利用可能です。これはデフォルトではダッシュボードには表示されず、API経由でのみ設定できます。1つのルール内の複数次元はAND条件で結合されます。リンクあたりのルール数はProプランで最大5つ、Businessプランでは無制限です。
z検定による信頼度付きの重み付けA/Bテスト — 1リンクにつき最大5つのバリアント
1つのリンクで最大5つの遷移先バリアントを設定できます。トラフィックは重み付け(各バリアントの合計が100になるように設定)またはラウンドロビンで分割されます。各バリアントは個別にクリックの時系列データを追跡するため、時間帯による効果の変動を確認できます。信頼度モデルにはクリックレベルでの2比率z検定を採用しています。両方のバリアントが最小サンプル数(デフォルトは各200クリック、最大1,000まで設定可能)に達すると、ダッシュボードに「バリアントAがX%の信頼度でリード」と表示されます。数値は生のz検定信頼度であり、逐次検定の補正は行われません。A/Bテストとスマートリンクのルールは併用可能です。まずルールが評価され、どのルールにも一致しない場合にのみA/Bテストが適用されます。例えば、iOSユーザーは特定のページに誘導しつつ、それ以外のユーザーに対して2つの遷移先でA/Bテストを行うといった運用が可能です。「勝者を決定」ボタンを押すと、リードしているバリアントに固定され、他のバリアントは削除されます。この操作は取り消せません。
季節やイベントに合わせた時間枠指定ルール
時間ルールを使用すると、手動操作なしでルールの有効化・無効化をスケジュール設定できます。代表的な例として、ブラックフライデーの00:00 UTCからサイバーマンデーの23:59 UTCまでプロモーションページを有効にし、終了後は自動的に恒常的なページへ戻すといった運用が可能です。ルールはUTCで評価されるため、タイムゾーンに依存するキャンペーンの場合は設定時にUTCへ変換してください。スケジュールされたルールも、静的なルールと同様にエッジで評価されるため、オリジンへの通信は発生しません。ダッシュボードではスケジュールされたルールがタイムライン形式で表示され、重複も一目で確認できます。2つの時間枠ルールが重複し、両方に一致する場合は、順位インデックスが小さい(先に設定されている)方が優先されます。競合の自動検出機能はないため、設定時に重複を確認してください。
フォールバック先の指定は必須 — ルール不一致による404エラーを防ぐ
すべてのスマートリンクには、フォールバック(デフォルトの遷移先)の設定が必須です。「ルールに一致しない場合にエラーページを表示する」というオプションはなく、フォールバックがセーフティネットとして機能します。フォールバック先には任意のURLを指定でき、Google Botなどのクローラーに対しても正規の遷移先として提示されます(インデックスの混乱を避けるため、既知のクローラーにはルールは適用されません)。また、リンクの有効期限(expires_at)やクリック上限(max_clicks)に対しても、ルールのフォールバックとは別に期限切れ専用の遷移先URLを設定できます。つまり、1つのリンクに「最大5つのルーティングルール」「不一致時のフォールバック」「期限切れ後の遷移先」「上限到達後の遷移先」を組み合わせて設定することが可能です。これらは整合性を保って動作します。詳細はガイドを参照してください。
本番環境でスマートリンクを活用しているチーム
現在、名称はプレースホルダーです。事例が公開され次第、実際の顧客名に更新されます。
“40ミリ秒の遅延が発生していた自前のNode.jsリダイレクトサービスを廃止しました。Elidoのスマートリンクはエッジでルールを評価するため、リダイレクト速度は通常の短縮URLと変わりません。おかげで600行ものコードを保守する手間が省けました。”
“季節限定コンテンツに時間枠ルールを適用することで、事前にキャンペーンを設定して安心して休めるようになりました。以前は深夜2時に手動でリダイレクトを変更していましたが、今ではスケジュール設定をして、翌朝結果を確認するだけです。”
“ダッシュボードにA/Bテストの信頼度が表示されるようになり、スタンドアップでの『それは統計的に有意か?』という議論がなくなりました。z検定の数値を確認し、閾値を決めるだけで、次のステップへ進めます。”
Elidoのスマートリンク vs Bitly / Rebrandly の地理情報リダイレクト
BitlyとRebrandlyも地理情報ルーティングを提供していますが、ルールの深さ、評価の遅延、A/Bテスト機能において違いがあります。
| Feature | Elido | Bitly | Rebrandly |
|---|---|---|---|
| ルールの判定次元 | 地理情報、デバイス、OS、言語、リファラー、時間 | 地理情報 + デバイス(制限あり) | 地理情報 + デバイス |
| リンクあたりのA/Bバリアント | 最大5つ — 重み付け + z検定信頼度 | 利用不可 | 利用不可 |
| エッジでのルール評価 | はい — オリジン通信なし | エッジからのリダイレクト。ルール評価はプランによる | プランによる |
| ルールの反映時間 | 90秒以内 | 非公開 | 非公開 |
| スケジュール / 時間枠指定ルール | はい — UTC時間枠、曜日フィルター | 利用不可 | 利用不可 |
| リンクあたりの最大ルール数 | Proは5つ、Businessは無制限 | 地理情報:1リンクにつき1つ | プランによる |
| フォールバック先 | 必須、カスタマイズ可能 | デフォルトの遷移先 | デフォルトの遷移先 |
| クリック上限 | はい — リンクごと、バリアントごと | 利用不可 | 利用不可 |
スマートリンクに関するFAQ
ルールの変更はどのくらいで反映されますか?
保存後30秒以内にapi-coreからRedisへ反映されます。edge-redirectサービスは、ルールが設定されたリンクに対してTTL 60秒のインプロセスLRUキャッシュを保持しています。最悪の場合でも、反映は90秒以内に完了します。ライブイベントの切り替えなどで即時反映が必要な場合は、APIのキャッシュクリアエンドポイントを使用してRedisを即座に無効化できます。これにより、エッジのLRUキャッシュミスが発生し、数秒以内にRedisから最新のルールが取得されます。
2つのルールが同一リクエストに一致した場合はどうなりますか?
最初に一致したルールが適用されます(順序インデックスが最も小さいもの)。ルールの競合検出やマージ機能はありません。ルールの順序を正しく設定し、時間枠や国リストの重複を避けるのはユーザーの責任となります。ダッシュボードのプレビューツールを使用してテストリクエストをシミュレートし、どのルールが適用されるかを確認できます。
Google Botなどのクローラーにもルールは適用されますか?
いいえ。既知のクローラーのUser-Agentパターンはルール評価から除外され、常にフォールバック先へ誘導されます。これは、スマートリンクのルーティングが検索エンジンのインデックス動作に影響を与えたり、意図せず地域固有のコンテンツをクローラーに提供したりするのを防ぐためです。除外リストは、エッジでオーガニックトラフィックとボットトラフィックを分類する際に使用されるものと同一です。
z検定の信頼度はどのように計算されますか?
クリックレベルでの2比率z検定を使用しています。帰無仮説は「両方のバリアントが同じクリック率を持つ」というものです。信頼度は「1 - p値」をパーセンテージで表したものです。複数バリアントに対するボンフェローニ補正は適用されていないため、2つを超えるバリアントを比較すると偽陽性率が高まります。厳密な実験が必要な場合は、生のクリックデータをエクスポートしてデータウェアハウスで有意差検定を行ってください。ダッシュボードの数値は、決定的な結論ではなく、あくまで方向性を示す指標として提供しています。
特定のリファラーに基づいてルーティングすることは可能ですか?
はい。リファラードメインの一致は6つの判定次元の1つです。特定のドメイン(例:'newsletter.example.com')やワイルドカード('*.example.com')を指定できます。判定にはRefererヘッダーを使用しますが、HTTPSのリファラー削除(referrer-stripping)により、外部のHTTPSサイトから常にリファラーを取得できるとは限りません。特にRefererが欠落しがちなメール内のリンクなどでは、地理情報やデバイスルールに比べて信頼性が低くなります。
無料プランでもスマートリンクは使えますか?
いいえ。スマートリンクはProおよびBusinessプラン専用の機能です。無料プランのリンクは単一の遷移先にのみリダイレクトされ、ルーティングルールは設定できません。無料プランでもルール設定画面のプレビューは可能ですが、アップグレードするまでエッジでの評価は行われません。
バリアントごとの分析データはありますか?
はい。A/Bテストの各バリアントには、リンク分析画面で個別のクリック時系列データが表示されます。ただし、地理情報、デバイス、リファラーの内訳はリンク全体で集計されます。バリアントごとの属性内訳はBusinessプランのロードマップに含まれています。
スマートリンクとキャンペーンA/Bテストの違いは何ですか?
スマートリンクのA/Bテストはリンク単位で行われ、1つの短縮URLに対して異なる遷移先にトラフィックを分散させます。一方、キャンペーンA/Bテストはキャンペーン単位で行われ、同じ遷移先に対して2つの異なる短縮URL(異なるスラッグ)を発行し、どちらのスラッグがより多くのクリックを獲得したかを比較します。遷移先の検証にはリンク単位のA/Bテストを、クリエイティブやスラッグの検証にはキャンペーン単位のA/Bテストを使用します。
Keep reading
Universal Links + App Links。スマートリンクのルールと連携して動作するモバイル特化型のルーティングレイヤーです。
キャンペーン単位のA/Bテスト、UTMテンプレート、スケジュール書き出しなど、スマートリンクを基盤としたキャンペーンワークフローです。
クリックデータ、地理/デバイス別の内訳、コホート表示など。スマートリンクのトラフィックが ClickHouse でどのように可視化されるかを確認できます。
フィーチャーフラグのルーティング、オンボーディング、アプリ内シェアなど、プロダクトチームによるスマートリンクの活用方法です。