パーソナライズ対応!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にする
メールマガジン作成のスプレッドシートにスクリプトを用意
メルマガ作成フォームに入力した内容を基に、メールマガジンを作成するスクリプトを用意します。フォームの「回答を表示」ボタンをクリックして、回答を記録しているスプレッドシートを開いてください。「回答を表示」ボタンがない場合は、「回答を選択」ボタンで新しいスプレッドシートを設定してから開いてください。
開いたスプレッドシートの「ツール」メニューから「スクリプトエディタ...」を選んでスクリプトエディタを開きます。上部の「無題のプロジェクト」をクリックし、「メルマガ作成(回答)」と名前を付けておきましょう。
リスト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());
}