無料の自動化ツールだけで作った、
広告と予約の見える化(中小企業のデータ活用)

広告費・予約数・売上を、毎朝ひらけばひと目で分かる状態にしたい。ただ、高額なBIツールを入れる予算はない。そう感じている中小企業の経営者へ向けて書いています。私たちは、Googleが無料で提供している自動化ツール「GAS」だけを使って、この見える化を作りました。何を・なぜ・どうやって作ったかを、実例としてお伝えします。

Googleスプレッドシートで作った広告・予約の見える化の画面イメージ|無料の自動化ツールGASで作った中小企業のデータ活用
FIELD — RYOKAN / JAPAN  ·  私たちが運営する旅館

先に結論。無料ツールだけで見える化はできる

結論を先にお伝えします。高額なBIツールを入れなくても、広告と予約の見える化はできます。

1
使ったのは、無料の自動化ツール「GAS」だけです。Googleが無料で提供しているツールで、追加の月額費用はかかりません。
2
広告費・予約数・売上を、毎朝自動で1枚にまとめます。スプレッドシートを毎朝ひらけば、前日までの数字が並んでいる状態です。
3
新しいシステムを入れる必要はありません。すでに使っているスプレッドシートの延長線上に作れます。
4
大事なのは道具でなく、毎朝数字を見る習慣です。仕組みは、その習慣を続けやすくするための土台にすぎません。
5
裏側は「doGet」と「data.json」という2つの仕組みの二段構えです。片方が詰まっても、もう片方が数字を出し続けます。仕組みの詳細は後半で具体的に説明します。

ここから先は、なぜ高額なツールを使わなかったか、どうやって作ったかを、順番にお伝えします。

なぜ、高額なツールを使わなかったか

広告費・予約数・売上を見える化するツールは、世の中にたくさんあります。ただ、その多くは、月額数万円からのBIツールや、専用の分析サービスです。

地方の小さな会社にとって、月額数万円は軽くありません。売上が不安定な時期ほど、固定費は増やしたくないものです。

私たちも、同じ立場でした。私たちが運営する旅館は、全9室の小さな宿です。高額なツールを入れる前に、まず「本当に必要な機能は何か」を考えました。

必要だったのは、複雑な分析機能ではありません。広告費・予約数・売上という数字を、毎朝ひらけば見える状態にすることだけでした。それなら、無料のGoogle Apps Script(GAS)で十分だと判断しました。

もうひとつ理由があります。専用のBIツールを入れると、そのツールの操作を新しく覚える必要があります。私たちが選んだGASは、すでに使っているGoogleスプレッドシートの延長線上にあるツールです。新しい画面を覚える負担がなく、経理も現場も、いつも見ているスプレッドシートを開くだけで数字を確認できます。道具を増やさないことも、続けるための条件だと考えました。

仕組みの全体像。doGetとdata.jsonの二段構え

ここからは、実際の仕組みを具体的にお伝えします。専門用語がいくつか出てきますが、考え方はシンプルです。「その場で計算して返す仕組み」と「毎朝の結果を保存しておく仕組み」の、2つを組み合わせているだけです。

まず、広告費と予約数を1枚のシートに集める

土台になるのは、1枚のGoogleスプレッドシートです。「日付・広告費・表示回数・クリック数・予約数・売上」といった列を用意します。すでに広告管理画面や予約台帳で数字を管理している会社であれば、この列構成は大きくは変わりません。

このスプレッドシートに、GAS(Google Apps Script)のプログラムを1本ひもづけます。GASは、Googleスプレッドシートの拡張機能から無料で使える、自動化のためのプログラム実行環境です。プログラミングの知識がなくても、Googleが用意している関数(広告APIを呼び出す、シートに書き込む、など)を組み合わせるだけで、ある程度のことができます。

doGetという「窓口」を1つ作る

GASには、doGetという特別な関数があります。これを書いておくと、そのGASプロジェクトに専用のURL(Webアプリとしての公開URL)が発行され、そのURLにアクセスするたびに、doGetの中身が実行される仕組みになります。

私たちは、このdoGetの中に「スプレッドシートの数字を読み取って、JSON形式(プログラムが読み書きしやすいデータの形)に整えて返す」処理を書きました。つまりdoGetは、ダッシュボード側から見た「一次データの窓口」です。誰かがダッシュボード画面を開くと、裏側でこのURLが呼ばれ、その時点のスプレッドシートの最新の数字がそのまま返ってきます。

それだけでは足りない。data.jsonという「控え」を用意する理由

doGetだけに頼る運用には、弱点があります。GASのWebアプリ機能は、無料である代わりに、一定時間内に呼び出せる回数や、1回の処理にかけられる時間(実行時間)に制限があります。アクセスが重なったり、スプレッドシートの行数が多くなってくると、doGetの応答が遅くなったり、一時的にエラーが返ってくることがあります。

そこで私たちは、同じGASプロジェクトに、毎朝決まった時刻に自動で動く処理をもう1つ用意しました。この処理は、その日の集計結果をdata.jsonという静的なファイルに書き出して保存します。ダッシュボード側は、まずdoGetにアクセスしにいき、もし応答がない・エラーが返ってきた場合は、このdata.jsonを代わりに読みにいく「フォールバック」構成にしています。

この二段構えにしておくと、doGet側で何か不具合が起きても、少なくとも前日の朝時点までの数字は必ず表示され続けます。「今日の数字が1分単位で最新かどうか」より、「毎朝開いた時に、必ず数字が出ている」ことのほうが、日々の経営判断には重要だと考え、この構成にしました。

実際に作るときの5ステップ

ここまでの仕組みを、実際に作る手順に分解するとこうなります。専門知識がなくても、全体の流れとして知っておくと、外部に依頼する時にも話が通じやすくなります。

1
スプレッドシートに列を用意する。「日付・広告費・表示回数・クリック数・予約数・売上」など、毎朝並べたい数字の列を先に決めます。あとから列を増やす前提で、余白の列も少し残しておくと直しやすくなります。
2
拡張機能>Apps Scriptを開き、データ取得の関数を書く。広告費は、Meta広告などのAPIをUrlFetchAppという機能で呼び出して取得します。予約数は、予約管理システムのAPI、もしくは出力されるCSVを読み込んで取得します。
3
取得した数字を、シートに1行追記する処理を書く。ここで大事なのは、「同じ日付の行がすでにあるかどうか」を必ず確認してから書き込むことです。確認せずに追記だけを繰り返すと、あとで説明する二重計上の原因になります。
4
時間主導型トリガーを設定する。Apps Scriptエディタの左メニューにある「トリガー」から、「時間主導型」を選び、毎朝3時など、決まった時刻に3の処理が自動で実行されるように設定します。これで、人が毎回ボタンを押さなくても数字が集まり続けます。
5
doGet関数とdata.json書き出し処理を追加する。前章で説明した「その場で返す窓口(doGet)」と「毎朝の控え(data.json)」の両方をGASプロジェクトに書き加えます。この2つが揃って、はじめてダッシュボードとして安定して使える状態になります。

ここまでできれば、あとは毎朝スプレッドシートかダッシュボード画面を開くだけです。次の章では、実際にこの手順で作る時につまずきやすいポイントを共有します。

つまずきやすい3つの設定ミス

無料で作れるとはいえ、GASでの自動集計は、いくつか典型的なつまずきポイントがあります。私たちが実際に遭遇した・気をつけている3つを共有します。

1
同じ日のデータを重複して追記してしまう(二重計上)。トリガーを手動で再実行したり、同じ処理が2回動いてしまうと、同じ日付の行がシートに2行できてしまい、広告費や予約数が実際より多く見えてしまいます。対処法はシンプルで、追記する前に必ず「その日付の行がすでにあるか」を確認し、あれば上書き、なければ追加、という条件分岐を入れることです。これを入れていないと、あとで数字がずれた原因を探すだけで半日かかることもあります。
2
古いトリガーを消し忘れて、同じ処理が二重に動く。プログラムを直して再設定したつもりが、以前設定したトリガーが残ったままになっていることがあります。この場合、修正前と修正後の処理が両方動いてしまい、1のような二重計上や、意図しないタイミングでの実行が起こります。対処法は、Apps Scriptエディタの「トリガー」画面で、いま設定されているトリガーの一覧を必ず確認し、使っていないものは削除することです。プログラムを直した日は、必ずこの一覧をチェックする習慣にしています。
3
GASの実行時間制限(1回の処理は6分まで)に引っかかる。取得する期間が長かったり、データ量が多いと、処理が始まって6分を超えたところで強制的に中断され、途中までしか反映されないことがあります。対処法は、一度に取りにいく期間を分割することです。たとえば「過去1年分」を一気に取りにいくのではなく、「昨日の分だけ」を毎朝取りにいく形にしておけば、通常はこの制限にはまず引っかかりません。

実際に見えるようになった数字

見える化を続けた結果、私たちが運営する旅館では、次の数字を毎朝確認できるようになりました。

売上・前年同月比
240%
前年同月の2.4倍に成長
最高月商
1,100万円
過去最高を記録
広告のROAS・最高
1,200%超
月額30万円の広告費で
自社事業 · 私たちが運営する旅館 · 実際の運用データ

これらの数字は、特別な分析ツールで出したものではありません。毎朝自動で集めたデータを、ただ並べて見ているだけです。数字が見える状態を続けたことが、判断の材料になりました。

Before / After。見える化の前後で変わったこと

Before:広告費は広告管理画面、予約数は予約台帳、売上は別のシートと、見る場所がばらばらでした。月末に経理が3つを突き合わせて、ようやく先月の実績が分かる状態でした。広告費を増やす・減らすの判断も、翌月に持ち越すことが多くありました。

After:毎朝スプレッドシートを開くと、前日までの広告費・予約数・売上が1行にまとまって並んでいます。前年同月比240%、最高月商1,100万円、最高ROAS1,200%超(月額広告費30万円)といった数字は、この「毎朝1行が積み上がる」仕組みを続けた結果として見えてきたものです。突き合わせの作業自体がなくなり、見るだけで済むようになりました。

見える化で変わったこと

感覚でなく、数字で決められるようになった

見える化する前は、「なんとなく最近予約が伸びている気がする」といった感覚で、判断していた部分がありました。感覚は、外れることもあります。

いまは、広告費と予約数を並べて見比べられます。増えているのか、減っているのか。数字を見てから判断できるようになりました。

判断が速くなった

以前は、月末にならないと数字がまとまらず、判断が翌月にずれ込むことがありました。毎朝数字が並ぶようになってからは、変化に早く気づけます。

広告費を増やすか減らすか。予約が少ない週に何を打つか。判断までの時間が、明らかに短くなりました。

正直な話。仕組みだけでは数字は動かない

見える化は、数字を動かす魔法ではありません。見えるようになった数字をもとに、実際に手を打たなければ、何も変わりません。

それでも、見える状態を続けたことは、私たちにとって次の一手を考える土台になりました。無料ツールでも、続ければ意味のある仕組みになると感じています。

よくある質問

GASを使うのに、専門的なプログラミング知識は必要ですか。

ある程度の設定は必要です。ただ、ゼロから開発するわけではありません。すでにあるスプレッドシートを土台に、自動で数字を集める部分だけを組み立てます。難しい部分は、私たちが代わりに構築することもできます。

doGetとdata.json、両方作らないといけませんか。

まずはdoGetだけでも動きます。ただ、私たちは両方セットで作ることをおすすめしています。doGetだけの場合、GAS側で一時的な不具合が起きると、数字が表示されない時間ができてしまいます。data.jsonという控えを毎朝作っておけば、doGetが詰まっても、少なくとも前日までの数字は必ず見られる状態を保てます。

無料ツールだけで、本当にBIツールの代わりになりますか。

高度な分析や、大量データの処理が必要な場合は、専用ツールが向いていることもあります。ただ、広告費・予約数・売上を毎朝見る、という目的だけなら、無料のGASで十分足りると私たちは考えています。

数字が急に2倍になっていました。故障でしょうか。

その症状は、記事内でも触れた「同じ日のデータを重複して追記してしまう」二重計上である可能性が高いです。トリガーが二重に設定されていないか、追記処理に重複チェックが入っているかをまず確認してください。原因のほとんどは、この2つのどちらかです。

広告費・予約以外のデータにも使えますか。

はい、使えます。仕組みの考え方は同じです。毎朝取得したいデータがあれば、スプレッドシートに並べる項目を増やすだけです。在庫・問い合わせ件数など、他の数字にも応用できます。

うちの会社にも、同じ仕組みを作ってもらえますか。

はい、ご相談いただけます。業種や、いま使っているツールによって、取得できるデータの形は変わります。まずは現状の数字の管理方法をお聞かせください。

導入には、どのくらいの期間がかかりますか。

データの取得元によって変わります。スプレッドシートで数字を管理している会社であれば、比較的早く形にできます。まずは現状を確認させてください。

無料相談はこちら

広告費・予約数・売上の見える化について、ご相談を承っています。無料ツールでどこまでできるか、まず現状をお聞かせください。データ基盤・ダッシュボード構築のくわしい説明は「サービス紹介」のページをご覧ください。

ご相談は無料です。1営業日以内にご返信します。無理な営業はしません。

関連ページ