이메일을 추적하는 방법은 Google Apps Script로 열립니다.



지난 블로그에서 우리는 어떻게 우리가 setup Email Marketing using Google Apps Script 할 수 있는지에 대해 이야기했습니다. 다음 블로그에서 수신자가 이메일을 열었는지 여부를 추적하는 방법에 대해 이야기하겠다고 약속했습니다. 이는 Google Apps Script 및 추적 픽셀을 사용하여 구현할 수 있습니다. 이메일 열기를 추적하는 것은 이메일 마케팅 캠페인의 성공을 측정하는 데 중요하지만 가능한 모든 방법으로 수신자의 개인 정보를 유지해야 합니다.

내용물


  • 상태 열 추가 중
  • 이메일 추적 코드 작성
  • 웹 앱으로 배포
  • 이메일에 추적 픽셀 추가
  • 결과

  • 전제 조건



    시작하기 전에 setup Email Marketing using Google Apps Script에서 설명한 모든 단계를 따르십시오.

    1. 상태 컬럼 추가



    Google 시트를 설정했으면 시트에 상태 열을 추가합니다. 이 열은 이메일 열기를 추적하는 데 사용됩니다.

    Google 시트에 사용자 세부 정보를 입력합니다.

    2. 이메일 추적 코드 작성



    이제 이전 블로그에서 작성한 스크립트에 코드를 추가할 시간입니다.

    작업 흐름은 정말 간단합니다. width="0"및 height="0"인 HTML 파일에 태그를 추가합니다. src 속성에 일부 쿼리 매개변수와 함께 스크립트 URL을 추가합니다. 이러한 종류의 이미지를 추적 픽셀이라고 합니다. 수신자가 이메일을 열면 GET 요청이 src 속성에 지정된 URL로 전송됩니다. Google Apps Script에서 이 GET 요청을 처리하고 쿼리 매개변수를 기반으로 Google 시트를 업데이트합니다.

    Main.gs 에서 template.email = email을 추가합니다. template.name = 이름 이후; sendEmails 함수의 라인:

    function sendEmails(mail_template='content',
                        subject='Testing my Email Marketing') {
    
      // get the active spreadsheet and data in it
      var id = SpreadsheetApp.getActiveSpreadsheet().getId();
      var sheet = SpreadsheetApp.openById(id).getActiveSheet();
      var data = sheet.getDataRange().getValues();
    
      // iterate through the data, starting at index 1
      for (var i = 1; i < data.length; i++) {
        var row = data[i];
        var email = row[0];
        var name = row[1];
    
        // check if we can send an email
        if (MailApp.getRemainingDailyQuota() > 0) {
    
          // populate the template
          var template = HtmlService.createTemplateFromFile(mail_template);
          template.name = name;
          template.email = email; // add this line
          var message = template.evaluate().getContent();
    
          GmailApp.sendEmail(
            email, subject, '',
            {htmlBody: message, name: 'RavSam Team'}
          );
        }
      }
    }
    


    이메일 열기를 추적하는 코드를 추가해 보겠습니다.

    // handles the get request to the server
    function doGet(e) {
      var method = e.parameter['method'];
      switch (method) {
        case 'track':
          var email = e.parameter['email'];
          updateEmailStatus(email);
        default:
          break;
      }
    }
    


    위의 코드는 GET 요청을 처리합니다. 쿼리 매개변수 메서드의 값이 track 인 경우 쿼리 매개변수 email의 값을 가져와서 updateEmailStatus 함수에 전달합니다. updateEmailStatus 함수에 대한 코드를 작성해 보겠습니다.

    function updateEmailStatus(emailToTrack) {
    
      // get the active spreadsheet and data in it
      var id = SpreadsheetApp.getActiveSpreadsheet().getId();
      var sheet = SpreadsheetApp.openById(id).getActiveSheet();
      var data = sheet.getDataRange().getValues();
    
      // get headers
      var headers = data[0];
      var emailOpened = headers.indexOf('status') + 1;
    
      // declare the variable for the correct row number
      var currentRow = 2;
    
      // iterate through the data, starting at index 1
      for (var i = 1; i < data.length; i++) {
        var row = data[i];
        var email = row[0];
    
        if (emailToTrack === email) {      
          // update the value in sheet
          sheet.getRange(currentRow, emailOpened).setValue('opened');
          break;
        }
        currentRow++;
      }
    }
    


    코드의 주석에 잘 설명되어 있습니다. Google 시트의 데이터를 반복하고 이메일을 emailToTrack 변수와 비교하기만 하면 됩니다. 일치하는 항목을 찾으면 해당 이메일의 상태 열이 열림으로 설정됩니다.

    3. 웹 앱으로 배포



    GET 요청을 처리하려면 스크립트를 웹 앱으로 배포해야 합니다. 웹 앱으로 배포하려면 게시 > 웹 앱으로 배포… 앱에 액세스할 수 있는 사람: 익명을 포함한 모든 사람으로 설정하고 업데이트를 클릭합니다.

    4. 이메일에 추적 픽셀 추가하기



    content.html에서 추적 픽셀을 추가합니다.

    <!DOCTYPE html>
    <html>
      <head>
        <base target="_top">
      </head>
      <body>
        <!-- add this img tag -->
        <img src="https://script.google.com/macros/s/AKfycbxyhzk8JpzP1S-vXp6UVAOtQzN9qKqHLaKxiHr2cZ6mLsZ7EJcG/exec?method=track&email=<?= email ?>" width="0" height="0"> 
    
        Hi <?= name ?>. We are testing our beta features for email marketing.
      </body>
    </html>
    


    은 템플릿 변수라고 하며 sendEmails 함수로 채워집니다.

    4. 스크립트 실행



    자, 추적할 수 있는 성공적인 이메일 마케팅 캠페인을 시작하는 데 필요한 모든 설정을 완료했습니다. sendEmails 기능을 실행하고 사용자를 대신하여 받은 편지함을 확인합니다.

    결과



    이제 추적 이메일 열기 구현에 성공했는지 여부를 확인할 때입니다. 이메일을 열어 Google 시트가 업데이트되었는지 확인합니다.

    와! 수신자가 이메일을 열면 Google 시트가 자동으로 업데이트된 것을 볼 수 있습니다. 이것이 Google Apps Script의 힘입니다. 널리 사용되지는 않지만 이를 통해 구현할 수 있는 많은 것들이 있습니다. 우리 팀에 대한 의심이나 감사가 있으면 아래 의견에 알려주십시오.

    좋은 웹페이지 즐겨찾기