Osano の Cookie Consent Test (Opt-Out)

このページで行うこと

Osano の Cookie Consent (Open Source 版) を使ってみる。

Compliance type

Let users opt out of cookies (Advanced)

コード

PHP

if(!isset($_COOKIE['cookieconsent_status']) ||
   strcmp(strtolower($_COOKIE['cookieconsent_status']), 'allow') === 0) {
  // セッションをスタートさせる(セッションクッキーを発行する)
  session_start();
} else if (strcmp(strtolower($_COOKIE['cookieconsent_status']), 'deny') === 0) {
  // セッションを終了させる(セッションクッキーを期限切れにする)
  setcookie (session_id(), "", time() - 3600);
  session_destroy();
  session_write_close();
}

(省略)

// <head> 内で Google Analytics のコードを出力するところ
if (!isset($_COOKIE['cookieconsent_status']) ||
    strcmp(strtolower($_COOKIE['cookieconsent_status']), 'allow') === 0) {
  // ここでコードを出力する
}

JavaScript

window.cookieconsent.initialise({
  "palette": {
    "popup": {
      "background": "#000"
    },
    "button": {
      "background": "#f1d600"
    }
  },
  "type": "opt-out",
  onInitialise: function (status) {
    const type = this.options.type,
           didConsent = this.hasConsented();
    if (type == 'opt-out' && !didConsent) {
      // disable cookies
      document.cookie = "PHPSESSID=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
      document.cookie = "_ga=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=laboradian.com; path=/;";
      document.cookie = "_gid=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=laboradian.com; path=/;";
      document.cookie = "_gat_gtag_UA_XXXXXXXX_YY=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=laboradian.com; path=/;";
    }
  },
  onStatusChange: function (status, chosenBefore) {
    const type = this.options.type,
           didConsent = this.hasConsented();
    if (type == 'opt-out' && !didConsent) {
      // disable cookies
      //window['ga-disable-UA-XXXXXXXX_YY'] = true;
      document.cookie = "PHPSESSID=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
      document.cookie = "_ga=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=laboradian.com; path=/;";
      document.cookie = "_gid=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=laboradian.com; path=/;";
      document.cookie = "_gat_gtag_UA_XXXXXXXX_YY=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=laboradian.com; path=/;";
    }
  },
  // 再度、ポップアップを表示させたとき
  onRevokeChoice: async function () {
    const type = this.options.type;
    if (type == 'opt-out') {
      // enable cookies
      //await fetch('')
    }
  }
});

Google Analytics のスクリプトを読み込む前であれば、以下を実行して Google Analytics を無効にできる。

window['ga-disable-UA-XXXXXXXX_YY'] = true;