このページの本文へ

パーソナライズ対応!Google Appsでメールマガジン配信システム (4/5)

2014年06月16日 11時00分更新

文●掌田津耶乃

  • この記事をはてなブックマークに追加
本文印刷

ドキュメントを作る

 作成した「メルマガ・テンプレート」ドキュメントにテンプレートの内容を記述しましょう。今回は以下のテキストを記述しておきます。

リスト4


オンラインストア「ABC」メールマガジン

{title}

{read}
=======================================================
{head}
=======================================================
{content}

-------------------------------------------------------
オンラインストア「ABC」
http://abc-sample.jp/webstore/
mailto:online-shop@abc-sample.jp

 見ればわかるとおり、具体的な内容はなく、いくつか並んでいる{○○○}という項目は、メールマガジンに掲載するさまざまな情報のプレースホルダー(情報がはめ込まれる場所)です。メールマガジン作成時には、それぞれのプレースホルダーに具体的な内容がはめ込まれます。

メールマガジン作成フォームの用意

 テンプレートができたので、メールマガジンの内容を作成するフォームを作ります。Googleドライブの「作成」ボタンから「フォーム」を選択し、新しいフォームを用意してください。タイトルを「メルマガ作成」にし、適当なテーマを選択してOKします。

新しいフォームを用意し、「メルマガ作成」とタイトルを付ける。テーマはデフォルトにしておいた

 作成したら、「フォームの設定」で、「このフォームを表示する際に○○へのログインを求める」「自動的に回答者の○○ユーザー名を取得する」のチェックボックスをそれぞれONにしてください。これで、Google Appsドメイン以外のアクセスを禁止し、誰がログインし投稿したかの記録できます。なお、Google Appsのアカウントでない場合、これらの機能は使えません。

フォームの設定にあるチェックボックスを設定する

項目を作成する

 メールマガジンの内容を入力するためのフォーム項目を作成します。今回は、テキストの項目が1つ、段落テキストの項目が5つ、計6つの項目を用意します。以下のように作成してください。

【1つ目】

  • 質問のタイトル:タイトル
  • 質問の形式:テキスト
  • 「必須の質問」のチェックをONにする

【2つ目】

  • 質問のタイトル:リード文
  • 質問の形式:段落テキスト
  • 「必須の質問」のチェックをONにする

【3つ目】

  • 質問のタイトル:ファッションおすすめ
  • 質問の形式:段落テキスト
  • 「必須の質問」のチェックをONにする

【4つ目】

  • 質問のタイトル:日用雑貨おすすめ
  • 質問の形式:段落テキスト
  • 「必須の質問」のチェックをONにする

【5つ目】

  • 質問のタイトル:靴・バッグおすすめ
  • 質問の形式:段落テキスト
  • 「必須の質問」のチェックをONにする

【6つ目】

  • 質問のタイトル:コンテンツ
  • 質問の形式:段落テキスト
  • 「必須の質問」のチェックをONにする

作成したフォームの項目。全部で6つの項目を用意した

メールマガジン作成のスプレッドシートにスクリプトを用意

 メルマガ作成フォームに入力した内容を基に、メールマガジンを作成するスクリプトを用意します。フォームの「回答を表示」ボタンをクリックして、回答を記録しているスプレッドシートを開いてください。「回答を表示」ボタンがない場合は、「回答を選択」ボタンで新しいスプレッドシートを設定してから開いてください。

「回答を表示」ボタンをクリックしてスプレッドシートを開く

 開いたスプレッドシートの「ツール」メニューから「スクリプトエディタ...」を選んでスクリプトエディタを開きます。上部の「無題のプロジェクト」をクリックし、「メルマガ作成(回答)」と名前を付けておきましょう。

「スプレッドシートのスクリプトエディタを開き、「メルマガ作成(回答)」と名前を付ける

 リスト4のスクリプトを記述します。「☆メルマガ・テンプレートのID☆」には先ほど調べておいたメルマガ・テンプレートのID、『☆「メルマガ作成(回答)」スプレッドシートのID☆』にはメルマガ作成(回答)のスプレッドシートのIDを記述します。リスト1で説明した方法でIDを調べて記述してください(「メルマガ作成(回答)」スプレッドシートのスクリプトエディタで「function checkId」を実行する)。

リスト4


function makeMagazine(e) {
  var title = e.namedValues['タイトル'];
  var read = e.namedValues['リード文'];
  var content = e.namedValues['コンテンツ'];
  var file = DriveApp.getFileById("☆メルマガ・テンプレートのID☆");
  var d = new Date();
  var newfile1 = file.makeCopy("メールマガジン(ファッション)" + d);
  var doc1 = DocumentApp.openById(newfile1.getId());
  var body1 = doc1.getBody();
  body1.replaceText('{title}', title);
  body1.replaceText('{read}', read);
  body1.replaceText('{head}', e.namedValues['ファッションおすすめ']);
  body1.replaceText('{content}', content);
  var newfile2 = file.makeCopy("メールマガジン(日用雑貨)" + d);
  var doc2 = DocumentApp.openById(newfile2.getId());
  var body2 = doc2.getBody();
  body2.replaceText('{title}', title);
  body2.replaceText('{read}', read);
  body2.replaceText('{head}', e.namedValues['日用雑貨おすすめ']);
  body2.replaceText('{content}', content);
  var newfile3 = file.makeCopy("メールマガジン(靴・バッグ)" + d);
  var doc3 = DocumentApp.openById(newfile3.getId());
  var body3 = doc3.getBody();
  body3.replaceText('{title}', title);
  body3.replaceText('{read}', read);
  body3.replaceText('{head}', e.namedValues['靴・バッグおすすめ']);
  body3.replaceText('{content}', content);
  var sheet = SpreadsheetApp.openById("☆「メルマガ作成(回答)」スプレッドシートのID☆").getSheets()[0];
  var row = sheet.getLastRow();
  sheet.getRange(row, 9).setValue(newfile1.getId());
  sheet.getRange(row, 10).setValue(newfile2.getId());
  sheet.getRange(row, 11).setValue(newfile3.getId());
}

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています