CNAMEとTarget
Adobe TargetでCNAME (正規の名前)のサポートを実装するためにAdobe Client Careで作業する手順を説明します。 CNAMEを使用して、広告ブロックの問題またはITP関連(インテリジェント トラッキング防止) Cookie ポリシーを処理します。 CNAMEを使用すると、呼び出しは、Adobeが所有するドメインではなく、顧客が所有するドメインに対して行われます。
TargetでのCNAME サポートのリクエスト
-
SSL証明書に必要なホスト名のリストを決定します(以下のFAQを参照)。
-
このフォーム に入力し、CNAME サポートをリクエストする Adobe クライアントケアチケットを開いたときにフォームを含めます:
-
Adobe Target クライアント コード:
-
SSL証明書ホスト名(例:
target.example.com target.example.org): -
SSL証明書の購入者(Adobeを強くお勧めします。FAQを参照): Adobe/お客様
-
お客様が「自分の証明書を持参」(BYOC)とも呼ばれる証明書を購入する場合は、以下の追加情報を入力します。
- 証明書の整理(例:会社の例):
- 証明書の組織単位(オプション、例:マーケティング):
- 証明書国(例:米国):
- 証明書の状態/地域(例:カリフォルニア):
- 証明書都市(例:サンノゼ):
-
-
ホスト名リクエストごとに、Adobeが実装を作成し、作成するCNAME レコード名を返します。このレコードには、
tt.omtrdc.netでサフィックスされたランダムな文字列が含まれます例えば、
target.example.comのリクエストを行った場合、abcdefgh.tt.omtrdc.netの形式でCNAMEを返送します。 DNS CNAME レコードは次のようになります。code language-none target.example.com. IN CNAME abcdefgh.tt.omtrdc.net.note important IMPORTANT この手順が完了するまで、Adobeの認証局であるDigiCertは証明書を発行できません。 したがって、この手順が完了するまで、AdobeはCNAME実装の要求を満たすことができません。 -
Adobeが証明書を購入する場合、AdobeはDigiCertと連携して、Adobeの実稼動サーバーに証明書を購入してデプロイします。
お客様が証明書(BYOC)を購入している場合、Adobe Client Careは証明書の署名要求(CSR)を送信します。 選択した認証局を通じて証明書を購入する場合は、CSRを使用します。 証明書が発行されたら、証明書のコピーと中間証明書をAdobe Client Careに送信してデプロイメントします。
実装の準備ができたら、Adobe クライアント ケアから通知が受け取られます。
-
serverDomain(documentation)を新しいCNAME ホスト名に更新し、at.js設定でoverrideMboxEdgeServerをfalse(documentation)に設定します。
よくある質問
次の情報は、TargetでのCNAME サポートのリクエストと実装に関するよくある質問に回答します。
自分の証明書(自分の証明書またはBYOCを持参)を提供できますか?
独自の証明書を指定できます。 ただし、Adobeはこの方法を強くお勧めします。 SSL証明書のライフサイクルの管理は、Adobeが証明書を購入して管理している場合は、Adobeとユーザーの両方にとって簡単です。 SSL証明書の有効期間は、時間が短くなります(証明書の有効期間に関する次の節を参照)。 したがって、Adobe クライアント ケアは、新しい証明書をタイムリーに取得するために、毎回あなたに連絡する必要があります。 証明書の有効期間がわずか47日に短縮されると、この問題は課題であることが証明されます。 ブラウザーが接続を拒否するため、証明書の有効期限が切れると、Targetの実装が危険にさらされます。
新しいSSL証明書が期限切れになるまでにどのくらいの時間がかかりますか?
すべての証明書の有効期間は、証明機関による主要な取り組みの一環として短くなります。 DigiCert、Adobeの証明書プロバイダーの場合、次のスケジュールが適用されます。
2026年3月15日まで、TLS証明書の最大有効期間は398日です。
2026年3月15日の時点で、TLS証明書の最大有効期間は200日になります。
2027年3月15日の時点で、TLS証明書の最大有効期間は100日になります。
2029年3月15日現在、TLS証明書の最大有効期間は47日です。
詳しくは、証明書の有効期間の短縮に関するDigiCertの記事を参照してください
どのホスト名を選択すればよいですか? ドメインごとにいくつのホスト名を選択すればよいですか?
Target件のCNAME実装では、SSL証明書および顧客のDNSで、ドメインごとに1つのホスト名のみを必要とします。 Adobeは、ドメインごとに1つのホスト名を推奨しています。 一部の顧客は、独自の目的のためにドメインごとに多くのホスト名を必要とします(ステージングのテストなど)。これはサポートされています。
ほとんどの顧客は、target.example.comのようなホスト名を選択します。 Adobeさんはこの方法を推奨していますが、選択は最終的にあなたのものです。 既存のDNS レコードのホスト名を要求しないでください。 これにより、競合が発生し、Target CNAME リクエストの解決に時間がかかります。
既にAdobe AnalyticsのCNAME実装がありますが、同じ証明書またはホスト名を使用できますか?
いいえ、Targetには別のホスト名と証明書が必要です。
現在のTargetの実装はITP 2.xの影響を受けますか?
Apple Intelligent Tracking Prevention (ITP)バージョン 2.3では、CNAME クローキング緩和機能が導入されました。この機能は、Adobe Target個のCNAME実装を検出でき、Cookieの有効期限を7日に短縮します。 現在Targetには、ITPのCNAME クローキングの緩和策はありません。 ITPについて詳しくは、Apple Intelligent Tracking Prevention (ITP) 2.xを参照してください。
CNAME実装がデプロイされると、どのようなサービスの中断が予想されますか?
証明書をデプロイしても、サービスの中断はありません(証明書の更新を含む)。
ただし、実装コード Targetのホスト名(at.jsのserverDomain)を新しいCNAME ホスト名(target.example.com)に変更すると、web ブラウザーは再訪問者を新規訪問者として扱います。 以前のCookieが古いホスト名(clientcode.tt.omtrdc.net)でアクセスできないため、再訪問者のプロファイルデータが失われます。 ブラウザーセキュリティモデルにより、以前のCookieにアクセスできません。 この中断は、新しいCNAMEへの最初のカットオーバーでのみ発生します。 ホスト名が変更されないため、証明書の更新は同じ効果を持ちません。
CNAME実装にはどのようなキータイプと証明書の署名アルゴリズムが使用されますか?
すべての証明書はRSA SHA-256で、キーはデフォルトでRSA 2048 ビットです。 2048 ビットを超えるキーサイズは、カスタマーケアを通じて明示的に要求する必要があります。
CNAME実装がトラフィックの準備ができていることを検証するにはどうすればよいですか?
次の一連のコマンドを使用します(macOSまたはLinux コマンドラインターミナルでは、bashとcurl >=7.49を使用します)。
- このbash関数をコピーして端末に貼り付けるか、bash起動スクリプトファイル(通常は
~/.bash_profileまたは~/.bashrc)に関数を貼り付けて、端末セッション間で関数を利用できるようにします。
function adobeTargetCnameValidation {
local hostname="$1"
if [ -z "$hostname" ]; then
echo "ERROR: no hostname specified"
return 1
fi
local service="Adobe Target CNAME implementation"
local edges="41 42 44 45 46 47 48"
local edgeDomain="tt.omtrdc.net"
local edgeFormat="mboxedge%d%s.$edgeDomain"
local poolDomain="pool.data.adobedc.net"
local shards=5
local shardsFoundCount=0
local shardsFound=""
local shardsFoundOutput=""
local curlRegex="subject:.*CN=|expire date:|issuer:"
local curlValidation="SSL certificate verify ok"
local curlResponseValidation='"OK"'
local curlEndpoint="/uptime?mboxClient=uptime3"
local url="https://$hostname$curlEndpoint"
local sslShopperUrl="https://www.sslshopper.com/ssl-checker.html#hostname=$hostname"
local success="✅"
local failure="🚫"
local info="🔎"
local rule="="
local horizontalRule="$(seq ${COLUMNS:-30} | xargs printf "$rule%.0s")"
local miniRule="$(seq 5 | xargs printf "$rule%.0s")"
local curlVersion="$(curl --version | head -1 | cut -d' ' -f2)"
local curlVersionRequired=7.49
local edgeCount="$(wc -w <<< "$edges" | tr -d ' ')"
local cnameExists=""
local endToEndTestSucceeded=""
for region in IRL1 IND1 SIN OR SYD VA TYO; do
local currShard="${region}-${poolDomain}"
local curlResult="$(curl -vsm20 --connect-to "$hostname:443:$currShard:443" "$url" 2>&1)"
if grep -q "$curlValidation" <<< "$curlResult"; then
shardsFound+=" $currShard"
if grep -q "$curlResponseValidation" <<< "$curlResult"; then
shardsFoundCount=$((shardsFoundCount+1))
shardsFoundOutput+="\n\n$miniRule $success $hostname [edge shard: $currShard] $miniRule\n"
else
shardsFoundOutput+="\n\n$miniRule $failure $hostname [edge shard: $currShard] $miniRule\n"
fi
shardsFoundOutput+="$(grep -E "$curlRegex" <<< "$curlResult" | sort)"
if ! grep -q "$curlResponseValidation" <<< "$curlResult"; then
shardsFoundOutput+="\nERROR: unexpected HTTP response from this shard using $url"
fi
fi
done
echo
echo "$horizontalRule"
echo
echo "$service validation for hostname $hostname:"
local dnsOutput="$(dig -t CNAME +short "$hostname" 2>&1)"
if grep -qFi ".$edgeDomain" <<< "$dnsOutput"; then
echo "$success $hostname passes DNS CNAME validation"
cnameExists=true
else
echo -n "$failure $hostname FAILED DNS CNAME validation -- "
if [ -n "$dnsOutput" ]; then
echo -e "$dnsOutput is not in the subdomain $edgeDomain"
else
echo "required DNS CNAME record pointing to <target-client-code>.$edgeDomain not found"
fi
fi
for region in IRL1 IND1 SIN OR SYD VA TYO; do
local curlResult="$(curl -vsm20 --connect-to "$hostname:443:${region}-pool.data.adobedc.net:443" "https://$hostname$curlEndpoint" 2>&1)"
if grep -q "$curlValidation" <<< "$curlResult"; then
if grep -q "$curlResponseValidation" <<< "$curlResult"; then
echo -en "$success $hostname passes TLS and HTTP response validation for region $region"
if [ -n "$cnameExists" ]; then
echo
else
echo " -- the DNS CNAME is not pointing to the correct subdomain for ${service}s with Adobe-managed certificates" \
"(bring-your-own-certificate implementations don't have this requirement), but this test passes as configured"
fi
endToEndTestSucceeded=true
else
echo -n "$failure $hostname FAILED HTTP response validation for region $region --" \
"unexpected response from $url -- "
if [ -n "$cnameExists" ]; then
echo "DNS is NOT pointing to the correct shard, notify Adobe Client Care"
else
echo "the required DNS CNAME record is missing, see above"
fi
fi
else
echo -n "$failure $hostname FAILED TLS validation for region $region -- "
if [ -n "$cnameExists" ]; then
echo "DNS is likely NOT pointing to the correct shard or there's a validation issue with the certificate or" \
"protocols, see curl output below and optionally SSL Shopper ($sslShopperUrl):"
echo ""
echo "$horizontalRule"
echo "$curlResult" | sed 's/^/ /g'
echo "$horizontalRule"
echo ""
else
echo "the required DNS CNAME record is missing, see above"
fi
fi
done
if [ "$shardsFoundCount" -ge "$edgeCount" ]; then
echo -n "$success $hostname passes shard validation for the following $shardsFoundCount edge shards:"
echo -e "$shardsFoundOutput"
echo
if [ -n "$cnameExists" ] && [ -n "$endToEndTestSucceeded" ]; then
echo "$horizontalRule"
echo ""
echo " For additional TLS/SSL validation, see SSL Shopper:"
echo ""
echo " $info $sslShopperUrl"
echo ""
echo " To check DNS propagation around the world, see whatsmydns.net:"
echo ""
echo " $info DNS A records: https://whatsmydns.net/#A/$hostname"
echo " $info DNS CNAME record: https://whatsmydns.net/#CNAME/$hostname"
fi
else
echo -n "$failure $hostname FAILED shard validation -- shards found: $shardsFoundCount," \
"expected: $edgeCount"
echo ""
fi
echo
echo "$horizontalRule"
echo
}
-
このコマンドを貼り付けます(
target.example.comをホスト名に置き換えます)。code language-none adobeTargetCnameValidation target.example.com実装の準備ができたら、次のような出力が表示されます。 重要なのは、すべての検証ステータス行に
🚫ではなく✅が表示されることです。 各Target エッジ CNAME シャードには、CN=target.example.comが表示されます。これは、要求された証明書のプライマリホスト名と一致します(証明書の追加のSAN ホスト名はこの出力に表示されません)。
$ adobeTargetCnameValidation target.example.com
==========================================================
Adobe Target CNAME implementation validation for hostname target.example.com:
✅ target.example.com passes DNS CNAME validation
✅ target.example.com passes TLS and HTTP response validation for region IRL1
✅ target.example.com passes TLS and HTTP response validation for region IND1
✅ target.example.com passes TLS and HTTP response validation for region SIN
✅ target.example.com passes TLS and HTTP response validation for region OR
✅ target.example.com passes TLS and HTTP response validation for region SYD
✅ target.example.com passes TLS and HTTP response validation for region VA
✅ target.example.com passes TLS and HTTP response validation for region TYO
✅ target.example.com passes shard validation for the following 7 edge shards:
===== ✅ target.example.com [edge shard: IRL1-pool.data.adobedc.net] =====
* expire date: Feb 20 23:59:59 2026 GMT
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
* subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
===== ✅ target.example.com [edge shard: IND1-pool.data.adobedc.net] =====
* expire date: Feb 20 23:59:59 2026 GMT
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
* subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
===== ✅ target.example.com [edge shard: SIN-pool.data.adobedc.net] =====
* expire date: Feb 20 23:59:59 2026 GMT
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
* subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
===== ✅ target.example.com [edge shard: OR-pool.data.adobedc.net] =====
* expire date: Feb 20 23:59:59 2026 GMT
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
* subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
===== ✅ target.example.com [edge shard: SYD-pool.data.adobedc.net] =====
* expire date: Feb 20 23:59:59 2026 GMT
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
* subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
===== ✅ target.example.com [edge shard: VA-pool.data.adobedc.net] =====
* expire date: Feb 20 23:59:59 2026 GMT
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
* subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
===== ✅ target.example.com [edge shard: TYO-pool.data.adobedc.net] =====
* expire date: Feb 20 23:59:59 2026 GMT
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
* subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com
==========================================================
For additional TLS/SSL validation, see SSL Shopper:
🔎 https://www.sslshopper.com/ssl-checker.html#hostname=target.example.com
To check DNS propagation around the world, see whatsmydns.net:
🔎 DNS A records: https://whatsmydns.net/#A/target.example.com
🔎 DNS CNAME record: https://whatsmydns.net/#CNAME/target.example.com
dig target.example.com コマンドまたはG Suite Toolboxを使用して、特定のTTLを検索できます。 世界中のDNSの伝播を確認するには、whatsmydns.netを参照してください。CNAME でのオプトアウトリンクの使用方法
CNAMEを使用している場合、オプトアウトリンクには「client=clientcode」パラメーターを含める必要があります。例:https://my.cname.domain/optout?client=clientcode.
clientcodeをクライアントコードに置き換え、 オプトアウト URLにリンクするテキストまたは画像を追加します。
既知の制限事項
- CNAMEとat.js 1.xがある場合、サードパーティ Cookieに基づいているため、QA モードはスティッキーではありません。 この問題を回避するには、移動先の各URLにプレビューパラメーターを追加します。 CNAMEとat.js 2.xがある場合、QA モードはスティッキーです。
- CNAMEを使用する場合、Target呼び出しのcookie ヘッダーのサイズが増加する可能性が高くなります。 Adobeでは、Cookie サイズを8 KB未満に保つことをお勧めします。