Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】2.2 cat Codes With Omitted cattax Validate. OpenRTB Defaults to Taxonomy 1.0.

2026年10月03日に「Dev.to」が公開したITニュース「2.2 cat Codes With Omitted cattax Validate. OpenRTB Defaults to Taxonomy 1.0.」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

OpenRTBでカテゴリを指定する際、`cattax`や`gtax`を省略すると、古い分類体系がデフォルトで適用され、意図せず誤ったカテゴリで処理される可能性が高い。新しいカテゴリIDを使っても、タクソノミーの明示的な指定が不可欠。デフォルトに頼るな。

ITニュース解説

インターネット上の広告は、私たちがウェブサイトやアプリを利用する際に目にする機会が多い。この広告の裏側では、「OpenRTB」という世界共通のルールに基づいて、広告枠のリアルタイムな売買が行われている。OpenRTBは、広告枠を提供する側(媒体社)と、広告を配信したい側(広告主)の間で、スムーズな情報のやり取りを実現するための技術標準だ。このOpenRTBにおいて、コンテンツ(ウェブページや動画など)の分類方法に関する重要な注意点がある。

ウェブサイトや動画のコンテンツには、「ニュース」「スポーツ」「エンターテイメント」といったカテゴリやジャンルがある。広告を出す側は、自社の広告がどのようなコンテンツに表示されるかを指定したいし、不適切なコンテンツには表示させたくない。このため、OpenRTBのリクエスト(広告枠の情報を送るメッセージ)には、コンテンツのカテゴリを伝えるための情報が含まれる。

具体的には、「cat」というフィールド(データ項目)に「IAB1-7」のようなカテゴリコードがリスト形式で指定される。しかし、このカテゴリコードだけでは、それがどのカテゴリ分類体系(例えば、どの組織が作ったカテゴリリストか)に基づいているのかが不明確になるという問題が発生する。そこで、「cattax」という別のフィールドで、そのカテゴリコードがどの分類体系に属するのかを数値で指定する仕組みがある。

重要なのは、もしこの「cattax」が省略されてしまった場合、OpenRTBの仕様では「IAB Content Category Taxonomy 1.0」(通称Taxonomy 1.0)という、現在では古くなって非推奨とされている分類体系を自動的に使う(デフォルト設定)と定められている点だ。

これは深刻な問題を引き起こす可能性がある。例えば、新しい分類体系であるTaxonomy 2.2や3.xでは、同じ「テレビ番組」を意味するカテゴリであっても、Taxonomy 1.0とは異なるコード(ID)が使われることがある。もし開発者が、新しい分類体系のコードを「cat」フィールドに指定したにもかかわらず、「cattax」を省略してしまったら、システムはそれをTaxonomy 1.0のコードだと誤解してしまう。結果として、意図しないカテゴリとして処理されてしまい、広告が間違ったコンテンツに表示されたり、本来ブロックしたかったカテゴリのコンテンツに広告が表示されてしまったりする可能性がある。これは、広告主のブランドイメージを守る「ブランドセーフティ」や、広告のターゲットを絞る「コンテキストターゲティング」といった機能に直接影響を与えかねない。

OpenRTBのバージョン2.6-202501では、さらにコンテンツの「ジャンル」を指定するための新しいフィールド「genres」と、そのジャンル分類体系を指定する「gtax」が追加された。gtaxが省略された場合のデフォルト設定は、比較的あたらしい「IAB Tech Lab Content Taxonomy 3.1」(通称Taxonomy 3.1)となっている。しかし、ここでも同様のミスが起こりやすい。システムの移行作業などで、古い「cat」フィールドのカテゴリコードを、新しい「genres」フィールドにそのままコピーしてしまい、「gtax」の指定を怠ると、Taxonomy 3.1に基づかないコードがTaxonomy 3.1のジャンルだと誤解されてしまうのだ。JSON形式のデータとしては正しく見えるため、エラーとして検出されにくく、後からレポートデータを見て初めて、意図した通りの効果が得られていないことに気づく、という事態にもつながる。

この問題は、広告枠の入札リクエスト全体に関するブロックリストや許可リスト(それぞれ「bcat」「acat」と呼ばれる)でも発生する。これらも、「BidRequest.cattax」というフィールドで分類体系を指定する必要があり、省略するとデフォルトでTaxonomy 1.0が適用される。重要なのは、カテゴリやジャンルを示すコード文字列の見た目ではなく、それに付随する「cattax」や「gtax」といった「どの分類体系に基づいているか」を示す整数値の指定こそが、システムが正しく意図を解釈するための「契約」であるという点だ。

このような問題を防ぎ、システムが正しく動作しているかを確認するためには、「rtblint」のような検証ツールが非常に役立つ。このツールを使えば、作成したOpenRTBのリクエストデータが、指定したOpenRTBのバージョンと分類体系のルールに沿っているかをチェックできる。例えば、分類体系を示すcattaxやgtaxに無効な値が指定されていないか、古いOpenRTBバージョンではまだサポートされていない新しいフィールドが使われていないかなどを検出できるのだ。

システムエンジニアとして、インターネット広告のシステム開発や運用に携わる場合、特にシステムの移行を行う際には、デフォルト設定に頼ることなく、分類体系を明示的に指定することが極めて重要となる。具体的には、入札リクエスト全体のカテゴリ分類体系を示す「BidRequest.cattax」、コンテンツのカテゴリ分類体系を示す「content.cattax」、そしてコンテンツのジャンル分類体系を示す「content.gtax」という、これら3つの整数値を常に意識し、適切な値を設定・確認することが求められる。デフォルト値は便利な半面、見えないところで意図しない挙動を引き起こす危険性をはらんでいるため、安易に頼るべきではないのだ。

関連コンテンツ

関連IT用語

関連ITニュース