Measurement Protocol로 시작하는 메일 매거진 분석
Measurement Protocol이란?
Measurement Protocol은 유니버설 애널리틱스에서 추가된 새로운 기능으로 이미지 비콘으로 직접 정보를 전송할 수 있는 구조입니다. 이미지가 요청되면 애널리틱스가 발동하므로 아래와 같은 추적이 가능합니다.
이번에는 「Measurement Protocol」을 이용하여 메일 매거진의 해석을 실시합니다.
어떻게 할까?
이벤트 추적을 사용하여 메일 매거진이 열린 수와 클릭된 링크와 그 수를 집계합니다. 메일 매거진이 열렸는지 여부는 이미지가 로드된 것으로 판단할 수 있습니다.
또, 링크 클릭의 수는 클릭시에 PHP에 일단 날려 이벤트 트래킹 발동, 그 후 날리고 싶은 URL에 리디렉션으로 취득할 수 있을 것 같습니다.
설치 방법
아래 PHP의 "트래킹 ID"를 자신의 사이트의 것으로 수정하고 서버에 UP합니다.
만약
[YourDomain/mail/]
에 UP 된 것으로 합니다.index.php
<?php
// 必須の値「イベント カテゴリ」「イベント アクション」が共に存在し空で無い時のみ発動
if(isset($_GET['ec']) && is_string($_GET['ec']) && isset($_GET['ea']) && is_string($_GET['ea'])) {
$cid = "";
// クライアントIDのCookieがある場合利用
// Desktop GmailはCookieが効く?Android Gmail及びOutLook 2007は効かず。。
if(isset($_COOKIE["measurementprotocol"]) && strlen($_COOKIE["measurementprotocol"]) == 36) $cid = $_COOKIE["measurementprotocol"];
// 無い場合生成
else $cid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff));
// プロトコルのバージョン(必須)
$param = "?v=1";
// トラッキングID(必須)
$param .= "&tid=UA-XXXXXXXX-X";
// クライアントID(必須)
$param .= "&cid=".$cid;
// IP オーバーライド(任意)
$param .= "&uip=".$_SERVER['REMOTE_ADDR'];
// ユーザー エージェント オーバーライド(任意)
$param .= "&ua=".rawurlencode($_SERVER['HTTP_USER_AGENT']);
// 画面の解像度(任意)
$param .= isset($_GET['sr']) && is_string($_GET['sr']) ? "&sr=".$_GET['sr'] : '';
// 表示領域のサイズ(任意)
$param .= isset($_GET['vp']) && is_string($_GET['vp']) ? "&vp=".$_GET['vp'] : '';
// ドキュメントのエンコード(任意)
$param .= "&de=UTF-8";
// 画面の色(任意)
$param .= isset($_GET['sd']) && is_string($_GET['sd']) ? "&sd=".$_GET['sd']."-bit" : '';
// ユーザーの言語(任意)
$param .= "&ul=ja";
// ヒットタイプ(必須)
$param .= "&t=event";
// 非インタラクション ヒット(任意)
$param .= "&ni=1";
// イベント カテゴリ(必須)
$param .= isset($_GET['ec']) && is_string($_GET['ec']) ? "&ec=".$_GET['ec'] : '';
// イベント アクション(必須)
$param .= isset($_GET['ea']) && is_string($_GET['ea']) ? "&ea=".$_GET['ea'] : '';
// イベントラベル(任意)
$param .= isset($_GET['el']) && is_string($_GET['el']) ? "&el=".$_GET['el'] : '';
// キャッシュの無効化(任意)
$param .= "&z=".mt_rand(100000000000, 199999999999);
// Measurement Protocol叩く
file_get_contents("https://ssl.google-analytics.com/collect".$param);
// Cookieの保存(アナリティクス同様、とりあえず2年とする)
setcookie("measurementprotocol", $cid, time() + (3600 * 24 * 365 * 2));
if (isset($_GET['url']) && is_string($_GET['url'])) {
// リダイレクト
header("Location:".$_GET['url']);
} else {
// 画像ヘッダ出力
header("Content-type: image/gif");
// 1px×1pxの透過GIF画像を表示
echo base64_decode("R0lGODlhAQABAID/AP///wAAACwAAAAAAQABAAACAkQBADs=");
}
}
?>
다음은 메일 매거진의 HTML 예제입니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>メルマガTEST</title>
</head>
<body>
<!--リンククリック計測-->
<p><a href="[YourDomain]/mail/?ec=HTML%E3%83%A1%E3%83%BC%E3%83%AB%E8%A7%A3%E6%9E%90&ea=%E3%83%A1%E3%83%AB%E3%83%9E%E3%82%AC2015%E5%B9%B410%E6%9C%88%E5%8F%B7&el=%E3%83%AA%E3%83%B3%E3%82%AF1&url=https%3a%2f%2fwww%2egoogle%2eco%2ejp%2f">リンク1</a></p>
<p><a href="[YourDomain]/mail/?ec=HTML%E3%83%A1%E3%83%BC%E3%83%AB%E8%A7%A3%E6%9E%90&ea=%E3%83%A1%E3%83%AB%E3%83%9E%E3%82%AC2015%E5%B9%B410%E6%9C%88%E5%8F%B7&el=%E3%83%AA%E3%83%B3%E3%82%AF1&url=https%3a%2f%2fwww%2egoogle%2eco%2ejp%2f">リンク2</a></p>
<p><a href="[YourDomain]/mail/?ec=HTML%E3%83%A1%E3%83%BC%E3%83%AB%E8%A7%A3%E6%9E%90&ea=%E3%83%A1%E3%83%AB%E3%83%9E%E3%82%AC2015%E5%B9%B410%E6%9C%88%E5%8F%B7&el=%E3%83%AA%E3%83%B3%E3%82%AF1&url=https%3a%2f%2fwww%2egoogle%2eco%2ejp%2f">リンク3</a></p>
<!--メルマガ開封-->
<img src="[YourDomain]/mail/?ec=HTML%E3%83%A1%E3%83%BC%E3%83%AB%E8%A7%A3%E6%9E%90&ea=%E3%83%A1%E3%83%AB%E3%83%9E%E3%82%AC2015%E5%B9%B410%E6%9C%88%E5%8F%B7&el=%e3%83%a1%e3%83%bc%e3%83%ab%e9%96%8b%e5%b0%81">
</body>
</html>
매개변수
이름
필수 or 선택
용도
ec
이벤트 카테고리
필수
애널리틱스에서 이벤트 카테고리 값 설정
ea
이벤트 액션
필수
애널리틱스에서 이벤트 액션 값 설정
el
이벤트 라벨
선택
애널리틱스에서 이벤트 라벨 값 설정
url
리디렉션 대상 URL
선택
링크 클릭시 리디렉션합니다. 없으면 이미지 비콘 출력
※ 「이벤트 카테고리」 「이벤트 액션」은 필수이므로, 파라미터가 있는 경우에만 계측되도록 하고 있습니다.
※ 「이벤트 카테고리」 「이벤트 액션」 「이벤트 카테고리」는 일본어 OK입니다만, UTF-8로 URL 인코딩한 것을 부가해 주세요.
※링크 클릭 계측시는 태그의 href 속성에 【url】파라미터를 부가해 주세요. 이쪽도 UTF-8에서 URL 엔코딩한 값이 필요합니다. 매개 변수는 필요하지 않습니다. 결과 애널리틱스에서 다음과 같이 얻을 수 있습니다.
또한, 「Measurement Protocol」의 파라미터에 대해서는 공식 페이지에서 상세히 설명하고 있습니다.
Measurement Protocol 매개 변수 참조 | 분석 Measurement Protocol | Google Developers
Reference
이 문제에 관하여(Measurement Protocol로 시작하는 메일 매거진 분석), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryo_hisano/items/4faaa7f80966a0c3b6ea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)