Measurement Protocol로 시작하는 메일 매거진 분석

Measurement Protocol이란?



Measurement Protocol은 유니버설 애널리틱스에서 추가된 새로운 기능으로 이미지 비콘으로 직접 정보를 전송할 수 있는 구조입니다. 이미지가 요청되면 애널리틱스가 발동하므로 아래와 같은 추적이 가능합니다.
  • 메일 매거진의 개봉율과 링크 클릭 수를 확인하십시오.
  • Garakee에서 액세스 분석을 수행합니다.
  • JavaScript가 OFF 인 사용자 수를 확인합니다.

    이번에는 「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
  • 좋은 웹페이지 즐겨찾기