【解決せず】Googleアドセンス「IABのTC文字列に関する問題が検出」とは何?

この記事にはアフィリエイト広告および広告が含まれています。

スポンサーリンク

ある日、突然Google Adsenseの管理画面上部に以下のようなメッセージが表示されるようになりました。

1つ以上のサイトまたはアプリでIABのTC文字列に関する問題が検出されました。これらのエラーは欧州ユーザー向けの広告配信に影響することがあります。「EUユーザーの同意」ページで詳細レポートをご確認ください。
「EUユーザーの同意」に移動

この記事ではこのエラーメッセージがいったい何なのか、またどうすればエラーメッセージを消すことができるのか自分なりに調べて、解決した方法を紹介します。

残念ながら解決しませんでした。この記事を投稿した2ヶ月後に再びエラーが出てしまいました。そのためこの記事は根本的な解決にはなっていないようです。(追記:2023年6月20日)

とはいえ、一時的に表示がなくなったので記録としてこの記事を残しておきます。

ちなみにこのエラーはGDPR(EU一般データ保護規則)に関連するメッセージのようです。

目次

IABのTC文字列に関する問題が検出というエラーメッセージ

冒頭でも触れたようにある日突然、Google Adsenseに見慣れないメッセージが表示されました。

これがそのメッセージです。

1つ以上のサイトまたはアプリでIABのTC文字列に関する問題が検出されました。これらのエラーは欧州ユーザー向けの広告配信に影響することがあります。「EUユーザーの同意」ページで詳細レポートをご確認ください。
「EUユーザーの同意」に移動

後述しますが、いろいろ情報を探っていく中で日本語では解決方法を見つけられないとわかったので、言語設定を変えて英語ではどんな風に書かれているのかもチェックしました。

スポンサーリンク

We’ve detected an issue on your IAB TC string on one or more of your sites or apps. These errors may affect your ability to serve ads to European users. A detailed report is available for you on the EU User consent page.

エラーメッセージの中にある「EUユーザーの同意」というリンクをクリックすると、「TCFエラーレポートをダウンロード」というリンクがあります。

そのリンクをクリックすると、CSVファイルがダウンロードされます。

CSVファイルにはこんなことが書かれています。

僕の場合はエラーは「3.3」です。「TCFエラーの詳細」と言うページによると「エラー3.3」の原因は「TC 文字列の最終更新日が 13 か月以上前です」と書かれていました。

日本語で原因と対策を調べても情報がまるでない

今回の問題について日本語で原因や対策を調べてもまったく情報がありませんでした。

日本にはたくさんのブロガーがいるのに、この問題に関して情報が全然ないのは、ヨーロッパの広告規制についてのエラーだからなのかもしれません。

ネットでなかなか情報を得られなかったので、Google Adsenseのサポートチームに今回の件について問い合わせをしたところ、「EUユーザーの同意ポリシーに関するサポートはしておりません」という何とも残念な回答が。

つまり八方塞がりでした。そこで英語でいろいろ情報を集めてみました。

スポンサーリンク

ある記事にたどり着き試したところ解決した(今のところ)

英語で時間に余裕があるときだけとは言え、何ヶ月にも渡っていろいろ情報収集をしました。

幾つか試したりもしましたが解決できず途方に暮れていると、とある記事に出会いました。

それが「AdSense IAB TCF Error 3.3: How to delete old string and reobtain consent – Stack Overflow」こちらです。

まさに僕が抱えていた問題に遭遇した人がいました。

この記事によると下記のJavaScriptをHeaderに埋め込むことで問題が解決するとのことでした。

JavaScript
<script>
  // Delete the Funding Choices cookie if consent is more than 12 months old
  try {
    const nm = "FCCDCF";        // Match name of Funding Choices cookie
    const dm = "mydomain.com";  // Match domain of Funding Choices cookie
    const pa = "/";             // Match path of Funding Choices cookie
    let tc = ('; ' + document.cookie).split('; ' + nm + '=');
    if (tc.length === 2) {
      tc = decodeURIComponent(tc.pop().split(';').shift());
      tc = JSON.parse(tc)[3][0].substring(1,9);
      tc = Uint8Array.from(window.atob(tc), (v) => v.charCodeAt(0));
      let dt = (tc[0] * 2**28) + (tc[1] * 2**20) + (tc[2] * 2**12) +
               (tc[3] * 2**4)  + (tc[4] >> 4);
      if (Date.now() / 1000 - dt / 10 > 86400 * 365)
        document.cookie = nm + "=;path=" + pa + ";domain=" + dm +
                          ";expires=" + new Date(0).toUTCString();
    }
  } finally {}
</script>

ちなみに”mydomain.com”はご自身のブログのドメイン名に書き換えてください。

このJavaScriptを入れてもすぐにはエラーは消えません。
このJavaScriptを入れないと、エラーの最終日がアップデートされ続けますが、JavaScriptを入れると最終日は更新されず、2-3週間経つとGoogle Adsenseの画面上に出てくるエラー自体が消えました。

根本的な解決策なのかわかりません

スポンサーリンク

正直なところ、今回の問題が根本的な問題を解決しているのかわかりません。ただエラーは表示されなくなりました。

また上で紹介したJavaScriptを入れたことでAdsenseが変になったり、妙に単価が下がったりは「今のところ」していません。

以前、プラグインを入れたところ一時的にエラーが消えましたが、しばらくしたら再発したので、今回どうなるか、今のところわかりません。

僕自身も他の人の記事を参考にしただけなので、もしこの記事を参考にされる場合は「自己責任」でお試しください。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

Apple製品をはじめとしたガジェットの使い方やレビューを書いています。レビュー依頼は問い合わせから。
Apple製品ほかガジェットが好き。40代2児の父。2014年からブログ運営を仕事にしてます。

目次