Google広告の予算データをSlackで見るたい!!実はできます→Google Ads ScriptとSlack Botによる自動投稿システムの構築方法【サンプルコードあり】

この記事の内容について、業務や開発でお困りの場合は個別に対応できます。

イントロダクション

本記事は、Google Ads ScriptとSlack Botを連携させ、キャンペーン情報や消化金額を自動でSlackチャンネルへ投稿するシステムの構築方法を詳細に解説する。自動化によって業務の効率化を図ると同時に、情報共有のタイムラグを解消できる点はSEO対策としても有効である。最新技術を取り入れた本手法は、マーケティングや広告運用に携わる企業、担当者にとって必見の内容となる。

簡単に言うと?

このシステムは、広告の運用情報(たとえばキャンペーンの費用や効果)を毎日自動でまとめてSlackに送信する仕組みである。つまり、パソコンの前にずっといなくても、最新の情報をチーム全員がリアルタイムに確認できるようになる点が画期的である。

具体的な利点は以下の通りである:

  • 自動化による効率化
     手作業で数値をチェックしたり報告書を作成する必要がなくなるため、時間や労力が大幅に節約できる。これは、勉強で言えば、宿題の一部を自動で解決してくれる便利なツールのようなものだ。
  • リアルタイムの情報共有
     チーム全員が同じ情報を同時に受け取ることができるため、問題が起きたときや改善策を考えるときに迅速な対応が可能になる。例えば、クラスで急に試験日程が変更されたときに、全員がすぐに連絡を受け取るのと同じようなメリットがある。
  • エラーの削減
     手動入力や報告のミスがなくなるため、正確な情報管理が実現できる。これは、計算ミスを防いで正しい結果を得ることと似た利点である。

このように、このシステムは単に情報を自動で送るだけでなく、チームの仕事をスムーズにし、全員が同じ正確な情報に基づいて行動できる環境を整える点で非常に役に立つ。

システム構築の全体像

本システムは、以下の流れで構築される。

  1. Slackチャンネルの作成
    キャンペーン情報の受信専用チャンネル(例:#4_google-ads)を作成する。
  2. Slack APIの設定
    Botユーザーを作成し、OAuth 2.0による認証を利用して安全にメッセージを送信できるように設定する。
  3. Google Ads Scriptの設定
    Google Ads Scriptを用い、キャンペーンパフォーマンスレポートから昨日のデータを取得する処理を構築する。
  4. Slack Bot Tokenを利用した送信設定
    取得したキャンペーンデータを整形し、Slack API経由で指定のチャンネルに自動投稿するコードを作成する。
  5. Google Ads上でのスクリプト確認
    作成したスクリプトをGoogle Adsのダッシュボードから確認し、デバッグおよび運用を行う。

各ステップの詳細解説

1. Slackチャンネルの作成

まず、情報を集約する専用のSlackチャンネル(例:#4_google-ads)を作成する。チャンネル名は目的に応じて設定することで、情報の整理と迅速なアクセスが可能となる。
メリット:

  • 情報の一元管理: 全ての自動投稿情報を一箇所に集約でき、過去の履歴を容易に追跡できる。
  • リアルタイム共有: 関係者が即座に最新情報を確認でき、迅速な意思決定が可能となる。

2. Slack APIの設定

Slack APIにアクセスし、自身のSlackアカウントで新規アプリを作成する。Botユーザーを有効化し、OAuth & Permissionsにおいて「chat:write」などの必要な権限を追加する。ワークスペースにインストール後、Bot Token(例:xoxb-XXXXXXXXXX)を取得する。
メリット:

  • セキュアな認証: OAuth 2.0を利用することで、認証と認可のプロセスが安全に管理される。
  • 柔軟な権限設定: 必要な機能に限定して権限を付与することで、セキュリティリスクを低減できる。

3. Google Ads Scriptの設定

Google Adsの管理画面から「ツール」 > 「一括操作」 > 「スクリプト」を選択し、新規スクリプトとして本システムの基幹となるコードを作成する。
メリット:

  • 自動化による業務効率化: 手動作業の手間を省き、エラーの発生率を削減する。
  • 定期実行による安定運用: スケジュール設定により、毎日決まった時刻に最新情報が自動送信される。

4. Slack Bot Tokenを利用した送信設定

以下に、実際のコード例を示す。コードは、昨日のキャンペーン情報と消化金額を取得し、Slackチャンネルへ自動投稿する処理を実装している。

function main() {
  // Slack Bot Tokenと対象チャンネルのIDを設定する
  var slackBotToken = "****あなたのトークンをいれてください****";
  var slackChannel = "***チャンネルIDを入れてください***"; 

  // タイムゾーンを大阪(JST)に設定する
  var timezone = "Asia/Tokyo";
  
  // 現在時刻から1日前(昨日)の日時を取得する
  var now = new Date();
  var yesterday = new Date(now.getTime() - (24 * 60 * 60 * 1000));
  
  // 日付をYYYY/MM/DD形式にフォーマットする
  var dateString = Utilities.formatDate(yesterday, timezone, "yyyy/MM/dd");
  
  // Google Adsからキャンペーンデータを取得する
  var campaignData = getGoogleAdsData();
  
  // Slackに送信するメッセージを組み立てる
  var message = dateString + "\n---\n"; 
  campaignData.forEach(function(campaign) {
    message += campaign.name + ":" + (campaign.cost / 1000000) + "円\n---\n";
  });
  
  // Slackにメッセージを送信する
  sendMessageToSlack(slackBotToken, slackChannel, message);
}

function getGoogleAdsData() {
  var query = "SELECT CampaignId, CampaignName, Cost " +
              "FROM CAMPAIGN_PERFORMANCE_REPORT " +
              "DURING YESTERDAY";
  
  var report = AdsApp.report(query);
  var rows = report.rows();
  var campaigns = [];
  
  while (rows.hasNext()) {
    var row = rows.next();
    campaigns.push({
      name: row["CampaignName"],
      cost: parseFloat(row["Cost"])  // 単位はmicros。後で換算する
    });
  }
  
  return campaigns;
}

/**
 * Slack Botを用いて指定のチャンネルへメッセージを送信する
 * @param {string} token - Slack Bot Token
 * @param {string} channel - Slackチャンネル名またはID
 * @param {string} text - 送信するメッセージ
 */
function sendMessageToSlack(token, channel, text) {
  var url = "https://slack.com/api/chat.postMessage";
  var payload = {
    channel: channel,
    text: text
  };
  var options = {
    method: "post",
    contentType: "application/json; charset=utf-8",
    headers: {
      "Authorization": "Bearer " + token
    },
    payload: JSON.stringify(payload)
  };
  
  // POSTリクエストをSlackに送信する
  var response = UrlFetchApp.fetch(url, options);
  Logger.log(response.getContentText());
}

ポイント:

  • 日付処理: タイムゾーンの指定や日付フォーマットの整形により、意図した日時の情報を取得可能である。
  • データ取得: Google Adsのキャンペーンパフォーマンスレポートから必要な情報を抽出し、後続の処理に利用する。
  • Slackへの送信: Bearer Token方式で認証を行い、JSON形式のペイロードを組み立てることで、確実にSlackに情報を送信できる。

※.

Slack Bot Tokenの取得方法

  1. Slack APIページへアクセスする
    https://api.slack.com/apps にアクセスし、「Create New App」ボタンをクリックする。
  2. アプリの作成
    アプリ名と対象のワークスペースを入力し、アプリを作成する。
  3. Botユーザーの有効化
    左側のメニューから「Bot Users」を選択し、Botユーザーを作成・有効化する。
  4. OAuth & Permissionsの設定
    左側の「OAuth & Permissions」から、必要なスコープ(例:chat:write など)をBot Token Scopesに追加する。
  5. アプリのインストール
    「Install App to Workspace」をクリックしてアプリをワークスペースにインストールする。インストール後、「Bot User OAuth Token」が表示される。このトークンは「xoxb-」で始まる文字列である。
  6. トークンの設定
    表示されたBot User OAuth Tokenをコピーし、コード内の slackBotToken に設定する。

SlackチャンネルIDの取得方法

  1. 対象チャンネルを開く
    SlackアプリまたはWeb版にログインし、自動投稿の対象となるチャンネル(例:#4_google-ads)を開く。
  2. チャンネルのURL確認
    チャンネル名をクリックすると、チャンネルの詳細情報が表示されるか、ブラウザのURLバーにチャンネルURLが表示される。
    例: https://app.slack.com/client/TXXXXXXX/CXXXXXXXX のような形式になっている。
  3. チャンネルIDの抽出
    URL中の「C」で始まる部分(上記例では「CXXXXXXXX」)がチャンネルIDである。このIDをコピーし、コード内の slackChannel に設定する。

5. Google Adsでスクリプトを確認する方法

Google Adsの管理画面にログイン後、
「ツール」 > 「一括操作」 > 「スクリプト」を選択し、作成した「Slackに送信」スクリプトの内容や実行ログを確認する。
メリット:

  • 一元管理: ダッシュボード上で全てのスクリプトを管理でき、修正やデバッグが容易である。
  • リアルタイムモニタリング: Logger.logを活用することで、実行結果やエラーの詳細を即時に把握可能である。

SEOを意識したポイント

  • キーワードの最適化: タイトルや見出しに「Google Ads Script」「Slack Bot」「自動投稿」「業務効率化」などの主要キーワードを盛り込み、検索エンジンの評価を向上させる。
  • 内部リンク・外部リンクの活用: 関連する技術記事や公式ドキュメントへのリンクを設置し、ユーザーの回遊率を高める。
  • コンテンツの充実: 手順ごとに具体的なコード例と解説を掲載することで、ユーザーの疑問を解消し、滞在時間を延長する。
  • モバイルフレンドリー: 記事全体をシンプルなHTML構造にすることで、モバイル環境でも読みやすくする。
  • 定期的な更新: 技術の進展に合わせ、コードや手順の最新情報にアップデートすることで、常に高い評価を維持する。

結論

本記事で解説したGoogle Ads ScriptとSlack Botを連携する自動投稿システムは、広告運用の自動化と業務効率化に大きく寄与する。SEOを意識した記事構成と具体的な手順、コード例を提供することで、同様のシステム構築を目指す担当者や企業にとって有益な情報となる。自動化の導入により、迅速かつ正確な情報共有を実現し、競争力の向上を図るべきである。

ZIDOOKA!

この記事の内容について、対応できます

この記事に関連する技術トラブルや開発上の問題について個別対応を行っています。

個別対応は3,000円〜 内容・工数により事前にお見積りします
最後までお読みいただきありがとうございました

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

AI活用に関するポリシー

当サイトでは、記事の執筆補助にAIを活用する場合がありますが、全面的な委任は行いません。