コンテンツにスキップ

SSLクリックトラッキングのトラブルシューティング

このページでは、SSLクリックトラッキングに関する一般的な問題を特定します。以下のガイダンスは、CDNがそれぞれ固有であるため、一般的な内容となっています。CDNの設定、証明書、またはプロキシの問題については、CDNのサポートチームにお問い合わせください。これらの設定はBrazeの外部で行われます。

まずはここから:症状を確認する

症状 参照先
メールの開封率が急に低下した メールの開封率が低い
トラッキングリンクがHTTP 403を返す リダイレクトリンクでHTTP 403が発生する
DNSまたはCNAMEがCDNではなくESPを指している ドメインレジストリの問題
「接続がプライベートではありません」エラーまたは設定中にリンクが壊れる CDNの問題
SSLの設定が完了したがリンクがまだHTTPのまま SSLの有効化ステータス
トラッキング付きURLは失敗するがトラッキングなしURLは動作する クリックトラッキングの問題
Amazon SES固有のSSL有効化エラー Amazon SES

標準的な調査パス

  1. クリックトラッキングサブドメインが、メールサービスプロバイダー(SendGrid、SparkPost、またはAmazon SES)ではなく、コンテンツデリバリーネットワーク(CDN)を指していることを確認します。ITまたはWebチームに、ドメイン設定がBraze設定と一致していることを確認してもらいます。Brazeの要件については、SSL証明書の取得を参照してください。
  2. トラッキングドメインのSSL証明書が有効であることを確認します。ITまたはWebチームに、証明書が最新であり、クリックトラッキングサブドメインをカバーしていることを確認してもらいます。設定手順とCDN固有のガイドについては、SSL証明書の取得追加リソースを参照してください。
  3. クリックトラッキングのトラブルシューティングテンプレートを使用してテストメールを送信します。トラッキングされたURLとトラッキングされていないURLを比較します。
  4. トラッキングリンクが403エラーで失敗する場合は、CDNおよびWAFルール(ユーザーエージェント、クエリ文字列、リダイレクトパターン)を確認してください。
  5. 設定が完了してもリンクがHTTPのままの場合は、BrazeがSSLを有効にしているかどうか、Brazeのカスタマーサクセスマネージャーに確認してください。
  6. 問題が解消されない場合は、CDNまたはITチームと連携し、エラーコードおよびCDNまたはドメインプロバイダーからの詳細情報を添えてBrazeサポートにお問い合わせください。

主な概念

  • クリックトラッキングドメイン(CTD): Brazeがクリックトラッキングのためにリンクをラップする際に使用するブランド付きサブドメインです(例:clicks.mail.yourbrand.com)。
  • トラッキングURL: 元のHTTPSリンクをトラッキングドメインでラップします。ユーザーがクリックすると、トラッキングドメインがリクエストを解決し、最終的な送信先にリダイレクトします。CDNを使用することで、セキュアな(HTTPS)URLをトラッキングできます。CDNがない場合、ユーザーに「接続が安全ではありません」というプライバシーエラーが表示されることがあります。
  • 非トラッキングURL: 元のURLをそのまま維持し、CDNをバイパスしてコントロール環境として機能します。
  • フェーズ1とフェーズ2のルーティング: フェーズ1では、クリックトラッキングドメインのCNAMEをメールサービスプロバイダー(ESP)に直接向けて、初期HTTP検証を行います。フェーズ2では、CNAMEをCDNまたはWebアプリケーションファイアウォール(WAF)に向け、SSLを終端してESPに必要なヘッダーを付与してリクエストをプロキシします。ESP固有のCNAME送信先については、ESPフェーズ1とフェーズ2のルーティングを参照してください。

クリックトラッキングドメインとDNSフェーズ

SSLクリックトラッキングには、Brazeが外部のセキュリティ証明書のプロビジョニングや更新を代行しないため、2段階のDNS設定が必要です。

  1. フェーズ1(初期設定):クリックトラッキングドメインのCNAMEが、暗号化されていないHTTP検証のためにメールサービスプロバイダー (ESP)のエンドポイントを直接指します。
  2. フェーズ2(SSLデプロイ):CNAMEをCDNまたはWAFエッジに更新します。このエッジにはカスタムSSL証明書が保持されており、必要なヘッダーを付けてリクエストをメールサービスプロバイダー (ESP)にプロキシします。メールサービスプロバイダー (ESP)がクリックを記録し、受信者を最終的なリンク先にリダイレクトします。

ESPフェーズ1およびフェーズ2ルーティング

リンクトラッキングエラーのトラブルシューティングを行う際は、DNSレコードが暗号化されていないESPネットワーク(フェーズ1)を指しているか、CDN(フェーズ2)を指しているかを確認してください。

メールサービスプロバイダー (ESP) フェーズ1 CNAME送信先(ESPへの直接接続) フェーズ2 CNAME送信先 必要なCDN設定
Amazon SES r.us-east-1.awstrack.me(US)
r.eu-central-1.awstrack.me(EU)
CDNエンドポイント(例:d123.cloudfront.netssl.fastly.net、またはCloudflare) クリックトラッキングドメイン名を含むX-Forwarded-Hostヘッダーを有効にします
SendGrid sendgrid.net CDNエンドポイント 元のHostヘッダー(またはカスタムブランドトラッキングID)をパラメーターを削除せずにオリジンに転送します
SparkPost spgo.io CDNエンドポイント X-Forwarded-Hostを有効にし、元のUser-Agentヘッダーをそのまま転送します

CDNの設定手順とパートナードキュメントについては、BrazeでのSSLを参照してください。

SSL名前不一致エラー

SSL名前不一致は、TLSハンドシェイク中に発生するID認証の失敗です。ブラウザーが暗号化された接続を確立する際に、アドレスバーのドメインが証明書のコモンネーム(CN)またはサブジェクト代替名(SAN)フィールドのいずれのエントリとも一致しない場合に発生します。

DNSがまだメールサービスプロバイダー(ESP)を指している(フェーズ1)

BrazeにSSLクリックトラッキングを有効にするよう指示したにもかかわらず、DNSのCNAMEがメールサービスプロバイダー(ESP)(例:SendGridのsendgrid.net)を直接指したままの場合、受信者のブラウザーはクリックトラッキングドメインを開き、メールサービスプロバイダー(ESP)のインフラに到達します。メールサービスプロバイダー(ESP)にはカスタム証明書の記録がないため、独自のフォールバック証明書(例:*.sendgrid.net)を提供します。名前の不一致により接続が失敗し、プライベート接続の警告が返されます。

証明書がトラッキングサブドメインをカバーしていない(フェーズ2)

DNSがCDN(Cloudflare、CloudFrontなど)を指しているにもかかわらず、セキュリティチームがプライマリWebアセット(例:yourbrand.comwww.yourbrand.com)のみをカバーする証明書を適用した場合、特定のクリックトラッキングサブドメイン(例:clicks.mail.yourbrand.com)が含まれていません。CDNはトラッキングドメインと一致しない証明書を提供し、ブラウザーにプライバシーエラーが表示されます。

トリアージワークフロー

ステップ1:正式なCNAMEルックアップを実行する

ターミナルを開き、クリックトラッキングドメインの生のDNSルーティングを確認します。

dig CNAME clicks.mail.yourbrand.com

ANSWER SECTIONで、CNAMEの解決先を確認します。

結果 意味 次のステップ
メールサービスプロバイダー (ESP)のエンドポイントに解決される(sendgrid.netspgo.io、またはawstrack.me DNSはまだフェーズ1の状態です ドメインレジストリを更新して、トラフィックをCDN経由でルーティングしてください。ESPフェーズ1とフェーズ2のルーティングを参照してください。
CDNディストリビューションエンドポイントに解決される フェーズ2のDNSルーティングは正しい状態です ステップ2に進んでください

ステップ2:TLS証明書を検証する

クリックトラッキングドメインに対してライブTLS検証を強制的に実行し、ブラウザーが受信する証明書を正確に確認します。クリックトラッキングドメインを外部のSSLチェッカーに入力してください。例えば、SSL ShopperのSSL Checkerclicks.mail.yourbrand.comをご自身のドメインに置き換えてください)が利用できます。

以下を確認してください。

  • 証明書が有効で、期限切れでないこと
  • クリックトラッキングドメインがCommon NameまたはSubject Alternative Namesに表示されていること
  • 証明書チェーンが完全で、信頼されていない中間証明書の警告がないこと

ステップ3:CDN設定の問題を確認する

設定中にライブメールのリンクが壊れる場合は、設定が完了する前にDNSがCDNに向けられていなかったか確認してください。これは、誤ったリンクや接続エラーとして表示されることがあります。CDNプロバイダーに連絡し、プロキシとオリジンの設定をトラブルシューティングするためにプロバイダーのドキュメントを確認してください。さらにサポートが必要な場合は、SSLとCDNの設定を管理しているチームと連携してください。

メール開封率が低い

症状: SSLまたはCDNの変更後にメール開封率が突然低下した。

メール開封率が突然低下している場合は、SSL証明書が最新であることを確認してください。有効期限が切れている場合は、CDNまたは証明書プロバイダーでSSL証明書を更新する必要があります。

症状: トラッキングされたメールリンクが「403 Forbidden」を返す。

トラッキングされたリダイレクトリンクが403 Forbiddenを返す場合、障害はコンテンツデリバリーネットワーク(CDN)またはWebアプリケーションファイアウォール(WAF)で発生していることが多いです。たとえば、AWS WAFやAmazon CloudFrontのルールが特定のユーザーエージェント、クエリ文字列、またはリダイレクトパターンをブロックしている場合があります。CDNまたはクラウドプロバイダーでブロックされたリクエストのログとメトリクスを確認してください。AWSについては、CloudFrontの問題のトラブルシューティングを参照してください。

問題がクリックトラッキングに固有のものかどうかを確認するには、1つのテストリンクでクリックトラッキングをオフにしてください(リンクごとにクリックトラッキングをオフにするを参照)。クリックトラッキングがオフの場合に送信先URLが読み込まれ、トラッキングがオンの場合に403が返される場合は、クリックトラッキングドメイン、CDN、およびWAFの設定に焦点を当ててください。CNAMEがまだメールサービスプロバイダー(ESP)を指しておりSSLが有効になっている場合は、代わりにSSL名前不一致エラーが表示されることがあります。まずトリアージワークフローから始めてください。

ドメインレジストリの問題

症状: トラッキングサブドメインのDNSまたはCNAMEが、CDNではなくESPを指している。

digコマンドを実行して、リンクトラッキングがCDNを指していることを確認してください。ターミナルでdig CNAME link_tracking_subdomainを実行します。ANSWER SECTIONに、CNAMEの指す先が表示されます。CDNではなくメールサービスプロバイダー(ESP)(SendGrid、SparkPost、またはAmazon SES)を指している場合は、ドメインレジストリをCDNを指すように再設定してください。

CDNの問題

症状: ユーザーに「接続がプライベートではありません」というエラーが表示される、またはCDNセットアップ中にリンクが壊れる。

セットアップ中にライブメールリンクが壊れた場合、適切な設定が完了する前にDNSをCDNに向けた可能性があります。これは「間違ったリンク」エラーとして表示されることがあります。CDNプロバイダーに連絡し、ドキュメントを確認して設定のトラブルシューティングを行ってください。

接続がプライベートではないというエラーメッセージが表示された場合、SSLまたはCDNが正しく設定されていない可能性があります。ターミナルでdigコマンドを実行してください(例:dig CNAME your_link_tracking_subdomain)。ANSWER SECTIONで、結果がCDNではなくESPを指している場合、設定ミスの問題です。BrazeのSSLクリックトラッキングが機能するには、CNAMEがCDNを指している必要があります。SSLとCDNの設定を管理するチームと連携して、さらなるサポートを受けてください。

SSLの有効化ステータス

症状: SSLの設定が完了しているのに、トラッキングリンクがHTTPのまま表示される。

SSLの設定を完了してもリンクがHTTPのまま表示される場合は、Brazeのカスタマーサクセスマネージャーに連絡して、BrazeがSSLを有効にしたことを確認してください。Brazeは、すべての設定ステップが完了した後にのみSSLを有効にします。

Amazon SES

メールサービスプロバイダー(ESP)としてAmazon SESを使用している場合、以下の設定の問題がBrazeのSSL有効化を妨げたり、設定中にエラーを引き起こしたりする可能性があります。

  • リージョンの不一致: CDNのオリジンがBrazeクラスターのAWSトラッキングドメインを指していることを確認してください。USクラスターはr.us-east-1.awstrack.meを使用します。EUクラスターはr.eu-central-1.awstrack.meを使用します。間違ったリージョンを使用すると、SSLの有効化がブロックされる可能性があります。
  • ホストヘッダー: Amazon SESでは、CDNが正しいホストヘッダーを転送する必要があります。クリックトラッキングドメインでX-Forwarded-Hostヘッダーを有効にしてください。フェーズ1およびフェーズ2のルーティング要件については、ESPフェーズ1およびフェーズ2のルーティングを参照してください。
  • プロキシ設定: ホストヘッダーを上書きまたは競合するプロキシやCDNの設定は、SSLの有効化を失敗させる可能性があります。CDNプロバイダーとプロキシ設定を確認し、ホストヘッダーの転送を妨げていないことを確認してください。
  • Route 53エイリアスレコード: Route 53を使用してドメインのDNSを管理している場合は、CDNディストリビューション(例:d111111abcdef8.cloudfront.net)を指すRoute 53のエイリアスレコードを作成してください。エイリアスレコードの代わりに標準のCNAMEを使用すると、HTTP 400エラーが返される可能性があります。
  • ヘッダー転送の無効化: X-Forwarded-Hostを設定した後もSSLの有効化が失敗する場合は、CDNまたはプロキシでヘッダー転送を無効にしてみてください。一部の設定では、転送を完全にオフにすることで問題が解決します。ITチームまたはCDNプロバイダーと協力して、この設定をテストしてください。

クリックトラッキングの問題

症状: トラッキングされたメールリンクが失敗するが、トラッキングされていないリンクは機能する。またはユーザーがクリック後に証明書エラーやDNSエラーが表示される。

一般的なリダイレクトの問題は、トラッキングドメインをホストするCDNと、関連するSSL証明書またはDNS CNAMEレコードとの間の不適切な設定に起因することが多いです。これらの設定ミスにより、ユーザーがトラッキングされたメールリンクをクリックした後に「接続が安全ではありません」というプライバシーエラーや404エラーが発生することがよくあります。

クリックトラッキングを機能させるには、メールサービスプロバイダー(ESP)(SendGrid、SparkPost、またはAmazon SES)がHTML内のリンクを検出して置換する必要があります。これらのプロバイダー全体で、リンクは以下のフォーマット要件を満たす必要があります。

  • リンクはhref属性を持つHTML <a>タグ内にある必要があります。
  • URLはhttp://またはhttps://で始まる必要があります。

プロバイダー固有の追加ルール:

  • SendGrid: URLをシングルクォートまたはダブルクォートで囲み、href属性の=の前後にスペースを入れないでください。
  • Amazon SES: URLはRFC 3986に準拠する必要があります。URL内のエンコードされていないスペースがあると、Amazon SESはリンクをトラッキングできません。

BrazeのクリックトラッキングがサポートするURLスキームの詳細については、クリックトラッキングリンクの要件を参照してください。プロバイダーのHTML詳細については、SendGridクリックトラッキングHTMLベストプラクティスSparkPostテンプレート言語、およびAmazon SESメール送信メトリクスFAQを参照してください。

有効な例は以下のとおりです。

<a href="http://www.example.com">Link</a>
<a href='https://example.com'>Link</a>
<a target="_blank" href="https://example.com">Link</a>

以下の例はhttp://またはhttps://が省略されているため、トラッキングされません。

<a href="example.com">Link</a>
<a href="www.example.com">Link</a>

SendGridを使用している場合、以下の例もトラッキングされません。

<a href= http://www.example.com>Link</a>
<a href = "https://example.com">Link</a>

クリックトラッキングのテスト

トリアージワークフローを完了した後、以下のテンプレートを使用してトラッキングドメインのCDN設定をテストしてください。これは、メール内のリンクの分析をサポートするメカニズムです。

  1. 以下のテンプレートをコピーして、BrazeのHTMLメールキャンペーンに貼り付けてください。
クリックトラッキングのトラブルシューティングテンプレート
<!DOCTYPE html>
<html lang="en" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="color-scheme" content="light dark">
    <meta name="supported-color-schemes" content="light dark">
    <title>Click Tracking Test</title>
    <style>
        /* Base Dark Mode (Default) */
        body {
            margin: 0;
            padding: 0;
            background-color: #2b0562;
            font-family: 'Helvetica Neue', Arial, sans-serif;
            color: #ffd1e9;
        }

        .email-container {
            width: 100%;
            max-width: 600px;
            margin: 40px auto;
            background-color: rgba(255, 255, 255, 0.05);
            border: 1px solid #F3697F;
            border-radius: 16px;
            overflow: hidden;
        }

        .header {
            background: linear-gradient(135deg, #E83F21 0%, #F3697F 100%);
            padding: 40px 20px 50px 20px;
            text-align: center;
        }

        .logo {
            display: block;
            margin: 0 auto 25px auto;
            border: 0;
            outline: none;
            text-decoration: none;
        }

        .header h1 {
            color: #ffffff;
            margin: 0;
            font-size: 26px;
            font-weight: 800;
            letter-spacing: -0.5px;
        }

        .content {
            padding: 40px 40px 20px 40px;
            line-height: 1.8;
            font-size: 15px;
        }

        .troubleshoot {
            margin: 0 40px 40px 40px;
            padding: 25px;
            background-color: rgba(253, 167, 216, 0.1);
            border-radius: 12px;
            font-size: 14px;
            border: 1px dashed #F3697F;
        }

        .troubleshoot h2 {
            margin-top: 0;
            font-size: 18px;
            color: #ffffff;
        }

        .btn-section {
            padding: 0 40px 40px 40px;
            text-align: center;
        }

        .btn {
            display: inline-block;
            padding: 16px 32px;
            border-radius: 12px;
            font-weight: 700;
            text-decoration: none;
            margin: 10px;
            font-size: 14px;
        }

        .btn-tracked {
            background-color: #F3697F;
            color: #ffffff;
        }

        .btn-untracked {
            border: 2px solid #FDA7D8;
            color: #FDA7D8;
            background-color: transparent;
        }

        .footer {
            text-align: center;
            font-size: 12px;
            color: #FDA7D8;
            padding-bottom: 40px;
            opacity: 0.6;
        }

        /* Light Mode Overrides */
        @media (prefers-color-scheme: light) {
            body { background-color: #F7FCFF !important; color: #2b0562 !important; }
            .email-container { background-color: #ffffff !important; border: 1px solid #FDA7D8 !important; box-shadow: 0 4px 20px rgba(43, 5, 98, 0.1); }
            .content { color: #2b0562 !important; }
            .troubleshoot { background-color: #F7FCFF !important; border-color: #F3697F !important; color: #2b0562 !important; }
            .troubleshoot h2 { color: #E83F21 !important; }
            .btn-untracked { color: #F3697F !important; border-color: #F3697F !important; }
            .footer { color: #2b0562 !important; }
            strong { color: #E83F21 !important; }
        }

        /* Mobile Optimization */
        @media only screen and (max-width: 480px) {
            .btn { display: block !important; margin: 10px 0 !important; width: auto !important; }
            .content, .troubleshoot { padding: 25px !important; }
        }
    </style>
</head>
{%- capture url -%}https://example.com{%- endcapture -%}
<body>
    <center>
        <table class="email-container" role="presentation" width="600" border="0" cellpadding="0" cellspacing="0">
            <tr>
                <td class="header">
                    <img src="https://cdn-staging.braze.com/appboy/communication/assets/image_assets/images/60aecba96a93150c749b4d57/original.png?1622068137"
                         width="150"
                         alt="Logo"
                         class="logo">
                    <h1>Testing Click Tracking Functionality</h1>
                </td>
            </tr>
            <tr>
                <td class="content">
                    <p>
                        Use this template to test the <strong>CDN configuration</strong> of your tracking domain—the mechanism supporting analytics for links within your emails.
                    </p>
                    <p>
                        A <strong>Tracked URL</strong> wraps the original HTTPS link in your tracking domain. When a user clicks it, the tracking domain resolves the request and redirects to the final destination. A CDN allows you to track secure (HTTPS) URLs; without it, users may encounter a "connection is not secure" privacy error. An <strong>Untracked URL</strong> maintains the original URL intact, bypassing the CDN to serve as a control environment.
                    </p>
                    <p>
                        Common redirection issues typically result from an improper configuration between the CDN hosting the tracking domain and the <strong>associated SSL certificate or DNS CNAME records.</strong>
                    </p>
                    <p>
                        <i style="font-size: 13px;">This template uses "example.com" as the destination URL. To test your own domain, replace the URL in the <strong>capture</strong> tag located on line 125.</i>
                    </p>
                </td>
            </tr>
            <tr>
                <td class="btn-section">
                    <a href="{{url}}" class="btn btn-tracked">Tracked URL</a>

                    <a href="{{url}}"
                       class="btn btn-untracked"
                       clicktracking="off"
                       data-msys-clicktrack="0"
                       ses:no-track="true">
                       Untracked URL
                    </a>
                </td>
            </tr>
            <tr>
                <td>
                    <div class="troubleshoot">
                        <h2>Troubleshooting the Test</h2>
                        <ul>
                            <li><strong>Tracked URL Fails / Untracked Works:</strong> This indicates a CDN or SSL certificate issue. Verify that your SSL certificate is valid and correctly bound to your tracking domain.</li>
                            <li><strong>Privacy Error (HTTPS):</strong> Ensure your CDN is configured to handle port 443 traffic and that the certificate matches your tracking CNAME.</li>
                            <li><strong>Both URLs Fail:</strong> Check the destination URL or your internal network firewall settings.</li>
                            <li>For more information, visit: <a href="{{ site.homeurl }}{{ site.baseurl }}/user_guide/channels/email/email_setup/ssl">SSL at Braze</a></li>
                        </ul>
                    </div>
                </td>
            </tr>
        </table>
        <div class="footer">
            Braze :: 63 Madison Avenue, 13th Floor :: New York, NY 10016
        </div>
    </center>
</body>
</html>
  1. URLを設定します。テンプレート本文の上部付近にあるcaptureタグ内のURL(https://example.comが設定されている箇所)を置き換えてください。たとえば、https://example.comhttps://braze.com/docsに置き換えます。
  2. 自分宛にテストメールを送信し、両方のボタンを選択してください。
  3. 期待される動作と成功基準がテンプレートに記載されているとおりであることを確認してください。

トラッキングされていないURLは機能するがトラッキングされたURLが失敗する場合、設定にギャップがある可能性があります。お使いのメールサービスプロバイダー(ESP)とCDNプロバイダーのドキュメントを参照してください。証明書のプロビジョニングに関する詳細な要件については、BrazeのSSLを参照してください。

以下の表を使用して、クリックトラッキングのテスト時に発生する一般的なエラーを診断してください。

エラーコード トラブルシューティング
"Your connection is not private" (NET::ERR_CERT_COMMON_NAME_INVALID) トリアージワークフローを完了し、SSL名前不一致エラーを参照してください。クリックトラッキングドメインが証明書のCommon NameまたはSubject Alternative Namesに記載されていることを確認してください。
"This site can't be reached" (DNS_PROBE_FINISHED_NXDOMAIN) DNS設定を確認してください。トラッキングサブドメインがCDNとメールサービスプロバイダー(ESP)の推奨設定に従って構成されていることを確認してください。
525 / 526 SSL Error CDN(Cloudflareなど)のSSL設定がOriginの機能と一致していることを確認してください。
404 Not Found CDNが空のルートディレクトリを指すのではなく、URLパス全体をメールサービスプロバイダー(ESP)に転送するように設定されていることを確認してください。
400 Bad Request: Request Header or Cookie Too Large このエラーは通常、クリックトラッキングドメインがWebサイトのドメインから大量のCookieを継承している場合に発生します。BrazeはトラッキングドメインにおいてCookieの設定やブロックを行いません。CDNがクリックトラッキングリクエストをリバースプロキシする際に、それらのCookieをメールサービスプロバイダー(ESP)に送信しないように設定してください。nginx設定のlarge_client_header_buffers設定を増やす必要がある場合もあります(例:large_client_header_buffers 4 32k;で最大32 KBのヘッダーを許可)。詳細については、CDNプロバイダーまたはWebサイト開発チームにお問い合わせください。
New Stuff!