Skip to content

【定額案件用】Crib Notes導入マニュアル

JANetドメイン仕様


1.新トラッキングタグ提供の背景

  • Apple社のオペレーティングシステムであるiOS | High Sierraに置いて、2017年9月のアップデート以降、Intelligent Tracking Prevention(以下、ITP)と呼ばれる、SafariでWebサイトを閲覧する際のプライバシー保護と利便性のバランスをとるための機能を実装
  • これにより、従来3rd Party Cookieを用いて、計測を行っていた広告サービス がトラッカー判定され、ブロックないし、Cookieの削除を行われる為、新たな計測方法を使用しなければ、ブラウザ『Safari』のトラッキングが行えなくなる状況

2.ADWAYS DEEE社の"ITP対応"方針

  • ADWAYS DEEE社では、WEB広告を対象としたJANet|Smart-C|adna等の自社サービスにおけるトラッキングのITP対応化をサービスを横断して、『Crib Notes(クリブノーツ)』として、トラッキング機能の開発を集約
  • 『Crib Notes』は、他サービスの従来の3rd Party Cookieのトラッキング方法ではなく、1st Party Cookieでのトラッキングを行うことで、ITP対応化の機能を担う

3.切り替え方法

3-1.プロモーション情報の確認

『件名:【ITP対応に関してのご案内】ADWAYS DEEE』にて、

担当部署より、メール送付がございましたら、以下二点のご確認・ご対応をお願い致します。

  • タグの設定内容の確認
    • ドメインに過不足がないか
    • JANetやSmart-C等で実施サービスに過不足がないか
    • トリガー(成果タグ発火条件)に過不足がないか

3-2.Crib Notesタグを設置

3-2-1.導入前後のトラッキングイメージ

<<Before>> 3rd Party Cookieのトラッキングイメージ(例:JANet)

<img src="img/old_tracking.png">

<<After>> 1st Party Cookieのトラッキングイメージ(例:Crib Notes x JANet)

img

  • ※Crib Notes計測用パラメータは弊社のシステムにて自動付与致します
  • ※Crib Notes管理画面の設定は弊社にて行います

3-2-2.Crib Notesタグの概要及び設置位置

Crib Notesタグの概要

  • Crib Notesユニバーサルタグの概要
    • 1st Party Cookieにて、流入元・ユーザーの情報を保存・取得する役割
  • Crib Notesコンバージョンタグの概要
    • Crib Notesユニバーサルタグを含む
    • 成果結果情報と成果条件の補助情報などを元に、サービスタグを発火させる役割
貴社のページ Crib Notesユニバーサルタグ Crib Notesコンバージョンタグ
LPページ 〜 コンバージョンページ直前
コンバージョンページ

3-2-3.定額案件へのCrib Notesタグのインストール方法

Crib Notesユニバーサルタグのサンプルコード(設置位置:LPページ 〜 コンバージョンページ直前)
<!-- ここから Crib Notesユニバーサルタグのサンプルコード -->
<script>(function (b, f, d, a, c) {var e = b.createElement(f);e.src = c + "/" + a + "/atm.js";e.id = d;e.async = true;b.getElementsByTagName(f)[0].parentElement.appendChild(e)})(document,"script","__cribnotesTagMgrCmd","コンテナID","https://tag-cribnotes.j-a-net.jp/container_manager");</script>
<!-- ここまで Crib Notesユニバーサルタグのサンプルコード -->
  • サンプルコード上でカスタマイズ必要箇所
    • 『コンテナID』を変更する
      • 『コンテナID』は別途、弊社担当営業より送付します。
  • <head></head>内への設置を推奨
Crib Notesコンバージョンタグのサンプルコード(設置位置:コンバージョンページ)
<!-- ここから Crib Notesコンバージョンタグのサンプルコード -->
<script src="https://tag-cribnotes.j-a-net.jp/support/ntm.js"></script>
<script>
  window.crib.setItem('transaction_id', '成果結果情報');
  window.crib.setItem('thanks_id', 'サンクスID');
</script>

<script>(function (b, f, d, a, c) {var e = b.createElement(f);e.src = c + "/" + a + "/atm.js";e.id = d;e.async = true;b.getElementsByTagName(f)[0].parentElement.appendChild(e)})(document,"script","__cribnotesTagMgrCmd","コンテナID","https://tag-cribnotes.j-a-net.jp/container_manager");</script>
<!-- ここまで Crib Notesコンバージョンタグのサンプルコード -->
  • サンプルコード上でカスタマイズ必要箇所
    • 『成果結果情報』を変更する。
      • 貴社にて、動的に成果結果情報を返すように設定をお願い致します。
    • 『コンテナID』を変更する
      • 『コンテナID』は別途、弊社担当営業より送付します。
    • 『サンクスID』を対象プロモーションのサンクスIDに置き換える
      • 『サンクスID』は別途、弊社担当営業より送付します。
  • <head></head>内への設置を推奨

4.コンバージョンテストを実施

タグが設置完了しましたら、メールに返信する形で、お知らせください。

尚、コンバージョンテスト実施に際して、テスト規定等ございましたら、
合わせてお知らせください。

テスト規定例

氏名:テスト テスト

※テストを実施する際にキャンセル対応等の為に、
  実施時に考慮すべき内容がございましたら、お申し付けくださいませ。


5.テストの完了後、旧タグの削除

Crib Notesタグの実装完了ないし、切り替えが完了しましたら、
旧サービスタグの削除をお願い致します。

旧タグ削除目安のお知らせ

対応完了後、10日間以上の並行運用期間が必要な為、
対応完了時点で旧サービスタグ削除の目安日程をメールにてお知らせします。


Appendix. 成果結果情報の暗号化について

必要に応じて、以下方法にて、成果結果情報を暗号化してください。

構成 暗号化方式 暗号化キー
成果結果情報_暗号化後の値 SHA-512 別途営業担当へご依頼くださいませ
Crib Notesユニバーサルタグのサンプルコード(設置位置:LPページ 〜 コンバージョンページ直前)
<!-- ここから Crib Notesユニバーサルタグのサンプルコード -->
<script>(function (b, f, d, a, c) {var e = b.createElement(f);e.src = c + "/" + a + "/atm.js";e.id = d;e.async = true;b.getElementsByTagName(f)[0].parentElement.appendChild(e)})(document,"script","__cribnotesTagMgrCmd","コンテナID","https://tag-cribnotes.j-a-net.jp/container_manager");</script>
<!-- ここまで Crib Notesユニバーサルタグのサンプルコード -->
  • サンプルコード上でカスタマイズ必要箇所
    • 『コンテナID』を変更する
      • 『コンテナID』は別途、弊社担当営業より送付します。
  • <head></head>内への設置を推奨
Crib Notesコンバージョンタグのサンプルコード(設置位置:コンバージョンページ)
<!-- ここから Crib Notesコンバージョンタグのサンプルコード -->
<script src="https://tag-cribnotes.j-a-net.jp/support/ntm.js"></script>
<script>
  window.crib.setItem('transaction_id', '成果結果情報_暗号化後の値');
  window.crib.setItem('thanks_id', 'サンクスID');
</script>

<script>(function (b, f, d, a, c) {var e = b.createElement(f);e.src = c + "/" + a + "/atm.js";e.id = d;e.async = true;b.getElementsByTagName(f)[0].parentElement.appendChild(e)})(document,"script","__cribnotesTagMgrCmd","コンテナID","https://tag-cribnotes.j-a-net.jp/container_manager");</script>
<!-- ここまで Crib Notesコンバージョンタグのサンプルコード -->
  • サンプルコード上でカスタマイズ必要箇所
    • 『成果結果情報_暗号化後の値』を変更する。
      • 貴社にて、動的に『成果結果情報_暗号化後の値』を返すように設定をお願い致します。
    • 『コンテナID』を変更する
      • 『コンテナID』は別途、弊社担当営業より送付します。
    • 『サンクスID』を対象プロモーションのサンクスIDに置き換える
      • 『サンクスID』は別途、弊社担当営業より送付します。
  • <head></head>内への設置を推奨

補足

  • 成果結果情報の部分は、プログラムにより動的にID(成果結果情報)が出力される様、クライアント様に設定していただく部分になります。
  • 成果ごとにユニークな値を出力させてください。(値が重複するとカウントが発生しません)
  • この値は必ずエンコード処理をして下さい。
  • マルチバイト文字は使わずに、254バイド以内でお願いします。
  • 数字の「0」から始まらない様にして下さい。(情報をExcelで扱うことができなくなるため)
  • 暗号化後の部分には、エンコード処理をしていない成果結果情報に、暗号化キーを連結し、暗号化文字列を作成してしていただきます。
  • 成果結果情報と暗号化後の値をアンダースコア(_)で連携したものを、transaction_idの部分に使用していただきます。

サーバーサイドの成果結果情報暗号化サンプルコード集

Perl

#!/usr/bin/perl

use strict;
use warnings;
use Digest::SHA qw(sha512_hex);

main();

sub main {
    my $data = 'sample_data';
    my $key = 'adways1234';
    print sha512_hex($data . $key), "\n";
}

PHP

<?php
$input = "sample_data";
$key = 'adways1234';
echo hash('sha512', $input . $key), "\n";
?>

PHPのバージョン5.1.2以上の場合は、動作確認はしております。


Java

ロジック側

import java.security.NoSuchAlgorithmException;

public class Example{
    public static void main(String[] args) throws NoSuchAlgorithmException{
        String value= "sample_data";
        String key= "adways1234";
        String hash= Encrypter.getHash(value+key);
        System.out.println(hash+"\n");
    }
}

ハッシュ値生成機能を提供する(参照される側)

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Encrypter{
    public static String getHash(String org) throws NoSuchAlgorithmException{
        if (org== null){
            return null;
        }
        MessageDigest md= null;
        md= MessageDigest.getInstance("SHA-512");
        md.reset();
        md.update(org.getBytes());
        byte[] hash= md.digest();

        StringBuffer sb= new StringBuffer();
        int cnt= hash.length;
        for(int i= 0; i< cnt; i++){
            sb.append(Integer.toHexString( (hash[i]>> 4) & 0x0F ) );
            sb.append(Integer.toHexString( hash[i] & 0x0F ) );
        }
        return sb.toString();
    }
}