[アップデート] Amazon SES でメールごとに Open/Click トラッキングを個別制御できる ConfigurationOverrides パラメータが追加されました

[アップデート] Amazon SES でメールごとに Open/Click トラッキングを個別制御できる ConfigurationOverrides パラメータが追加されました

Amazon SES の SendEmail/SendBulkEmail API に追加された `ConfigurationOverrides` パラメータを使って、リクエスト単位で Open/Click トラッキングを制御できるようになりました。GDPR 対応で受信者ごとにトラッキング同意を管理したい場合に、Configuration Set を分ける必要がなくなります。実際に試した結果を紹介します。
2026.08.22

いわさです。

Amazon SES では Configuration Set のイベント送信先や VDM のエンゲージメントトラッキング設定を使って、メールの Open(開封)や Click(リンククリック)をトラッキングできます。
トラッキングが有効な場合、SES は送信する HTML メールに透明なトラッキングピクセルを埋め込み、リンクをリダイレクト URL に書き換えることで開封とクリックのイベントを記録します。

ただ、これまでトラッキングの有効・無効は Configuration Set 単位もしくはアカウントの VDM 設定で制御するしかなかったため、「特定のメールだけトラッキングを無効にしたい」場合には別の Configuration Set を用意して使い分ける必要がありました。

先日のアップデートで、SendEmail および SendBulkEmail API に ConfigurationOverrides パラメータが追加され、リクエスト単位で Open/Click トラッキングの有効・無効をオーバーライドできるようになりました。

https://aws.amazon.com/about-aws/whats-new/2026/08/amazon-ses-adds-open-click-tracking-override/

Configuration Set の設定を変更せずに、送信リクエストの API パラメータでトラッキングの振る舞いを上書きできます。追加料金もありません。
アナウンスによると、GDPR(EU の個人データ保護規則)や CNIL(フランスのデータ保護機関)のガイダンスに従って受信者ごとにトラッキング同意を管理するケースで、同意していない受信者にはトラッキングを入れたくないのに、そのためだけに Configuration Set を複数管理する必要があったとのことです。なるほど。
今回こちらを確認してみたので紹介します。

実際に確認してみる

AWS CLI では 2.36.28 から --configuration-overrides オプションとして利用可能です[1]
今回は CLI 2.36.29 で検証しています。

https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_TrackingConfigurationOverrides.html

--configuration-overrides には Tracking={OpenTrackingEnabled=ENABLED|DISABLED,ClickTrackingEnabled=ENABLED|DISABLED} の形式で指定します。
指定しない場合は従来どおり Configuration Set やアカウントレベルの設定が適用されます。

トラッキング有効な Configuration Set でオーバーライドを DISABLED にする

では早速試してみましょう。
既存の Configuration Set hoge-config は VDM のエンゲージメントトラッキングが有効で、Open/Click のトラッキングが動作する状態です。

まず、オーバーライドなしでメールを送信します。

aws sesv2 send-email \
  --from-email-address "test@mail1.tak1wa.com" \
  --destination '{"ToAddresses":["iwasa.takahito+hoge1@example.com"]}' \
  --content '{"Simple":{"Subject":{"Data":"Tracking Test - No Override (baseline)"},"Body":{"Html":{"Data":"<html><body><h1>Baseline</h1><p><a href=\"https://aws.amazon.com/ses/\">Amazon SES</a></p><p><a href=\"https://dev.classmethod.jp/\">DevelopersIO</a></p></body></html>"}}}}' \
  --configuration-set-name hoge-config \
  --region ap-northeast-1

次に、同じ Configuration Set を使いつつ --configuration-overrides で Open/Click 両方を DISABLED にして送信します。

aws sesv2 send-email \
  --from-email-address "test@mail1.tak1wa.com" \
  --destination '{"ToAddresses":["iwasa.takahito+hoge1@example.com"]}' \
  --content '{"Simple":{"Subject":{"Data":"Tracking Test - Both DISABLED"},"Body":{"Html":{"Data":"<html><body><h1>Both Disabled</h1><p><a href=\"https://aws.amazon.com/ses/\">Amazon SES</a></p><p><a href=\"https://dev.classmethod.jp/\">DevelopersIO</a></p></body></html>"}}}}' \
  --configuration-set-name hoge-config \
  --configuration-overrides 'Tracking={OpenTrackingEnabled=DISABLED,ClickTrackingEnabled=DISABLED}' \
  --region ap-northeast-1

受信したメールのソースを比較してみます。
以前紹介しましたが、トラッキングが有効な場合 SES はリンクをカスタムトラッキングドメイン経由のリダイレクト URL に書き換え、末尾にトラッキングピクセル(1x1 の透明画像)を挿入します。

オーバーライドなしで送信したメール(ベースライン)の受信ソースです。

<html><body><h1>CLI Baseline Test</h1>
<p>Sent without --configuration-overrides via CLI 2.36.29</p>
<p><a href="https://track2.mail1.tak1wa.com/CL0/https:%2F%2Faws.amazon.com%2Fses%2F/1/010601a0...">Amazon SES</a></p>
<p><a href="https://track2.mail1.tak1wa.com/CL0/https:%2F%2Fdev.classmethod.jp%2F/1/010601a0...">DevelopersIO</a></p>
<img alt="" src="https://track2.mail1.tak1wa.com/CI0/010601a0..." style="display: none; width: 1px; height: 1px;">
</body></html>

リンクが track2.mail1.tak1wa.com 経由に書き換えられ、末尾にトラッキングピクセルが入っていますね。

一方、DISABLED オーバーライドを指定して送信したメールの受信ソースです。

<html><body><h1>CLI Override Test</h1>
<p>Sent with --configuration-overrides via CLI 2.36.29</p>
<p><a href="https://aws.amazon.com/ses/">Amazon SES</a></p>
<p><a href="https://dev.classmethod.jp/">DevelopersIO</a></p>
</body></html>

リンクは元の URL のまま、トラッキングピクセルも挿入されていません。
同じ Configuration Set を使っているのに、--configuration-overrides の有無だけでトラッキングの挙動が切り替わっていることが確認できますね。

Open と Click を個別に制御する

OpenTrackingEnabledClickTrackingEnabled は独立して指定できるので、片方だけ無効にすることもできます。
Open トラッキングだけ無効にして、Click トラッキングは有効のままにしてみます。

aws sesv2 send-email \
  --from-email-address "test@mail1.tak1wa.com" \
  --destination '{"ToAddresses":["iwasa.takahito+hoge1@example.com"]}' \
  --content '{"Simple":{"Subject":{"Data":"Tracking Test - Open DISABLED, Click ENABLED"},"Body":{"Html":{"Data":"<html><body><h1>Open Off, Click On</h1><p><a href=\"https://aws.amazon.com/ses/\">Amazon SES</a></p></body></html>"}}}}' \
  --configuration-set-name hoge-config \
  --configuration-overrides 'Tracking={OpenTrackingEnabled=DISABLED,ClickTrackingEnabled=ENABLED}' \
  --region ap-northeast-1

この場合、受信メールではリンクはリダイレクト URL に書き換えられますが(Click トラッキング有効)、トラッキングピクセルは埋め込まれません(Open トラッキング無効)。
逆に Open だけ ENABLED にすることもできるので、用途に応じた細かい制御が可能ですね。

トラッキング無効の Configuration Set でオーバーライドを ENABLED にする

逆方向のオーバーライドも試してみます。
VDM のエンゲージメントトラッキングを無効にした Configuration Set を作成し、そこにオーバーライドで ENABLED を指定します。

aws sesv2 create-configuration-set \
  --configuration-set-name hoge-no-tracking \
  --sending-options SendingEnabled=true \
  --region ap-northeast-1

aws sesv2 put-configuration-set-vdm-options \
  --configuration-set-name hoge-no-tracking \
  --vdm-options 'DashboardOptions={EngagementMetrics=DISABLED}' \
  --region ap-northeast-1

この hoge-no-tracking を使って、オーバーライドで ENABLED にして送信してみます。

aws sesv2 send-email \
  --from-email-address "test@mail1.tak1wa.com" \
  --destination '{"ToAddresses":["iwasa.takahito+hoge1@example.com"]}' \
  --content '{"Simple":{"Subject":{"Data":"Tracking Test - ConfigSet NoTracking, Override ENABLED"},"Body":{"Html":{"Data":"<html><body><h1>Override to Enabled</h1><p><a href=\"https://aws.amazon.com/ses/\">Amazon SES</a></p></body></html>"}}}}' \
  --configuration-set-name hoge-no-tracking \
  --configuration-overrides 'Tracking={OpenTrackingEnabled=ENABLED,ClickTrackingEnabled=ENABLED}' \
  --region ap-northeast-1

こちらも正常に送信できました。
通常であればトラッキング無効の Configuration Set で送信したメールにはトラッキング要素が入りませんが、ENABLED オーバーライドを付けることでトラッキングピクセルとリンク書き換えが挿入されます。

なお、オーバーライドで ENABLED にしてもイベント送信先は自動作成されないようです。SNS や Firehose で Open/Click イベントを受け取りたい場合は Configuration Set にイベント送信先を別途設定する必要があります。

Enabling open or click tracking with an override doesn't create an event destination. Amazon SES records the resulting open and click events in VDM, where you can review them using VDM metrics and Message Insights. To also receive these events at a destination that you own, the configuration set that the message uses must have an event destination that publishes open and click events.

https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_TrackingConfigurationOverrides.html

SendBulkEmail での宛先ごとのオーバーライド

SendBulkEmail API では、BulkEmailEntries の各エントリに対して個別に ConfigurationOverrides を指定できます。
つまり、1 回のバルク送信リクエストの中で宛先ごとにトラッキングの有効・無効を切り替えられます。

以下は REST API のリクエストボディの例です。1 人目はオーバーライドなし(トラッキング有効)、2 人目は DISABLED を指定しています。

{
  "FromEmailAddress": "test@mail1.tak1wa.com",
  "ConfigurationSetName": "hoge-config",
  "DefaultContent": {
    "Template": {
      "TemplateContent": {
        "Subject": "Hello {{name}}",
        "Html": "<html><body><h1>Hello {{name}}</h1><p><a href=\"https://aws.amazon.com/ses/\">Link</a></p></body></html>"
      },
      "TemplateData": "{\"name\":\"Default\"}"
    }
  },
  "BulkEmailEntries": [
    {
      "Destination": {"ToAddresses": ["user1@example.com"]},
      "ReplacementEmailContent": {
        "ReplacementTemplate": {
          "ReplacementTemplateData": "{\"name\":\"User1\"}"
        }
      }
    },
    {
      "Destination": {"ToAddresses": ["user2@example.com"]},
      "ReplacementEmailContent": {
        "ReplacementTemplate": {
          "ReplacementTemplateData": "{\"name\":\"User2\"}"
        }
      },
      "ConfigurationOverrides": {
        "Tracking": {
          "OpenTrackingEnabled": "DISABLED",
          "ClickTrackingEnabled": "DISABLED"
        }
      }
    }
  ]
}
{
  "BulkEmailEntryResults": [
    {"Status": "SUCCESS", "MessageId": "010601a027197d09-dcf39061-..."},
    {"Status": "SUCCESS", "MessageId": "010601a027197d09-d67bde64-..."}
  ]
}

宛先ごとに異なるオーバーライド設定で送信できていますね。
受信者ごとのトラッキング同意をデータベースで管理しているなら、バルク送信時に同意状況に応じてオーバーライドを付けるだけで対応できます。Configuration Set を分ける必要がないのは運用上かなり楽になりそうです。

さいごに

本日は Amazon SES の SendEmail / SendBulkEmail API に追加された ConfigurationOverrides パラメータによる Open/Click トラッキングのオーバーライド機能を確認してみました。

従来どおり Configuration Set でトラッキング設定を管理しつつ、GDPR 対応などで送信単位に挙動を切り分けたいケースで使える機能ですね。
特に SendBulkEmail で宛先ごとに個別制御できるので、受信者レベルでトラッキング同意を管理している場合に Configuration Set を分けずに対応できるのは良さそうです。

先日紹介した isBotEvent フィールドの追加[2]と合わせて、SES の Open/Click トラッキング周りが立て続けに強化されていますね。

脚注
  1. Bump version to 2.36.28 ↩︎

  2. Amazon SES の Open/Click イベント通知にボット判定フィールド isBotEvent が追加された ↩︎

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事