[{"data":1,"prerenderedAt":413},["ShallowReactive",2],{"content-query-XjtEL0WVgA":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"tags":11,"rowTypeId":17,"sitemap":18,"body":19,"_type":407,"_id":408,"_source":409,"_file":410,"_stem":411,"_extension":412},"/articles/tech/development/adsense-azure-swa","development",false,"","Azure Static Web Apps × Google AdSenseで所有権確認を通すまでにハマったこと","Nuxt SSGで構築したAzure Static Web AppsのサイトにGoogle AdSenseを導入しようとして、所有権確認でハマったポイントと解決策をまとめます。","2026-03-22",[12,13,14,15,16],"Azure Static Web Apps","Google AdSense","Nuxt","DNS","Cloudflare",1,{"loc":4,"lastmod":10,"priority":17},{"type":20,"children":21,"toc":394},"root",[22,30,36,45,50,137,143,149,185,190,209,215,220,226,239,245,329,334,339,389],{"type":23,"tag":24,"props":25,"children":27},"element","h2",{"id":26},"はじめに",[28],{"type":29,"value":26},"text",{"type":23,"tag":31,"props":32,"children":33},"p",{},[34],{"type":29,"value":35},"Nuxt（SSG）+ Azure Static Web Apps（以下ASWA）で運用しているサイトにGoogle AdSenseを導入しようとしたところ、所有権確認がなかなか通らず苦労しました。\nこの記事では、ハマったポイントとその解決策をまとめます。同じ構成で困っている方の参考になれば幸いです。",{"type":23,"tag":37,"props":38,"children":39},"summary-box",{},[40],{"type":23,"tag":31,"props":41,"children":42},{},[43],{"type":29,"value":44},"Azure Static Web Apps + Nuxt SSGの構成でAdSense所有権確認を通すために、ads.txtの配信とルートドメインのDNS設定（Cloudflare）のハマりポイントを乗り越えた記録です。",{"type":23,"tag":24,"props":46,"children":48},{"id":47},"環境",[49],{"type":29,"value":47},{"type":23,"tag":51,"props":52,"children":53},"table",{},[54,73],{"type":23,"tag":55,"props":56,"children":57},"thead",{},[58],{"type":23,"tag":59,"props":60,"children":61},"tr",{},[62,68],{"type":23,"tag":63,"props":64,"children":65},"th",{},[66],{"type":29,"value":67},"項目",{"type":23,"tag":63,"props":69,"children":70},{},[71],{"type":29,"value":72},"技術",{"type":23,"tag":74,"props":75,"children":76},"tbody",{},[77,91,103,115],{"type":23,"tag":59,"props":78,"children":79},{},[80,86],{"type":23,"tag":81,"props":82,"children":83},"td",{},[84],{"type":29,"value":85},"フレームワーク",{"type":23,"tag":81,"props":87,"children":88},{},[89],{"type":29,"value":90},"Nuxt 4（SSG）",{"type":23,"tag":59,"props":92,"children":93},{},[94,99],{"type":23,"tag":81,"props":95,"children":96},{},[97],{"type":29,"value":98},"ホスティング",{"type":23,"tag":81,"props":100,"children":101},{},[102],{"type":29,"value":12},{"type":23,"tag":59,"props":104,"children":105},{},[106,110],{"type":23,"tag":81,"props":107,"children":108},{},[109],{"type":29,"value":15},{"type":23,"tag":81,"props":111,"children":112},{},[113],{"type":29,"value":114},"お名前.com → Cloudflare に移行",{"type":23,"tag":59,"props":116,"children":117},{},[118,123],{"type":23,"tag":81,"props":119,"children":120},{},[121],{"type":29,"value":122},"ドメイン",{"type":23,"tag":81,"props":124,"children":125},{},[126,128],{"type":29,"value":127},"akizorasoft.com / ",{"type":23,"tag":129,"props":130,"children":134},"a",{"href":131,"rel":132},"http://www.akizorasoft.com",[133],"nofollow",[135],{"type":29,"value":136},"www.akizorasoft.com",{"type":23,"tag":24,"props":138,"children":140},{"id":139},"ハマりポイント-ルートドメインにアクセスできない",[141],{"type":29,"value":142},"ハマりポイント: ルートドメインにアクセスできない",{"type":23,"tag":144,"props":145,"children":147},"h3",{"id":146},"問題",[148],{"type":29,"value":146},{"type":23,"tag":31,"props":150,"children":151},{},[152,154,161,163,168,170,175,177,183],{"type":29,"value":153},"AdSenseに登録できるのは",{"type":23,"tag":155,"props":156,"children":158},"code",{"className":157},[],[159],{"type":29,"value":160},"akizorasoft.com",{"type":29,"value":162},"（ルートドメイン）のみで、",{"type":23,"tag":155,"props":164,"children":166},{"className":165},[],[167],{"type":29,"value":136},{"type":29,"value":169},"は登録できない。しかし、",{"type":23,"tag":155,"props":171,"children":173},{"className":172},[],[174],{"type":29,"value":160},{"type":29,"value":176},"にはDNSレコードが設定されておらず、Googleのクローラーがサイトにアクセスできなかった。\nこれにより、",{"type":23,"tag":155,"props":178,"children":180},{"className":179},[],[181],{"type":29,"value":182},"ads.txt",{"type":29,"value":184},"もルートドメインで配信できず、所有権確認が通らない状態だった。",{"type":23,"tag":144,"props":186,"children":188},{"id":187},"原因",[189],{"type":29,"value":187},{"type":23,"tag":31,"props":191,"children":192},{},[193,195,200,202,207],{"type":29,"value":194},"お名前.comでは",{"type":23,"tag":155,"props":196,"children":198},{"className":197},[],[199],{"type":29,"value":136},{"type":29,"value":201},"のCNAMEレコードのみ設定しており、ルートドメイン（",{"type":23,"tag":155,"props":203,"children":205},{"className":204},[],[206],{"type":29,"value":160},{"type":29,"value":208},"）にはレコードがなかった。\n通常、ルートドメインにはCNAMEレコードを設定できない（DNS仕様上の制約）ため、ASWAへのルーティングができなかった。",{"type":23,"tag":144,"props":210,"children":212},{"id":211},"なぜルートドメインにcnameが設定できないのか",[213],{"type":29,"value":214},"なぜルートドメインにCNAMEが設定できないのか",{"type":23,"tag":31,"props":216,"children":217},{},[218],{"type":29,"value":219},"DNS仕様（RFC 1034）では、ルートドメイン（Zone Apex）にはSOAレコードやNSレコードが必須であり、CNAMEレコードは他のレコードと共存できないという制約がある。そのため、ルートドメインにCNAMEを設定すると、これらの必須レコードと競合してしまう。",{"type":23,"tag":144,"props":221,"children":223},{"id":222},"解決策-cloudflareへの移行",[224],{"type":29,"value":225},"解決策: Cloudflareへの移行",{"type":23,"tag":31,"props":227,"children":228},{},[229,231,237],{"type":29,"value":230},"Cloudflare（無料プラン）にDNSを移行し、",{"type":23,"tag":232,"props":233,"children":234},"strong",{},[235],{"type":29,"value":236},"CNAME Flattening",{"type":29,"value":238},"を利用した。\nCNAME Flatteningは、ルートドメインのCNAMEレコードを内部的にAレコードに変換してレスポンスを返す仕組みで、DNS仕様の制約を回避できる。",{"type":23,"tag":240,"props":241,"children":243},"h4",{"id":242},"手順",[244],{"type":29,"value":242},{"type":23,"tag":246,"props":247,"children":248},"ol",{},[249,262,267,303,314,319],{"type":23,"tag":250,"props":251,"children":252},"li",{},[253,255,260],{"type":29,"value":254},"Cloudflareにアカウントを作成し、",{"type":23,"tag":155,"props":256,"children":258},{"className":257},[],[259],{"type":29,"value":160},{"type":29,"value":261},"を追加",{"type":23,"tag":250,"props":263,"children":264},{},[265],{"type":29,"value":266},"お名前.comのネームサーバーをCloudflare指定のNSに変更",{"type":23,"tag":250,"props":268,"children":269},{},[270,272],{"type":29,"value":271},"Cloudflare側でDNSレコードを設定\n",{"type":23,"tag":273,"props":274,"children":275},"ul",{},[276,287,298],{"type":23,"tag":250,"props":277,"children":278},{},[279,285],{"type":23,"tag":155,"props":280,"children":282},{"className":281},[],[283],{"type":29,"value":284},"@",{"type":29,"value":286},"（ルートドメイン）→ CNAME → ASWAのホスト名",{"type":23,"tag":250,"props":288,"children":289},{},[290,296],{"type":23,"tag":155,"props":291,"children":293},{"className":292},[],[294],{"type":29,"value":295},"www",{"type":29,"value":297}," → CNAME → ASWAのホスト名",{"type":23,"tag":250,"props":299,"children":300},{},[301],{"type":29,"value":302},"TXT → google-site-verification の値を移行",{"type":23,"tag":250,"props":304,"children":305},{},[306,308,313],{"type":29,"value":307},"ASWAのカスタムドメインに",{"type":23,"tag":155,"props":309,"children":311},{"className":310},[],[312],{"type":29,"value":160},{"type":29,"value":261},{"type":23,"tag":250,"props":315,"children":316},{},[317],{"type":29,"value":318},"ASWA側でドメイン検証用のTXTレコードをCloudflareに追加",{"type":23,"tag":250,"props":320,"children":321},{},[322,324],{"type":29,"value":323},"検証完了後、AdSenseの所有権確認を再試行 → ",{"type":23,"tag":232,"props":325,"children":326},{},[327],{"type":29,"value":328},"成功",{"type":23,"tag":24,"props":330,"children":332},{"id":331},"まとめ",[333],{"type":29,"value":331},{"type":23,"tag":31,"props":335,"children":336},{},[337],{"type":29,"value":338},"Azure Static Web Apps + Nuxt SSGの構成でAdSenseの所有権確認を通すためのポイントです。",{"type":23,"tag":273,"props":340,"children":341},{},[342,363,376],{"type":23,"tag":250,"props":343,"children":344},{},[345,350,354,356,361],{"type":23,"tag":232,"props":346,"children":347},{},[348],{"type":29,"value":349},"ルートドメインのDNS設定が最重要",{"type":23,"tag":351,"props":352,"children":353},"br",{},[],{"type":29,"value":355},"\nAdSenseはルートドメインでの登録が必須で、",{"type":23,"tag":155,"props":357,"children":359},{"className":358},[],[360],{"type":29,"value":295},{"type":29,"value":362},"サブドメインだけでは不可",{"type":23,"tag":250,"props":364,"children":365},{},[366,371,374],{"type":23,"tag":232,"props":367,"children":368},{},[369],{"type":29,"value":370},"CNAME Flatteningで制約を回避",{"type":23,"tag":351,"props":372,"children":373},{},[],{"type":29,"value":375},"\nCloudflare（無料プラン）でルートドメインにCNAMEを設定できる",{"type":23,"tag":250,"props":377,"children":378},{},[379,384,387],{"type":23,"tag":232,"props":380,"children":381},{},[382],{"type":29,"value":383},"ads.txtもルートドメインで配信が必要",{"type":23,"tag":351,"props":385,"children":386},{},[],{"type":29,"value":388},"\nルートドメインにアクセスできなければads.txtも到達不可",{"type":23,"tag":31,"props":390,"children":391},{},[392],{"type":29,"value":393},"ルートドメインの問題はASWAに限らずどのホスティングサービスでも起こりうるため、同様の問題に直面した方はぜひCloudflareを試してみてください。",{"title":7,"searchDepth":395,"depth":395,"links":396},2,[397,398,399,406],{"id":26,"depth":395,"text":26},{"id":47,"depth":395,"text":47},{"id":139,"depth":395,"text":142,"children":400},[401,403,404,405],{"id":146,"depth":402,"text":146},3,{"id":187,"depth":402,"text":187},{"id":211,"depth":402,"text":214},{"id":222,"depth":402,"text":225},{"id":331,"depth":395,"text":331},"markdown","content:articles:tech:development:adsense-azure-swa.md","content","articles/tech/development/adsense-azure-swa.md","articles/tech/development/adsense-azure-swa","md",1775491971217]