メインコンテンツへスキップ
見出し画像

【初心者向け】広告運用担当の一歩・レポート作成を始める3ステップ

    WEB広告担当の方、クライアントへの報告はどうされていますか?

     「広告運用はできるけど、レポートや報告はどうすればいいんだろう?どの数値を見て何を伝えるのが正解なんだろう?」「そもそも、この数字が良いのか悪いのか、判断の目安がわからない…」「先方の理解度に合わせるためにはどんなダッシュボードを作るべき?」

     初心者の方だと、そんな悩みを抱えているかもしれません。見やすいレポートの作成ってどうやるんだ!と数字を凝視しているうちに、最悪「CV〇〇件、CTRが……」と本当に数字の報告だけして終わってしまったり。それは、決してあなたの努力が足りないわけではありません。広告レポートにおいて、本当に見るべきポイントや、その数字を「伝わる情報」に変える方法が、まだ明確になっていないだけなのかも。


    筆者の自己紹介

     はじめまして。広告運用3年目のHです。主にGoogleリスティングの担当が多いです。ついこの前3人分の業務を抱えながらWEB広告初心者のクライアントにむけて広告を内製化という修羅場を経験しました(笑)


    この記事で得られること

     明日からお客さんに「これが知りたかったんだよ」と言ってもらえるようなレポートづくりのノウハウを紹介していきます。この記事があなたの「広告分析レポート探し」の道しるべとなりますように。


    目次


    #00 まずはここから。広告レポートで必ず押さえるべき基礎的な指標

    「どの数値を見て何を伝えるのが正解なんだろう?」 

    WEB広告の分析に使われる代表的な指標をご紹介します。

    CTR:表示回数に対してクリックされた割合のこと。クリック率。

    CVR:セッションやクリックなどのアクションのうち、コンバージョン(CV)を達成した割合のこと。コンバージョン率。

    ROAS:広告費用に対して得られた収益の割合、つまり広告費用対効果のこと。計算方法はROAS = (広告経由の売上額) ÷ (広告費))× 100(%)
    例えば、広告施策の目的が購入というCVの場合を考えます。この時、CTRが高くても、CVRが低ければその広告が純粋に高いパフォーマンスだとは言えないわけです。また、ROASが100%を切ってしまっていたら、ボトルネックを探したり、他の施策への転換を図らないといけないでしょう。

    「そもそも、この数字が良いのか悪いのか、判断の目安がわからない…」

    CVRを例にとってみましょう。

    一般的に、Web広告全体のコンバージョン率はおおよそ 2〜3%前後 が平均と言われています。しかし、実際には商材の特性やユーザーの購買ステップ、検討期間の長さによって大きく変動するため、一律の基準だけでは判断できません。(中略)全体平均としては、リスティング広告が 3.75%、ディスプレイ広告が 0.77% とされています。

    (リンク先:リスティング広告の平均CVRを公開!業界別比較と成果を上げる改善ポイント より引用)

     一般的には、上記のようにリスティング広告は2〜3%、ディスプレイ広告は1%を下回ると言われます。しかし、業界ごとに見るとその実態は様々です。また、施策の目的や、プラットフォーム・チャネルなど環境によっても大きく左右されます。ご自身の業界の平均と、実測値とを見比べて見ることは、考察に大きく役立つでしょう。

    参考:WEB広告の業界別CVRの目安


    #01 広告の実績報告、どうですか(できてますか/どうやってますか)

    Why:なぜ分析・報告が重要なのか
    A. 広告運用において報告は不可分、入稿までデリバリして終わり!ではないためです。本来の目的=CV増のためにはパフォーマンスを把握し、次のアクションを回す必要があります。そのためには、クライアントやメンバーにも現状理解、すなわち広告パフォーマンスに何が起こっているか把握してもらう必要があります。

    How:どうやって見やすいレポートを作る?
    A. Looker Studioを使ってレポーティングのtipsを紹介していきます!


    #02 可視化&自由度高い! Looker Studioで効果測定ダッシュボード作成

    基本:GA4・GoogleAdsとデータを連携

     一番よく使うやり方ですね。案件によってはデータソースが複数あることもあります。そのような場合は、それぞれに特有のディメンションからなるグラフを組み合わせて、1ページにまとめることができます。

    例:リスティング広告経由のCVダッシュボード
    ・クリック数、CTR、CVR、CV数、ROAS等スコアボード(GoogleAds)
    ・今月の広告CV実績棒グラフ(GoogleAds)
    ・広告経由CVのアイテム注文数・収益リスト(GA4)
    ・広告経由CVの平均単価推移(GA4)
    「リスティング広告」というチャネルで、1枚のダッシュボードに情報をまとめることができました。

    画像

    発展:Looker Studio内でディメンション・指標のカスタムをしよう

    1.計算フィールド・カスタムグループを使おう

     ダッシュボードができたらディメンションの表示方法をカスタムしてみましょう。クライアントや、案件・商材に合わせたレポートにワンランクアップします。

    例:CASE関数を使ってチャネル「Organic Search」を「自然検索」に変換
    GA4のディメンション「セッションのデフォルトチャネルグループ」の英語表記を変えてしまいましょう。

    1. グラフ設定のディメンションを選択し、計算フィールドを追加します。

    2. 計算フィールド名を決めます

    3. 関数入力枠に以下の内容を入力して適用します

    CASE
    WHEN セッションのデフォルトチャネルグループ = "Organic Search" THEN "自然検索"
    END

    ディメンション:デフォルトチャネルグループは「Organic Search」に、新しく作った計算フィールドは「自然検索」が適合してます。(※画像だと自然検索以外がnullになっています)

    画像

    2.テキストと画像を使えばダッシュボード付き操作マニュアルも作れる

     Looker Studioもスライド系ツールのようなテキストボックスや、画像の貼り付けが使えます。
    ・グラフに説明書きを加え、見る人の理解を助ける
    ・ダッシュボードに管理画面のキャプチャと解説テキストを添え、数値モニタリングもできる操作マニュアルにする
    ・テキスト機能メインのページを作り、説明資料もLooker Studioで済ませることができる ←普段のレポートからシームレスにスライド資料を作る、というようなこともできます

    画像

    応用:データソースをGoogleスプレッドシートにして様々なツールから情報を引っ張ってこれるようになる

     Looker StudioのデータソースをGA4・広告以外に広げてみましょう!
    同じGoogle系列のサービスだと、Search Consoleが使えたら自然検索からの流入キーワードやアクセスページの解析をまとめられます。
     また、GoogleスプレッドシートやExcelを基点に、他MAツールの計測データをLooker Studioで見やすく加工することができます。Googleスプレッドシートのカラムを増やしたり、関数を使ってディメンションを簡単にカスタムすることも可能になります。基本的な使い方から大きくステップアップして差をつけることができるでしょう。


    #03 補足:AI活用でレポート作業も大幅効率化

     AI活用で大きく工数を削減したり、業務の幅を広げることができます。私の場合、同じGoogle WorkspaceのツールであるGeminiを使用して、Googleスプレッドシートへの抽出を自動化しました。経験や素養が全くなくてもGASスクリプトを運用に組み込めたことは、非常に大きな成果でした。
     次章の特典では、この時に私が使用したスクリプトのテンプレートを特別に配布いたします!


    #04 特典:CSV抽出GASスクリプトのテンプレート

    「毎日届くGmailのCSVを毎日自動でGoogleスプレッドシートに抽出してLooker Studioのデータソースにする」スクリプトのテンプレを公開

    最新版
    // ===============================================
    //コピー用スクリプト
    //・プレースホルダー(YOUR〜)を実際の値(メールタイトル・フォルダ名など)に置き換えて使ってください
    //・お使いの環境に一発で適用できるとは限らないため、適宜チューニングしてください
    // 設定項目:以下の値をあなたの環境に合わせて変更してください
    // ===============================================

    // Gmailの検索条件で使用するラベル名 (例: 'report')
    var GMAIL_LABEL_NAME = 'GMAILの検索条件で使用するラベル名';
    
    // メール件名に含むテキスト
    var MAIL_SUBJECT_TEXT = 'メール件名に含むテキスト';
    
    // CSVデータファイル名の判定に使うテキスト
    var CSV_FILENAME_TEXT = 'CSVデータファイル名の判定に使うテキスト';
    
    // 添付ファイルを一時的に保存するGoogle DriveフォルダのID
    var GOOGLE_DRIVE_FOLDER_ID = '添付ファイルを一時的に保存するGoogle DriveフォルダのID';
    
    // データを転記するGoogleスプレッドシートのID
    var GOOGLE_SHEET_ID = 'データを転記するGoogleスプレッドシートのID';
    
    // データを転記するシートの名前(Googleスプレッドシート内のシート名)
    var TARGET_SHEET_NAME = 'データを転記するシートの名前';
    
    // 実行済みCSVデータファイルを移動するGoogle DriveフォルダのID
    var PROCESSED_FOLDER_ID = '実行済みCSVデータファイルを移動するGoogle DriveフォルダのID';
    
    // ★★★ 重複判定のキーとなる列のインデックス (0から始まる)★★★
    var DUPLICATE_CHECK_COLUMN_INDEX = '重複判定のキーとなる列のインデックス';
    
    // ===============================================
    // スクリプト本体:ここから下を適宜チューニングしてください
    // メイン処理:Gmailから添付ファイルを保存
    // ===============================================
    function saveCsvAttachmentsToDrive() {
      var targetFolder = DriveApp.getFolderById(GOOGLE_DRIVE_FOLDER_ID);
      var searchQuery = 'subject:"' + MAIL_SUBJECT_TEXT + '" has:attachment newer_than:1d';
      var threads = GmailApp.search(searchQuery);
    
      if (threads.length === 0) return;
    
      threads.forEach(function(thread) {
        var messages = thread.getMessages();
        messages.forEach(function(message) {
          var attachments = message.getAttachments();
          
          attachments.forEach(function(attachment) {
            var fileName = attachment.getName();
            if (fileName.includes(CSV_FILENAME_TEXT) && fileName.toLowerCase().endsWith('.csv')) {
              targetFolder.createFile(attachment);
              Logger.log('保存済み: ' + fileName);
            }
          });
          message.markRead();
        });
      });
    
      extractCsvDataToSheet();
    }
    
    // ===============================================
    // サブ処理:CSVデータをGoogleスプレッドシートへ転記
    // ===============================================
    function extractCsvDataToSheet() {
      var sourceFolder = DriveApp.getFolderById(GOOGLE_DRIVE_FOLDER_ID);
      var processedFolder = DriveApp.getFolderById(PROCESSED_FOLDER_ID);
      var ss = SpreadsheetApp.openById(GOOGLE_SHEET_ID);
      var sheet = ss.getSheetByName(TARGET_SHEET_NAME) || ss.insertSheet(TARGET_SHEET_NAME);
    
      var files = sourceFolder.getFilesByType(MimeType.CSV);
      var allFiles = [];
      while (files.hasNext()) { allFiles.push(files.next()); }
    
      if (allFiles.length === 0) return;
    
      // 既存データの読み込み(重複排除用Map)
      var existingData = sheet.getDataRange().getValues();
      var combinedDataMap = new Map();
      var headerRow = existingData.length > 0 ? existingData[0] : [];
    
      if (existingData.length > 1) {
        for (var r = 1; r < existingData.length; r++) {
          combinedDataMap.set(String(existingData[r][DUPLICATE_CHECK_COLUMN_INDEX]), existingData[r]);
        }
      }
    
      // 新規CSVファイルの処理
      allFiles.forEach(function(file) {
        try {
          var csvContent = file.getBlob().getDataAsString('UTF-8');
          var csvData = Utilities.parseCsv(csvContent);
    
          if (csvData.length > 0) {
            if (headerRow.length === 0) headerRow = csvData[0];
            
            for (var i = 1; i < csvData.length; i++) {
              var row = csvData[i];
              combinedDataMap.set(String(row[DUPLICATE_CHECK_COLUMN_INDEX]), row);
            }
          }
        } catch (e) {
          Logger.log('エラー処理ファイル ' + file.getName() + ': ' + e.message);
        }
      });
    
      // シートへの書き出し
      var finalDataToWrite = [headerRow];
      var maxCols = headerRow.length;
    
      combinedDataMap.forEach(function(value) {
        while (value.length < maxCols) value.push('');
        finalDataToWrite.push(value);
      });
    
      sheet.clearContents();
      sheet.getRange(1, 1, finalDataToWrite.length, maxCols).setValues(finalDataToWrite);
    
      // ファイルの移動
      allFiles.forEach(function(file) {
        file.moveTo(processedFolder);
      });
    }

    #05 クロージング

     ここまでの解説はいかがでしたでしょうか?Looker Studioって自由度高い、使ってみたい!と思っていただけたら幸いです。クライアントとの関係構築、ひいては建設的な広告運用のためには、いかに情報を集めてくるか、わかりやすく伝えるかがスタートラインだと思います。

     筆者が所属しているダイレクトグロースカンパニーでは、このような広告運用・分析をはじめ、UI/UX・マーケティング・AIによる業務効率化など、デジタルマーケティング全般にわたって支援を承っております。クライアント様向けの専任チームを用意し、伴走型でご支援することが可能ですので、課題をお持ちの方はぜひ一度ご相談ください。

     
     
    わたしたち【ダイレクトグロースカンパニー】は、クライアントの成長・成果最大化をダイレクトにご支援するデジタルマーケティングの専門家集団です。 弊社の取り組みやデジタルマーケティングのノウハウなどを発信していく予定です。フォロー&応援よろしくお願いします!

    あなたへのおすすめ