見出し画像

【DATA Saber】TableauにWeb広告データを入れてあげてみた

こんにちは、よっしーです。
24年9月16日からDATA Saber にチャレンジをしています。

今日はタイトルの通りですが、TableauにWeb広告データを入れてあげたという形でまとめていこうと思います。Web広告屋さんは環境にもよりますが、多くの方はあまりTableauを使わないような気がします。今回は課題が出ているという部分ではありますが、興味本位でテスト的にやってみました。
せっかくなら見てみてください。

やろうと思うことについて

概念図
  • 媒体データをGoogleスプレットシートへ

  • GoogleスプレットシートからTableauに

  • Tableauで固定の型を作り可視化していく

3つのステップで考えています。

※ここでは、全部の媒体を入れ込むと長い分量になるのでYahooのみ記載します(需要が多ければ、他の媒体も記事にしますね。)

トレジャーデータで多く連携できるかと思いますが、記事で明示できるようにあえてこの形で表現しています。

①Yahoo広告のデータをGoogleスプレットシートへ格納


ひと昔前はYahoo広告のAPIを使って技術者がデータを抜き出す処理が必要でした。今はYahoo広告スクリプトがあるので、本機能を活用してデータを自動で落としこみました。※個人でのまとめ記事なのでここでは手動でデータを想定して記事化したいと思います。

Yahoo広告のスクリプトの記述方法について

まずYahoo広告からGoogleスプレットシートに格納するには、Yahoo広告スクリプトを使って記述したいと思います。

function main() {
  reportDataToSpreadsheet();
}

function reportDataToSpreadsheet(){
  const spreadsheetId = 'XXXXXX';
  const sheetName = 'XXXX';
  const ss = SpreadsheetApp.openById(spreadsheetId);
  let sh = ss.getSheetByName(sheetName);
  sh.clear();
  const reportData = AdsUtilities.getSearchReport({
    accountId: AdsUtilities.getCurrentAccountId(),
    fields: [
      'ACCOUNT_NAME','CAMPAIGN_NAME','IMPS','CLICKS','COST','CONVERSIONS'
    ],
    reportDateRangeType: 'THIS_MONTH',
    reportType: 'CAMPAIGN',
    reportSkipColumnHeader : "FALSE",
  }).reports[0].rows;
  sh.getRange('A1').setValues(reportData);
}

・spreadsheetIdにスプシのIDを入力
・sheetNameにシートの名前を入力します。
・スクリプトを保存→認証ボタン→ビジネスIDでさらに認証します。


出力するレポートの項目は左からコードを書いた順番で落とされるので
ACCONT_NAME , CAMPAIGN_NAME , IMP , CLICKS,COST,CONVERSIONS
の順番に格納されます。

※Yahooのコードは下記よりテンプレートを確認してください
https://ads-developers.yahoo.co.jp/ja/ads-script/post/30390392.html

期間はDateRangeTypeを変更していきます。

Yahoo広告スクリプトより抜粋


期間をカスタムする場合の記述方法は

期間をカスタムする場合のほうが多いと思うので、固定のレポートばかりではない場合もあるので方法も記載しておきます。

function main() {
  reportDataToSpreadsheet();
}

function reportDataToSpreadsheet(){
  const spreadsheetId = 'XXXXXX';
  const sheetName = 'XXXXXX';
  const startDate = yyyymmdd;
  const endDate = yyyymmdd;

  const ss = SpreadsheetApp.openById(spreadsheetId);
  let sh = ss.getSheetByName(sheetName);
  sh.clear();
  const reportData = AdsUtilities.getSearchReport({
    accountId: AdsUtilities.getCurrentAccountId(),
    dateRange: {
      endDate: endDate,
      startDate: startDate,
    },
    fields: [
      'ACCOUNT_NAME','CAMPAIGN_NAME','IMPS','CLICKS','COST','CONVERSIONS'
    ],
    reportDateRangeType: 'CUSTOM_DATE',
    reportType: 'CAMPAIGN',
    reportSkipColumnHeader : "FALSE",
  }).reports[0].rows;
  sh.getRange('A1').setValues(reportData);
}

yyyymmdd の部分を変更して、データを抜き出します。

レポートの種別を変更する場合の記述方法は?

レポートの種類の変更をする場合はreportTypeを取得してほしい状態のものを抽出していきます。

Yahoo広告スクリプトより抜粋


②GoogleスプレットシートからTableauに格納


Googleスプレットシートを活用するとTableauにスムーズに取り込みがされていきます。ここではGoogleスプレットシートを取り込む方法についてまとめていければと思っています。

Googleスプレットシートを取り込む方法について

Tableauを起動して、サーバー>Googleスプレットシートを接続し、リクエストを認証していきます。Tableauを接続すると、Googleスプレットシートを選択する画面が表示されるので該当のスプレットシート名を選び、接続をクリックします。※接続するシートが2シート以上ある場合は接続するテーブルをドラックアンドドロップしていく

Googleスプレットシートを更新する方法について

データ>「シート名」>更新をおします。


③Tableauで固定の型を作り、可視化していく

このようなデータのビジュアライゼーションはExcelでもできます。
自動的に数字が出てくるほうが楽なのでそういったイメージがわけばと思いますが、体感というか一度作ってみると同じフォーマットであれば使えますし、毎回見たいわけではありませんが、そういった固定の型を作っていくことでノウハウを物理的に共有できれば良いのかなと思います。

感想

いかがでしょうか。私はウェブ広告の仕事を主戦場にしていますので、どちらかというと、これまでの経験の多くはTableauよりもLooker Stadioを使っていました。いまの環境ではTableauを推進していく会社にいますので、せっかくならこれを機会にTableauを活用して何か考えていくか、そんな風に思って現在に至ります。

色々なビックデータを取り扱う内容と同じ環境に情報を一元管理するとなると、Tableauのほうが使いやすいという企業の方も多いと思います。大手の事業会社のマーケターの方やビックデータを取り扱う企業にかかわるマーケターの方、アプリやトランザクションデータの扱いが多い企業はTableauを使うのが一般的かもしれませんね。勉強になりました。

いいなと思ったら応援しよう!