個人情報などのセキュアな情報については、httpsで保護されたページからの送信を前提としていますが、どうしてもデータ送信元のページをhttpsにすることができない場合、下記の方法で、タグの内容を暗号化したものを送信することができます。

送信仕様

送信タグ

<script type="text/javascript">
tracker.track('enced', { data: "暗号化されたタグ情報", iv: "16文字の半角英数字" });
</script>
  • 「暗号化されたタグ情報」は、下記の「暗号化が必要なタグ内容」をJSONシリアライズした文字列に対して、256bitのAES(CTR方式・PKCS#5)で暗号化した上でbase64エンコードしたものを挿入してください。
    ※ その他の暗号化方式はご利用いただけません。ご了承ください。
  • 暗号化に必要なキーは管理画面からご確認ください。
  • ivは任意の16文字の値を設定してください。できれば送信毎に再生成されることが望ましいです。
  • 文字コードはUTF-8です。

暗号化が必要なタグ内容

JSON形式でお送りください

{
    events:[{
        event_name: 'タグ種別識別子',
        values: {
            タグ内容
        }
    }]
}

タグ種別識別子

タグ名称 オブジェクト タグ種別識別子
userタグ tracker.user identify
コンバージョンタグ tracker.buy buy

日付型データを送信する場合の注意事項

  • 日付型データを暗号化して送信する場合は、JSON内のkey名末尾を_dateとして、valueには時刻を10桁のUNIX時間に変換した値を数値型で指定する必要があります。
  • 変換例
時刻 JavaScriptでの記法 暗号化時に指定する値
1970/01/01 9:00 (日本標準時) new Date(“1970/01/01”) 0
2018/04/01 9:00 (日本標準時) new Date(“2018/04/01”) 1522508400
2020/01/01 9:00 (日本標準時) new Date(“2020/01/01”) 1577804400

userタグを暗号化する場合

以下に、具体的な例を挙げて説明します。
通常のuserタグ

<script type="text/javascript">
tracker.user({
    user_id : "10",
    family_name : "軽手",
    first_name : "太郎",
    email : "test@example.com",
    age: 20,
    birth_date: new Date("1998/04/01")
});
</script>

上記のタグを暗号化して送信する場合、userタグなので、タグ種別識別子は identify、タグ内容については下記の部分となります。

user_id : "10",
family_name : "軽手",
first_name : "太郎",
email : "test@example.com",
age: 20,
birth_date: new Date("1998/04/01")

この場合、暗号化前の「暗号化されたタグ情報」は下記の通りです。

{
    events:[{
        event_name: 'identify',
        values: {
            user_id : "10",
            family_name : "軽手",
            first_name : "太郎",
            email : "test@example.com",
            age: 20,
            birth_date: 8913564000
        }
    }]
}

上記のObjectをJSONシリアライズした文字列を256bitのキーを用いてAESで暗号化処理を行い、base64でエンコード処理を行います。

今回、暗号化キーを仮に abcdefghijklmnopqrstuvwxyz123456 とします。
※キーは各プロジェクトで異なります。管理画面でご確認ください。

opensslコマンドを利用した場合のサンプルコードは以下のようになります。
※openSSLのバージョンは1.0.1以降です。
※暗号化キー(-K)、IV(-iv)は、HEX形式に変換する必要があります。

echo '{"events":[{"event_name":"identify","values":{"user_id":10,"family_name":"軽手","first_name":"太郎","email":"example@karte.io"}}]}' | openssl enc -aes-256-ctr -base64 -p -e -nosalt -K 6162636465666768696a6b6c6d6e6f707172737475767778797a313233343536 -iv 31323334353637383930313233343536

変換を行うと、下記のようなデータが生成されます。(opensslコマンド以外を利用した場合、生成されるデータが異なる場合があります。)

INp67f3s8lGcSDYoGBtNBi7E/R8qr1GNcGoUJLLKTECm+4aI5hqCfTyLqfq2BBFo44fC9cWj1de16MVnFnh0CRk5GYg5PNdTMysvSQNaqG1OAph6jjzixDXH0U1x6WhCabeo/bcn/ezezcBCDzs6jRYYvDtJJrt0JWgzf+Ymt32ZAdbDN9lf

上記がタグに挿入するデータとなります。
実際に挿入したデータは下記のようになります。

<script type="text/javascript">
tracker.track('enced', { data: "INp67f3s8lGcSDYoGBtNBi7E/R8qr1GNcGoUJLLKTECm+4aI5hqCfTyLqfq2BBFo44fC9cWj1de16MVnFnh0CRk5GYg5PNdTMysvSQNaqG1OAph6jjzixDXH0U1x6WhCabeo/bcn/ezezcBCDzs6jRYYvDtJJrt0JWgzf+Ymt32ZAdbDN9k=", iv: "1234567890123456"});
</script>

これをuserタグの代わりに、サイト上に表示させることで、ユーザー情報を暗号化した状態で送信することができます。

コンバージョンタグを暗号化する場合

コンバージョンタグの場合、タグ種別識別子はbuyを利用してください。
暗号化の手順についてはuserタグと同様です。