Theo dõi email marketing bằng analytics

Các bạn có đang đau đầu với bài toán kiểm tra theo dõi email marketing, mình xin giới thiệu cách sử dụng analytics làm công cụ đếm hoàn toàn free mà hiệu quả trên sức mong đợi

google_analytics_email_image

 

Điều này cũng giống như nhận được một xác nhận đã đọc cho các tin nhắn email của bạn, tuy nhiên hiện tại Gmail vẫn chưa có tính năng này, các hoạt động mở email sẽ tự động được ghi lại trong Google Analytics của bạn.

Tiện ích này được phát triển bởi tác giả Amit Agarwal.

Nguyên tắc hoạt động

Để theo dõi được Email thì nhất thiết bạn phải có tài khoản Google Analytic (ở mục website bạn điền bất kỳ website nào).

Và ở mỗi Email sẽ được gán một mã Analytics gửi đi kèm, cụ thể ở đây sẽ có 1 hình ảnh trong suốt được gán mã analytics kèm mỗi Email với kích thước 1 x 1. Khi người dùng mở Email nó sẽ được báo cáo tới Google Analytics.

Nghe ý tưởng có vẻ đơn giản phải không. Nhưng để làm được điều này thì chúng ta phải sử dụng một ứng dụng khác của Google đó là Google Script.

Cách thêm mã analytics để theo dõi Gmail

Bước 1: Truy cập vào Gmail và bạn tiến hành soạn Email mới. Bạn cũng có thể đính kèm các file tùy ý. Sau khi bạn soạn xong chờ 1 lát để Gmail lưu lại với thư nháp. Bạn có thể làm nhiều thư với nội dung, chủ đề khác nhau. Lưu ý tất cả các thư nháp bạn đều phải để tên người nhận nhé.

Bước 2: Truy cập Google Driver và tạo 1 bảng tính mới. Bạn lưu với tên tùy ý nhé. Bây giờ ở phần menu bạn chọn Công cụ (Tool) > Trình chỉnh sửa tập lệnh (Script editor). Sau đó bạn chọn Dự án trống (Blank Project). Bạn xóa tất cả các code và dán vào đoạn code dưới đây:

/*
 
Email Tracking with Google Analytics
====================================
 
Written by Amit Agarwal on 09/24/2013
 
*/
 
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menu = [
null,
{name: "Initialize", functionName: "reset"},
{name: "Send Mail", functionName: "launch"},
null,
{ name: "Help and Support »", functionName: "help"},
null
];
ss.addMenu("Email Tracker", menu);
ss.toast("Please click the Email Tracker menu above to continue..", "", 5);
}
 
function reset() {
return;
}
 
function help() {
var html = HtmlService.createHtmlOutputFromFile('help')
.setTitle("Google Scripts Support")
.setWidth(400)
.setHeight(260);
var ss = SpreadsheetApp.getActive();
ss.show(html);
}
 
function launch() {
var threads = GmailApp.search('in:draft', 0, 10);
if (threads.length === 0) {
Browser.msgBox("We found no templates in Gmail. Please write a draft message in your Gmail mailbox to continue.");
return;
}
var myapp = UiApp.createApplication().setTitle('Email Tracker').setHeight(160).setWidth(300);
var top_panel = myapp.createFlowPanel();
top_panel.add(myapp.createLabel("Please select a draft message"));
var lb = myapp.createListBox(false).setWidth(250).setName('templates').addItem("Select draft...").setVisibleItemCount(1);
 
for (var i = 0; i < threads.length; i++) {
lb.addItem((i+1)+'- '+threads[i].getFirstMessageSubject().substr(0, 40));
}
 
top_panel.add(lb);
top_panel.add(myapp.createLabel("").setHeight(10));
top_panel.add(myapp.createLabel("Please enter your Analytics Profile ID"));
var name_box = myapp.createTextBox().setName("name").setWidth(250);
top_panel.add(name_box);
top_panel.add(myapp.createLabel("").setHeight(5));
 
var universal = myapp.createCheckBox("Use Universal Analytics").setName("universal").setId("universal");
top_panel.add(universal);
top_panel.add(myapp.createLabel("").setHeight(5));
 
var ok_btn = myapp.createButton("Send Mail");
top_panel.add(ok_btn);
myapp.add(top_panel);
 
var handler = myapp.createServerClickHandler('sendMail').addCallbackElement(lb).addCallbackElement(name_box).addCallbackElement(universal);
ok_btn.addClickHandler(handler);
 
SpreadsheetApp.getActiveSpreadsheet().show(myapp);
}
 
function sendMail(e) {
 
var draft = GmailApp.search("in:drafts")[(parseInt(e.parameter.templates.substr(0, 2))-1)].getMessages()[0];
var email = draft.getBody();
var attachments = draft.getAttachments();
var to = draft.getTo();
var cc = draft.getCc();
var bcc = draft.getBcc();
var subject = draft.getSubject();
var id = draft.getId();
 
var regMessageId = new RegExp(id, "g");
 
if (email.match(regMessageId) != null) {
var inlineImages = {};
var nbrOfImg = email.match(regMessageId).length;
var imgVars = email.match(/<img[^>]+>/g);
var imgToReplace = [];
for (var i = 0; i < imgVars.length; i++) {
if (imgVars[i].search(regMessageId) != -1) {
var id = imgVars[i].match(/Inline\simages?\s(\d)/);
imgToReplace.push([parseInt(id[1]), imgVars[i]]);
}
}
imgToReplace.sort(function (a, b) {
return a[0] - b[0];
});
for (var i = 0; i < imgToReplace.length; i++) {
var attId = (attachments.length - nbrOfImg) + i;
var title = 'inlineImages' + i;
inlineImages = attachments[attId].copyBlob().setName(title);
attachments.splice(attId, 1);
var newImg = imgToReplace[i][1].replace(/src="[^\"]+\"/, "src=\"cid:" + title + "\"");
email = email.replace(imgToReplace[i][1], newImg);
}
}
 
var trackingGIF = e.parameter.universal? getTrackingGIFNew(e.parameter.name, to, subject) : getTrackingGIF(e.parameter.name, to, subject);
 
email = email + "<img src='" + trackingGIF + "' width='1' height='1'/>";
GmailApp.sendEmail(to, subject, email, {attachments: attachments, htmlBody: email, cc: cc, bcc: bcc, inlineImages: inlineImages});
GmailApp.moveMessageToTrash(draft);
SpreadsheetApp.getActive().toast("Sending mail to " + to);
Utilities.sleep(2000);
var app = UiApp.getActiveApplication();
app.close();
return app;
}
 
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
};
 
function guid() {
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
}
 
function getTrackingGIFNew(account, email, subject) {
 
try {
 
/* Random ID to prevent browser caching */
var z = (Math.round((new Date()).getTime()/1000)).toString();
 
var request = "https://ssl.google-analytics.com/collect?"
+ "v=1&t=event&ec=Email%20Open"
+ "&tid=" + account
+ "&z=" + z
+ "&cid=" + guid()
+ "&ea=" + encodeURIComponent(subject.replace(/'/g, ""))
+ "&el=" + hide_email(email);
 
return request;
 
}
catch(e) {
Logger.log(e.toString());
}
}
 
function getTrackingGIF(account, email, subject) {
 
try {
 
/* Google Analytics Account ID like UA-1234-56 */
var utmac = account;
 
/* Random ID to prevent browser caching */
var utmn = (Math.round((new Date()).getTime()/1000)).toString();
 
/* Relative path of the Web Page to be tracked */
var utmp = "/inbox/" + email.replace("@", ".");
 
/* Page Title - this is a URL-encoded string */
var utmdt = encodeURIComponent(subject);
 
var utme = encodeURIComponent("5(Email Open*" + hide_email(email) + "*" + subject + ")");
 
var request = "http://www.google-analytics.com/__utm.gif?"
+ "utmac=" + utmac + "&"
+ "utmn=" + utmn + "&"
+ "utmp=" + utmp + "&"
+ "utmdt=" + utmdt + "&"
+ "utme=" + utme + "&"
+ "utmr=0&utmwv=5.4.5&utmt=event&utmcc=__utma%3D999.999.999.999.999.1%3B" ;
 
return request;
 
}
catch(e) {
Logger.log(e.toString());
}
}
 
function hide_email(email) {
var str = email.split("@");
return str[0][0] + Array(str[0].length).join("-") + "@" + str[1][0] + Array(str[1].length).join("-");
}

 

Bạn tiến hành lưu lại.

Bước 3: Chọn Run > OnInstall

Sau khi Install xong bạn quay lại tab bảng tính bạn tạo ban nãy. Lúc này trên thanh menu có nút Email Tracker. Bạn nhấn vào đó và chọn Send Email. Bạn chọn một trong các thư nháp mà mình muốn gửi đi. Sau đó bạn thêm mã Analytics của google vào và ấn Send Mail. Mail của bạn sẽ được chuyển tới người nhận ngay lập tức.

Khi mail của bạn đã được gửi thì bạn có thể vào Google Analytics để theo dõi tình trạng Email của mình.

Theo dõi Email trên Google Analytics

Bạn mở báo cáo của Analytics và trong phần thời gian thực bạn chọn Event. Ở đó bạn sẽ thấy các sự kiện mới với các loại Email mở như người mở thư Gmail của bạn. Bạn có thể click vào danh mục để xem các địa chỉ email của người nhận những người đã nhìn thấy email của bạn.

Email-Analytics

Kết luận

Phương pháp này giúp bạn thống kê những khách hàng quan tâm đến sản phẩm của mình, giúp bạn phân loại khách hàng tốt hơn, từ đó đưa ra chiến lược phù hợp.

Mình đã thử và thấy hoạt động ngoài sức mong muốn, Ngoài việc thống kê số lượt mở còn thống kê email mở .

Tuy nhiên nhược điểm là các email này đều ở dạng h****@g****

Nguồn. Seobymoz

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *