GASの活用事例 【URL監視編】
自分のサイトや会社のサイトのURL監視をおこないたけど、CMAN等外部のサービスを利用してもいいけどURL監視のためにアカウント発行するのは面倒だったので、今回は、GASを使って特定のURLを自動で監視し、異常があった場合にのみメールで通知する仕組みを利用しました
GAS(Google Apps Script)とは?
GASは、Googleが提供するプログラミング言語です。JavaScriptをベースにしており、Googleアカウントさえあればブラウザ上で誰でも無料で開発を始めることができます。
サーバーの構築や複雑な環境設定が不要なため、初心者でもハードルが低く、業務効率化の強力な味方となります。
GASに出来ること
GASの強みは、Googleサービス(Spreadsheet, Gmail, Calendar, Driveなど)を連携・自動化できる点にあります。
- スプレッドシートの自動編集: フォームの回答を自動で集計・加工。
- メールの自動送受信: 特定の条件を満たしたときにGmailを送信。
- 外部APIとの連携: SlackやLINEに通知を送ったり、外部サイトからデータを取得。
- 定期実行(トリガー): 「毎日9時」「5分ごと」など、決まった時間にプログラムを動かす。
GAS(Google Apps Script)を無料枠について
2026年現在、個人のGoogleアカウント(無料版)における主要な制限事項は以下の通りです。
1. 実行時間の制限
- 1回あたりの最大実行時間:6分
- スクリプトが起動してから終了するまでが6分を超えると、強制終了されます。大量のデータを処理する場合は、処理を分割する工夫が必要です。
- 1日の総実行時間:90分
- そのアカウントで動いているすべてのスクリプトの合計実行時間です。
2. トリガー(自動実行)の制限
- 同時実行数:30
- 複数のスクリプトを同時に動かせる数には限りがあります。
- 1スクリプトあたりのトリガー数:20
- 「5分おきに実行」などの時間主導型トリガーは、1つのプロジェクトにつき20個までです。
Googleサービス連携の制限(1日あたり)
URL監視やメール通知に関連する主な制限は以下の通りです。
| 項目 | 無料版(個人)の制限 |
| URL Fetch(外部サイトへのアクセス) | 20,000 回 / 日 |
| メール送信(GmailApp) | 100 通 / 日 |
| トリガー実行総時間 | 90 分 / 日 |
URL監視ツールを作成する
今回は、指定したURLにアクセスし、エラー(ステータスコードが200以外)が発生した際にメールを送るスクリプトを作成します。
function checkWebsite() {
const targetUrl = "https://example.com"; // 監視したいURL
const recipient = "your-email@example.com"; // 通知先メールアドレス
try {
const response = UrlFetchApp.fetch(targetUrl, {muteHttpExceptions: true});
const responseCode = response.getResponseCode();
// ステータスコードが200(正常)でない場合
if (responseCode !== 200) {
sendErrorMail(targetUrl, responseCode, recipient);
}
} catch (e) {
// そもそもアクセスできない場合
sendErrorMail(targetUrl, "アクセス不能", recipient);
}
}
function sendErrorMail(url, code, recipient) {
const subject = "【警告】サイト異常検知通知";
const body = `以下のサイトで異常が検知されました。\n\n対象URL: ${url}\nステータス: ${code}\n\n至急確認してください。`;
GmailApp.sendEmail(recipient, subject, body);
}
設定のポイント
- UrlFetchApp: 指定したURLにリクエストを送る機能です。
- トリガー設定: GASエディタの左側にある時計アイコンから「10分おき」や「1時間おき」に実行されるよう設定します。これにより、24時間365日の自動監視が可能になります。
定期実行設定
- 作成したプロジェクトを選択します
- 左メニューより、「トリガー」を選択します(目覚ましい時計みたいなアイコン)
- 以下の図のように設定すると5分ごとに実行されます


