Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Google Inc. - All Rights Reserved
MCC スクリプト
JavaScript を使った効率的なアカウント管理
Ryuich Hoshi, Google.
目次
● はじめに
● 使ってみよう
● 参考資料
● Questions?
Google Inc. - All Rights Reserved
はじめに
Google Inc. - All Rights Reserved
● AdWords のデータをプログラムから操作する方法
● JavaScript を使用
● 開発環境は AdWords UI の中に用意
AdWords スクリプトの復習
Script
Google Inc. - All Rights Reserved
function main() {
// AWQL を使って指定した名前のキャンペーンを取得
var demoCampaign = AdWordsApp.camp...
Google Inc. - All Rights Reserved
● MCC レベルで使える AdWords スクリプト
● 多くのアカウントを管理可能に
MCC スクリプトとは?
Google Inc. - All Rights Reserved
● 現在は、すべての方がご利用になれます
利用可能な方
Google Inc. - All Rights Reserved
● 1つのスクリプトで複数のアカウントを管理可能
● 1つのスクリプトを複数のアカウントにコピーする必要なし
● 複数のアカウントを並列に処理
利点
Google Inc. - All Rights Reserved
● 管理している全てのアカウントの入札単価を調整
● 複数アカウントのレポートを出力
よくある使い方
Google Inc. - All Rights Reserved
MCC スクリプトを使ってみる
1
2
Google Inc. - All Rights Reserved
使ってみよう
Script
Google Inc. - All Rights Reserved
初めての MCC スクリプト
function main() {
// 全ての子アカウントを取得
var accountIterator = MccApp.acc...
Google Inc. - All Rights Reserved
● アカウントを管理する機能を提供
● 子アカウントを取得
● 操作するアカウントを選択
● 複数のアカウントを並列に処理
MccApp クラス
Google Inc. - All Rights Reserved
var accountIterator = MccApp.accounts().get();
● MccApp.accounts メソッドを使用
● デフォルトでは、全ての子ア...
Google Inc. - All Rights Reserved
● アカウント レベルでフィルターすることが可能
子アカウントを選択する
var accountIterator = MccApp.accounts()
.withCondit...
Google Inc. - All Rights Reserved
● Customer Id を直接指定することも可能
子アカウントを選択する
var accountIterator = MccApp.accounts()
.withIds(...
Google Inc. - All Rights Reserved
● デフォルトでは、スクリプトが置かれているアカウント
● MccApp.select を使い、操作対象アカウントを変更
● AdWordsApp クラスを使いアカウントを操作...
Script
Google Inc. - All Rights Reserved
var childAccount = MccApp.accounts().withIds(["918-501-8835"])
.get().next();
// ...
Google Inc. - All Rights Reserved
アカウントを並列に処理する
Google Inc. - All Rights Reserved
● AccountSelector.executeInParallel メソッドを使
用
● 50 アカウントまで並列に処理可能
● すべての処理終了後、オプションで call...
Script
Google Inc. - All Rights Reserved
function main() {
MccApp.accounts().executeInParallel("processAccount");
}
functi...
Script
Google Inc. - All Rights Reserved
function main() {
MccApp.accounts().executeInParallel("processAccount",
"allFinis...
Google Inc. - All Rights Reserved
● Callback 関数の results 引数を使用
● ExecutionResult オブジェクトの配列
● 1つのアカウント処理につき、1つの ExecutionRe...
Google Inc. - All Rights Reserved
● ExecutionResult オブジェクトが含む情報
● CustomerId
● Status (Success, Error, Timeout)
● Error (も...
Script
Google Inc. - All Rights Reserved
function processAccount() {
return AdWordsApp.campaigns().get().totalNumEntities(...
Google Inc. - All Rights Reserved
● 処理関数は string の返り値を返すことができる
● 複雑なオブジェクトを返したい場合には、JSON.stringify /
JSON.parse を使用してオブジェク...
Google Inc. - All Rights Reserved
実行時間制限
30-X分
processAccount(A)
30分30分
30-X分
processAccount(C)
30-X分
processAccount(B)
ma...
Google Inc. - All Rights Reserved
参考資料
MccApp Documentation: http://goo.gl/r0pGJO
Feature guide: http://goo.gl/u65RAF
Code...
Google Inc. - All Rights Reserved
Questions?
Google Inc. - All Rights Reserved
Upcoming SlideShare
Loading in …5
×

Mcc scripts deck (日本語)

1,872 views

Published on

MCC スクリプト AdWords

Published in: Technology
  • Be the first to comment

Mcc scripts deck (日本語)

  1. 1. Google Inc. - All Rights Reserved
  2. 2. MCC スクリプト JavaScript を使った効率的なアカウント管理 Ryuich Hoshi, Google.
  3. 3. 目次 ● はじめに ● 使ってみよう ● 参考資料 ● Questions?
  4. 4. Google Inc. - All Rights Reserved はじめに
  5. 5. Google Inc. - All Rights Reserved ● AdWords のデータをプログラムから操作する方法 ● JavaScript を使用 ● 開発環境は AdWords UI の中に用意 AdWords スクリプトの復習
  6. 6. Script Google Inc. - All Rights Reserved function main() { // AWQL を使って指定した名前のキャンペーンを取得 var demoCampaign = AdWordsApp.campaigns(). withCondition("Name='Demo campaign'").get().next(); // AWQL を使って、直下の広告グループを取得 var demoAdGroup = demoCampaign.adGroups(). withCondition("Name='Demo adgroup'").get().next(); // 広告グループの設定を変更 demoAdGroup.setKeywordMaxCpc(1.2); } AdWords スクリプトの復習
  7. 7. Google Inc. - All Rights Reserved ● MCC レベルで使える AdWords スクリプト ● 多くのアカウントを管理可能に MCC スクリプトとは?
  8. 8. Google Inc. - All Rights Reserved ● 現在は、すべての方がご利用になれます 利用可能な方
  9. 9. Google Inc. - All Rights Reserved ● 1つのスクリプトで複数のアカウントを管理可能 ● 1つのスクリプトを複数のアカウントにコピーする必要なし ● 複数のアカウントを並列に処理 利点
  10. 10. Google Inc. - All Rights Reserved ● 管理している全てのアカウントの入札単価を調整 ● 複数アカウントのレポートを出力 よくある使い方
  11. 11. Google Inc. - All Rights Reserved MCC スクリプトを使ってみる 1 2
  12. 12. Google Inc. - All Rights Reserved 使ってみよう
  13. 13. Script Google Inc. - All Rights Reserved 初めての MCC スクリプト function main() { // 全ての子アカウントを取得 var accountIterator = MccApp.accounts().get(); // 取得したアカウントを順に処理 while (accountIterator.hasNext()) { var account = accountIterator.next(); // 子アカウントのパフォーマンス データを取得 var stats = account.getStatsFor("THIS_MONTH"); // ログに出力 Logger.log("%s,%s,%s,%s", account.getCustomerId(), stats.getClicks(), stats.getImpressions(), stats.getCost()); } }
  14. 14. Google Inc. - All Rights Reserved ● アカウントを管理する機能を提供 ● 子アカウントを取得 ● 操作するアカウントを選択 ● 複数のアカウントを並列に処理 MccApp クラス
  15. 15. Google Inc. - All Rights Reserved var accountIterator = MccApp.accounts().get(); ● MccApp.accounts メソッドを使用 ● デフォルトでは、全ての子アカウントを返す(サブMCCは除く) 子アカウントを選択する Script
  16. 16. Google Inc. - All Rights Reserved ● アカウント レベルでフィルターすることが可能 子アカウントを選択する var accountIterator = MccApp.accounts() .withCondition('LabelNames CONTAINS "xxx"') .get(); Script
  17. 17. Google Inc. - All Rights Reserved ● Customer Id を直接指定することも可能 子アカウントを選択する var accountIterator = MccApp.accounts() .withIds(['123-456-7890', '345-678-9000']) .get(); Script
  18. 18. Google Inc. - All Rights Reserved ● デフォルトでは、スクリプトが置かれているアカウント ● MccApp.select を使い、操作対象アカウントを変更 ● AdWordsApp クラスを使いアカウントを操作 ● 最後に操作対象をMCC アカウントへ戻すことを忘れずに! いまどのアカウントを操作している?
  19. 19. Script Google Inc. - All Rights Reserved var childAccount = MccApp.accounts().withIds(["918-501-8835"]) .get().next(); // 現在のMCCアカウントを保存 var mccAccount = AdWordsApp.currentAccount(); // 子アカウントを選択 MccApp.select(childAccount); // 子アカウントへの処理を実行 ... // 操作対象を MCC アカウントに戻す MccApp.select(mccAccount); 特定の子アカウントを操作する
  20. 20. Google Inc. - All Rights Reserved アカウントを並列に処理する
  21. 21. Google Inc. - All Rights Reserved ● AccountSelector.executeInParallel メソッドを使 用 ● 50 アカウントまで並列に処理可能 ● すべての処理終了後、オプションで callback 関数を実行可 能 アカウントを並列に処理する
  22. 22. Script Google Inc. - All Rights Reserved function main() { MccApp.accounts().executeInParallel("processAccount"); } function processAccount() { Logger.log("Operating on %s", AdWordsApp.currentAccount().getCustomerId()); // アカウントへの処理を実行 // ... return; } アカウントを並列に処理する
  23. 23. Script Google Inc. - All Rights Reserved function main() { MccApp.accounts().executeInParallel("processAccount", "allFinished"); } function processAccount() { ... } function allFinished(results) { ... } Callback 関数を指定
  24. 24. Google Inc. - All Rights Reserved ● Callback 関数の results 引数を使用 ● ExecutionResult オブジェクトの配列 ● 1つのアカウント処理につき、1つの ExecutionResult 実行結果を分析する
  25. 25. Google Inc. - All Rights Reserved ● ExecutionResult オブジェクトが含む情報 ● CustomerId ● Status (Success, Error, Timeout) ● Error (もしあれば) ● processAccount の返り値 実行結果を分析する
  26. 26. Script Google Inc. - All Rights Reserved function processAccount() { return AdWordsApp.campaigns().get().totalNumEntities().toString(); } function allFinished(results) { var totalCampaigns = 0; for (var i = 0; i < results.length; i++) { totalCampaigns += parseInt(results[i].getReturnValue()); } Logger.log("There are %s campaigns under MCC ID: %s.", totalCampaigns, AdWordsApp.currentAccount().getCustomerId()); } 実行結果を返す
  27. 27. Google Inc. - All Rights Reserved ● 処理関数は string の返り値を返すことができる ● 複雑なオブジェクトを返したい場合には、JSON.stringify / JSON.parse を使用してオブジェクトの serialize / deserialize を行う ● 大きな値を返したい場合には、各種データストレージを使う (E.g. SpreadSheetApp, DriveApp...) 実行結果を返す
  28. 28. Google Inc. - All Rights Reserved 実行時間制限 30-X分 processAccount(A) 30分30分 30-X分 processAccount(C) 30-X分 processAccount(B) main() 関数 executeInParallel() をアカウント A, B, C へ実行 allFinished() Xminutes 1時間
  29. 29. Google Inc. - All Rights Reserved 参考資料 MccApp Documentation: http://goo.gl/r0pGJO Feature guide: http://goo.gl/u65RAF Code snippets: http://goo.gl/2BXrfo Complete solutions: http://goo.gl/JSjYyf Forum: http://goo.gl/sc95Q8
  30. 30. Google Inc. - All Rights Reserved Questions?
  31. 31. Google Inc. - All Rights Reserved

×