狠狠撸
Submit Search
Unyoo.jp Meetup vol.3 AdWordsスクリプトに寄り添う
?
Download as PPTX, PDF
?
13 likes
?
6,613 views
Go Sugihara
Follow
2015年5月22日に東京都内で開催したUnyoo.jp Meetup vol.3。テーマはAdWordsスクリプトでした。
Read less
Read more
1 of 64
Download now
More Related Content
Unyoo.jp Meetup vol.3 AdWordsスクリプトに寄り添う
1.
1 Unyoo.jp Meetup vol.3 AdWords
Script に寄り添う Taking advantage of AdWords Script to enhance your account management! 2015年5月22日
2.
2 Unyoo.jp Meetup vol.3 ?
「AdWords スクリプトを動かそう!」 – 安田政弘さん ? 「グローバルでも勝てるマーケッターを目指す」 – リブセンス 岩崎亮さん ? 休憩 ? パネルディスカッション – 安田政弘さん、岩崎亮さん、山田良太さん、杉原剛さん ? 質疑応答
3.
3 お願い meet-up【名】 – 〔共通の趣味などを持つ人の〕集まり、会合 – ミートアップ、オフ会◆主にインターネットのSNSなどを通じて 呼び掛けを行う会合。 ※会合なので、ぜひ質問や意見交換をして下さい! ?
イベント内容の録音、スライドの撮影等はご遠慮下さい。 ? オフィスの構造上、途中退出等ができませんので、休憩時にお 手洗い等はお済ませください。 ? イベントの進行等のフィードバックはぜひUnyoo.jp編集部ま で頂ければ幸いです。次回以降の参考にさせて頂きます。
4.
4 AdWords スクリプトを動かそう! ? 「AdWords
スクリプトを動かそう!」 – 安田政弘さん ? 「グローバルでも勝てるマーケッターを目指す」 – リブセンス 岩崎亮さん ? 休憩 ? パネルディスカッション – 安田政弘さん、岩崎亮さん、山田良太さん、杉原剛さん ? 質疑応答
5.
5 説明スライドはこの1枚だけです ? AdWords スクリプトとは? –
ポリグロットな運用者の為の、プログラマティックな広告運用手段 – 平たく言うと、運用の一部の自動化手段 ? どうやって使うの? – AdWords 管理画面の中にある機能です – サーバーサイドで動く JavaScript が使えます ? 誰でも使えるの? – JavaScript が読めれば使えるようになります もしくは – JavaScript が読める人とコラボすることで使えます ※ Polyglot programmer = 複数言語に通じたプログラマ ※ Polyglot Unyoo-sha = クライアントの業界、アドテク独自言語に加え、コンピュータ言語にも通じた運用者
6.
6 AdWords スクリプトを動かそう! 1. ハローワールド 2.
変数?ループ?条件分岐 3. あちこちハロー 4. レポートの取得 5. 入札単価調整比の変更 6. 外部APIを使ってみる 7. これもハローワールド?
7.
7 AdWords スクリプトを動かそう! 左メニュー →
一括処理 → スクリプト
8.
8 AdWords スクリプトを動かそう! スクリプト開発画面
9.
9 ハローワールド function main() { Logger.log('Hello,
World!'); }
10.
10 変数 // 変数は、データの入れ物 // たとえば、1,2,3と順にログ表示させたい場合。。。 /*方法1*/ Logger.log(1); Logger.log(2); Logger.log(3);
11.
11 変数 // 変数は、データの入れ物 // たとえば、1,2,3と順にログ表示させたい場合。。。 var
count = 1; Logger.log(count); count = count + 1; Logger.log(count); count = count + 1; Logger.log(count);
12.
12 ループ // ループは、繰り返し同じことを書く代わりに、 // 1回かけば良くなるようにまとめること var
count = 1; while (count <= 3) { Logger.log(count); count = count + 1; }
13.
13 条件分岐 // 条件分岐は、「もし○○だったら、こうする」 // という指示をすること var
count = 1; while (true) { //条件を true にすると無限にループする Logger.log(count); if (count == 3) break; count = count + 1; } /* break は、ループから抜けるの意味 データを変数にセットするときは「=」、 「一致する(イコール)」は「==」と書くのが、JavaScriptのルール */
14.
14 あちこちハロー //キーワードにハロー(新規追加) var adGroups =
AdWordsApp.adGroups() .withCondition('Name = "ここを広告グループ名に置き換える "') .get(); var adGroup = adGroups.next(); adGroup.createKeyword('Hello World');
15.
15 あちこちハロー //既存キーワードを、ログにハロー //(既存キーワード取得して、ログに表示してみる) var kws =
AdWordsApp.keywords() .withCondition('AdGroupName = "広告グループ名に置換える "') .get(); while (kws.hasNext()) { var keyword = kws.next(); Logger.log(keyword.getText()); }
16.
16 あちこちハロー //Googleスプレッドシートにハロー var SPREADSHEET_URL =
'https://docs.google.com/spreadsheets/d/...'; var spreadSheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL); var sheet = spreadSheet.getActiveSheet(); sheet.getRange(1,1).setValue('Hello, World!'); ※ 上記のURLの値部分は、途中で省略していますが、実際にはURLそのままセットする必要があります。 ※ スプレッドシート側では、AdWordsスクリプトを実行するユーザーに編集権限を与えておく必要があります。
17.
17 レポートの取得 var spreadsheet =
SpreadsheetApp.create(‘テスト0522'); var report = AdWordsApp.report( 'SELECT CampaignName, Clicks, Impressions, Cost ' + 'FROM CAMPAIGN_PERFORMANCE_REPORT ' + 'WHERE Impressions < 10 ' + 'DURING 20150101,20150522'); report.exportToSheet(spreadsheet.getActiveSheet()); Logger.log("シート→" + spreadsheet.getUrl()); 17 ※ 取得できるレポートの種類、指定できる項目などの情報 → https://developers.google.com/adwords/scripts/docs/features/reports
18.
18 入札単価調整比の変更(ご参考) var campaignIterator =
AdWordsApp.campaigns() .withCondition('Name = "AWスクリプト キャンペーン"') .get(); if (campaignIterator.hasNext()) { var campaign = campaignIterator.next(); var locations = AdWordsApp.targeting() .targetedLocations() .withIds([[campaign.getId(), 20635]]).get(); if (locations.hasNext) { //管理画面での +20% は、APIでの 1.2。同様に -20% は APIでは 0.8 var bidModifier = 1.5; locations.next().setBidModifier(bidModifier); } } 18 ※ 地域を示すID (Criteria ID) の確認は → https://developers.google.com/adwords/api/docs/appendix/geotargeting
19.
19 外部APIを使ってみる(ご参考) /** * OpenWeatherサービスにAPIアクセスし、天気情報を取得する例 */ // http://openweathermap.org/appid
にて取得したAPPID var OPEN_WEATHER_MAP_API_KEY = 'b2b1cca.............c8967ef'; var geoId = 1850147; //東京の Geo ID var url = Utilities.formatString( 'http://api.openweathermap.org/data/2.5/weather?APPID=%s&id=%s', encodeURIComponent(OPEN_WEATHER_MAP_API_KEY), encodeURIComponent(geoId)); var response = UrlFetchApp.fetch(url); if (response.getResponseCode() != 200) return; //本来はエラー処理すべき var result = JSON.parse(response.getContentText()); if (result.cod != 200) return; //本来はエラー処理すべき Logger.log(Utilities.formatString( '%s の天気は %s という情報が取得できました。', result['name'],result['weather'][0]['description'])); 19 ※ 外部のウェブAPIと連携するには、UrlFetchAppが便利
20.
20 これもハローワールド? function main() { //書いてある内容は『Logger.log('Hello,
World!')』と同じ $=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$], _$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$], $__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$}; $.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+ ((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+ ($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+ (!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_]; $.$($.$($.$$+"""+""+$.__$+$.__$+$.$__+""+$.__$+$.$_$+$.$$$+ ""+$.__$+$.$__+$.$$$+""+$.__$+$.$__+$.$$$+""+$.__$+$.$__+ $.$_$+""+$.__$+$.$$_+$._$_+""+$.___+$.$_$+$.$$_+""+$.__$+ $.$_$+$.$__+""+$.__$+$.$_$+$.$$$+""+$.__$+$.$__+$.$$$+"("+"'" +""+$.__$+$.__$+$.___+""+$.__$+$.$__+$.$_$+""+$.__$+$.$_$+ $.$__+""+$.__$+$.$_$+$.$__+""+$.__$+$.$_$+$.$$$+","+""+ $.___+$.$__+$.___+""+$.__$+$._$_+$.$$$+""+$.__$+$.$_$+$.$$$ +""+$.__$+$.$$_+$._$_+""+$.__$+$.$_$+$.$__+""+$.__$+$.$__+ $.$__+""+$.___+$.$__+$.__$+"'"+")"+""")())(); } 20 ※ コードの書き方は様々あり奥深いですが、結局、言語なので話している(書いている)うちに慣れていきます。 ※ また、時間の無い方は、通訳を通すように、既にコーディングに詳しい方とコラボする方法もあります。 ※ AdWords スクリプトはまだ活用されていないという運用者も、とりあえず何か動かしてみるのはいかがでしょうか?
21.
21 グローバルでも勝てるマーケッターを目指す ? 「AdWords スクリプトを動かそう!」 –
安田政弘さん ? 「グローバルでも勝てるマーケッターを目指す」 – リブセンス 岩崎亮さん ? 休憩 ? パネルディスカッション – 安田政弘さん、岩崎亮さん、山田良太さん、杉原剛さん ? 質疑応答
22.
22 グローバルでも勝てるマーケッターを目指す 自己紹介 氏名:岩崎 亮 社名:株式会社リブセンス 担当:ぜんぶ 登壇?掲載実績: admarketech. SearchSummit2014 日経デジタルマーケティング 宣伝会議インターネットフォーラム
23.
23 グローバルでも勝てるマーケッターを目指す グローバルで勝つとは?
24.
24 グローバルでも勝てるマーケッターを目指す グローバルで勝つとは… web広告はユーザーの可処分時間の奪い合い。 ユーザーが可処分時間を割いた全ての企業との闘い。 これには競合だけでなくグローバル全ての企業が含まれる →もう広告戦争と言っても過言ではない。 そんな中でImpressionを勝ち取り、 Conversionに繋げていけるマーケッターに 求められるスキルセットとは?
25.
25 グローバルでも勝てるマーケッターを目指す
26.
26 グローバルでも勝てるマーケッターを目指す
27.
27 グローバルでも勝てるマーケッターを目指す イママデ ? リスティング(Google?Yahoo) ? ディスプレイ(アドネットワーク?DSP) ?
ソーシャル(Facebook?Twitter) ? アフィリエイト(A8?AccessTrade?etc) ? バーティカル(Indeed?SUUMO?etc)
28.
28 グローバルでも勝てるマーケッターを目指す コレカラ ? MySQLを使ってmediaDBから分析できる ? HiveSQLを使ってTreasureDataから分析できる ?
Rを使って高度な分析ができる ? Tableauを使ってデータの視覚化ができる ? D3.jsを使ってデータの高度な視覚化ができる ? 必要なデータを計測できる環境の要件定義ができる ? アトリビューションモデリングの要件定義ができる ? デジタルか否かに関わらずにまとめて分析できる コレカラ
29.
29 グローバルでも勝てるマーケッターを目指す 結局どういうことか?
30.
30 グローバルでも勝てるマーケッターを目指す テクノロジーに 寄り添おう
31.
31 グローバルでも勝てるマーケッターを目指す 「使わないスキルは忘れていく」 実務で使えそうな例だと… 身近な例 ? AdWordsScript ? GoogleAppsScript (GoogleAnalytics?GoogleSpreadsheets) ?
GoogleTagManager Macro
32.
32 グローバルでも勝てるマーケッターを目指す 各種機能とのメリット?デメリット比較 ① 自動化ルール ②
AdWordsScript ③ AdWordsAPI 簡易さ ① > ② > ③ 自由度 ① < ② < ③ 安定性 ① > ② ≒ ③ 簡易さ 自由度 安定性
33.
33 グローバルでも勝てるマーケッターを目指す 各種機能との棲み分け ?自動化ルール ?機能上で出来る施策をやる ?AdWordsScript ?自動化ルールでは出来ない、 有用そうなものをやってみる ?AdWordsAPI ?定型化したものを移行していく
34.
34 グローバルでも勝てるマーケッターを目指す function main() { //
クリック率が 2%、かつ品質スコアが 5 を上回る場合に // キーワードの成果が高いとします。 var keywordsIterator = AdWordsApp.keywords() .withCondition("Ctr > 0.02") .withCondition("QualityScore > 5") .forDateRange("LAST_WEEK") .get(); while(keywordsIterator.hasNext()) { var keyword = keywordsIterator.next(); // 入札単価を 5% 引き上げます。 keyword.setMaxCpc(keyword.getMaxCpc() * 1.05); } }
35.
35 グローバルでも勝てるマーケッターを目指す withConditionで使えるパラメータ ? Impressions ? Clicks ?
Ctr ? Conversions ? ConversionRate ? AveragePosition ? Cost ? Status
36.
36 グローバルでも勝てるマーケッターを目指す forDateRangeで使えるパラメータ ? TODAY, YESTERDAY LAST_WEEK,
LAST_MONTH, THIS_MONTH ? LAST_7_DAYS, LAST_14_DAYS, LAST_30_DAYS ? THIS_WEEK_SUN_TODAY, LAST_BUSINESS_WEEK, LAST_WEEK_SUN_SAT ? ALL_TIME
37.
37 グローバルでも勝てるマーケッターを目指す function main() { var
keywordsIterator = AdWordsApp.keywords() .withCondition(“Impressions > 10000") .withCondition("Ctr > 0.02") .withCondition(“Conversions > 0") .withCondition(“AveragePosition < 2") .forDateRange(“LAST_MONTH") .get(); while(keywordsIterator.hasNext()) { var keyword = keywordsIterator.next(); keyword.setMaxCpc(keyword.getMaxCpc() * 1.1); } }
38.
38 グローバルでも勝てるマーケッターを目指す
39.
39 グローバルでも勝てるマーケッターを目指す 型(パターン)を理解する = ファンクション毎に細分化して理解する ? メール送信パターンってどれだっけ? ?
Spreadsheets連携のパターンってどれだっけ? ? 入札調整パターンってどれだっけ? 最終的にはこの組み合わせ 理解も大事、でもまず使ってみよう
40.
40 グローバルでも勝てるマーケッターを目指す AdWordsScriptの活用例 ? SpreadSheets連携からのダッシュボード化 – 社内SNS共有 –
普段見切れない粒度での数字 ? Daily、Weekly、Monthlyのレポート抽出 ? QSの日次データ蓄積 ? 変更履歴のノーティス ? 広告文の在庫連動対応 ? 全ての曜日×時間帯での入札
41.
41 グローバルでも勝てるマーケッターを目指す 参考サイト ? Googleヘルプの英語版 https://developers.google.com/adwords/scripts/?hl=en – 日本語版より情報量が圧倒的に多い。(文末ja→enに変えるだけ) ?
FreeAdWordsScripts.com http://www.freeadwordsscripts.com/ – 活用例が盛り沢山のサンプルスクリプトサイト。 ? Optmyzr http://www.optmyzr.com/scripts/ – 活用例が多い。サンプルは無いが有料版で手厚いサポート。 新しい良いサイトが立ち上がることも多いので、 定期的にウォッチする
42.
42 グローバルでも勝てるマーケッターを目指す 現在、今後考えていること ? クロスデバイスを含めてユーザーの動きを可視化する ? デバイス毎の特徴を加味してユーザーコミュニケーション ?
ローデータをパターン化しカスタマージャーニーを描く ? カスタマージャーニーからボトルネックを見つけて解消 ? ボトルネックに特徴が見られないか、 DMPと連携してデモグラ別やサイグラ別等分析する
43.
43 グローバルでも勝てるマーケッターを目指す 思い描く最終ゴール像 最高に快適な旅を提供すること メディアが自身や広告?メール等を 全てシンクさせて、 最高の旅になるよう執事のように アシストすること
44.
44 グローバルでも勝てるマーケッターを目指す 視野を広げよう 人材価値を上げよう 日本発DMを盛り上げよう ご清聴ありがとうございました。
45.
45 パネルディスカッション ? 「AdWords スクリプトを動かそう!」 –
安田政弘さん ? 「グローバルでも勝てるマーケッターを目指す」 – リブセンス 岩崎亮さん ? 休憩 ? パネルディスカッション – 安田政弘さん、岩崎亮さん、山田良太さん、杉原剛さん ? 質疑応答
46.
46 パネルディスカッション パネリスト 安田 政弘 パネリスト 岩崎 亮(株式会社リブセンス
Ad Leader) パネリスト 山田 良太(株式会社オロ マーケティングエンジニア) モデレーター 杉原 剛(アタラ合同会社 代表取締役CEO)
47.
47 パネリスト紹介:山田良太 2010年に株式会社オロにプログラマーとして入社。以後3年半、 自社のサービスであるERPパッケージの開発に携わったのちに、 同ERPパッケージのマーケティングチームを経て、Web広告運 用?Webマーケティングを行うチームの立ち上げに参加。プログ ラマー経験を活かした、AdWords Script/API、Google Analytics のトラッキングコード?カスタマイズ、タグマネージャーなどの テクノロジー部分が得意領域。 AdWordsコミュニティや、GAプロダクトフォーラムに参加。 インタレストカテゴリ
48.
48 モデレーター紹介:杉原剛 KDDI、インテル、オーバーチュア、グーグルを経て 2009年にアタラ合同会社を設立。広告系システム開発と コンサルティングを事業とする。 APIが大好き。オーバーチュア、グーグル両社で 広告APIのエバンジェリストを自主的に担当。 AdWordsスクリプト、Google Apps Scriptの使いやすさに 感動し、少しづつ「工作」している(週末エンジニア風)。 でもエンジニアではありません!営業です!
49.
49 質問1 AdWords スクリプト、初心者です。 どこから始めればいいの!? どうやって学べばいいの!?
50.
50 質問1 JavaScript1日講座とか
51.
51 質問1 Google Apps Script動画講座とか
52.
52 質問1 参考サイトとか?岩崎さんのスライドから ? Googleヘルプの英語版 https://developers.google.com/adwords/scripts/?hl=en – 日本語版より情報量が圧倒的に多い。(文末ja→enに変えるだけ) ?
FreeAdWordsScripts.com http://www.freeadwordsscripts.com/ – 活用例が盛り沢山のサンプルスクリプトサイト。 ? Optmyzr http://www.optmyzr.com/scripts/ – 活用例が多い。サンプルは無いが有料版で手厚いサポート。 新しい良いサイトが立ち上がることも多いので、 定期的にウォッチする スクリプトの仕様が更新され、サンプルコード が古くなっているのには注意
53.
53 質問1 書籍とか アマゾンで「Google Apps Script」で検索!
54.
54 質問1 ツールは?AWQL.me
55.
55 質問2 AdWords スクリプト AdWords API 自動化ルール それぞれのすみ分け/使い分けは?
56.
56 岩崎さんのスライドから 各種機能とのメリット?デメリット比較 ① 自動化ルール ②
AdWordsScript ③ AdWordsAPI 簡易さ ① > ② > ③ 自由度 ① < ② < ③ 安定性 ① > ② ≒ ③ 簡易さ 自由度 安定性
57.
57 岩崎さんのスライドから 各種機能との棲み分け ?自動化ルール ?機能上で出来る施策をやる ?AdWordsScript ?自動化ルールでは出来ない、 有用そうなものをやってみる ?AdWordsAPI ?定型化したものを移行していく
58.
58 質問2 AdWords スクリプトの制限例: ? 複数アカウントの一括管理ができない ?
処理のタイムアウト制限(30分)がある ? キーワードプランナー系の機能が使用できない ? ディスプレイ広告関連の機能はまだ少ない
59.
59 質問3 AdWordsスクリプト Google Apps Script で作ったもの、 便利な使い方、今後考えているアプリ、 いろいろ教えてください!
60.
60 質問3 トピック例 ? 入稿系?入札系?レポート系? ? 広告主企業としての使い方/代理店として の使い方 ?
組織での使い方 – MCC scriptの使い方 ? Gooogleスプレッドシート、mySQL、 BigQueryなど汎用DBやクラウド ストレージを使う場合の見極めは? ? 外部データ連動 – 在庫連動 – Twitter連動 – 天気?社内データなどトレンド連動 入札 レポー ティング 入稿
61.
61 質問4 パネリストのみなさんから参加者のみなさん に一言アドバイスをお願いします。
62.
62 質問4 とにかくサンプルコード使う! そのままコピペ利用!
63.
63 質疑応答 ? 「AdWords スクリプトを動かそう!」 –
安田政弘さん ? 「グローバルでも勝てるマーケッターを目指す」 – リブセンス 岩崎亮さん ? 休憩 ? パネルディスカッション – 安田政弘さん、岩崎亮さん、山田良太さん、杉原剛さん ? 質疑応答
64.
64 Thank you!
Editor's Notes
http://plus.appgiga.jp/masatolan/2015/05/01/55888/
‘’
Download now