Google AdWords API Now and ThenMasahiro Yasuda, Kazuki KuriharaJune 9th, 2009
3 / 35
Agenda
1. AdWords API について
2. AdWords API 利用イメージ
3. AdWords API 事例紹介
4. AdWords API 技術情報
5. AdWords API 次バージョン情報
AdWords API について
Google AdWords API とは?
• Google AdWords システム(以下 AdWords)を操作する為のAPI技術的にはSOAPプロトコルを用いるWebサービス
• AdWords とは、グーグル検索およびグーグル検索パートナーサイトでの検索結果ページや、ニュースサイト・ブログなどに対して広告配信するためのシステムの1つ
• AdWords は広告主様向けのシステム→ 広告の入稿から管理、レポート取得に至までを、ワンストップで提供
5 / 35
Google の検索連動型広告: AdWords検索結果上部:最大 3 つの広告
検索結果の右側:最大 8 つの広告
検索連動型広告• 広告主様が入札方式で広告を掲載
6 / 35
広告オークションの仕組み
広告掲載位置 の決定方法
広告ランク(広告掲載位置)=
関連性
• Google 検索におけるクリック率(広告表示回数に対するクリック数)
• キーワードと広告テキストの関連性
• リンク先ページの品質
品質スコア Xお支払いの意思
• 広告がクリックされるごとにお支払いいただく単価の上限値
上限クリック単価
7 / 35
• 様々な使いやすいサービス• 関連性の高い便利な情報
• ユーザーの 「今まさに情報を欲しい瞬間」に対して広告を出せる仕組み
• コストに見合った広告
• 検索結果やコンテンツの内容と関連した広告を表示
• ユーザーがクリックすることで収益を得られる仕組み
• どこからでもアクセス可能な環境• 客観性のある情報
ユーザー、広告主様、サイト運営者様を結びつけるGoogleの広告
ユーザー
広告主サイト運営者
8 / 35
AdWords 広告が表示されるまで
広告主
サイト運営者
Google検索
検索パートナー
Google Maps
フィード
Gmail
9 / 35
AdWords システムへのアクセス手段
AdWords API v13
HTTPS SOAP / HTTPS
AdWords
AdWords 管理画面(Web UI)
AdWords Editor(スタンドアローンクライアント)
カスタム プラットフォーム
10 / 35
利用イメージ
西日本の会社に向けて広告を出してみよう
いいエンジニアの方が入ってきました
12 / 35
問題点
人材派遣会社マーケティング部の問題点
人材情報がリアルタイムに分からない
人材情報と連動した最適な広告配信を行うことができない
広告を出すのに人手がかかる
広告配信が自動化されていないため、広告配信設定に時間を取られてしまう
13 / 35
職種 Q1エンジニア 23,098人
マーケティング 15,901人
営業 103,009人
Q218,501人 ↓10,566人 ↓103,381人 ↑
AdWords API (SOAP)
Q39,872人 ↓1,0937人 ↑89,009人 ↓
Tokyo, Python, Programing
14 / 35
事例
AdWords API 活用事例 ご利用例 #1
在庫数が大量にあるから
広告をするべき対象商品を探すだけで時間がかかる・・
在庫が切れたら広告も自動的にストップできないものか?
季節のイベントごとに最適な商品を広告として出したいのに・・・
困った。。
16 / 35
AdWords API をご利用いただくことで解決
自社のシステム(レポート、在庫、経理システム)と AdWords を直接連携することができた!
在庫状況に応じて自動的に入札管理ができるようになった!
各アイテム毎の利潤やクリック率をシーズナリティを考慮して、自動的に入札管理することができた!
やったね!
17 / 35
AdWords API 活用事例 ご利用例 #2
膨大なデータ量をキャンペーンに登録、管理するのは無理!
リスク低減のためにキャンペーン設定のプランニングにたくさんの時間
がかかってしまう
ローンチ後のキャンペーンに対して管理するための時間がない!
あ~忙しい
18 / 35
AdWords API をご利用いただくことで解決
AdWords API でレポートを自
動的に取ることができるようになった!
レポートの自動分析プログラムを開発しよう!
日々の解析結果をほぼリアルタイムにキャンペーン設定に反映でき
るようになったよ!
助かった!
19 / 35
20
事例
利用パターン例 #1自動入稿管理環境の整備
これまでマニュアル作業で行なっていたAdWords広告の入稿・管理を、作業ボリュームを考慮しながら順次自動化
20
AdWords(Google)
<自動入稿>AdWords API
<マニュアル入稿>AdWords管理画面・
AdWords Editor20 / 35
事例
利用パターン例 #2社内システムとの連動
既存システムとの連携による、リアルな在庫情報と連動した効率的な広告出稿
21
AdWords(Google)
AdWords API 広告主様側システム
DB連携
SOAP,REST
FTP
CVS,XML
広告入稿・管理プログラム
オンライン広告用ビジネスロジック
21 / 35
事例
利用パターン例 #3
2
AdWords(Google)
AdWords API(レポートデータの自動取得)
KW ReportCM AG KW CPC minCPC …xxx xxx xxx xxx xxxx … xxx xxx xxx xxx xxxx … xxx xxx xxx xxx xxxx … xxx xxx xxx
各種レポート
システムによる
自動分析
入札管理用データベース(広告主)
API経由で自動入札管理
アカウント運用レポートなど、各種レポートの自動生成
広告主用システム
レポートの自動化
AdWords API経由でレポートを自動取得し、その内容を自動入札管理のロジックに活かしたり、社内外向けの各種レポートに加工するパターン
22 / 35
AdWords API 技術情報
Resources
• v13 API 情報http://code.google.com/intl/ja/apis/adwords/
• v2009 API docs (sandbox preview)http://code.google.com/apis/adwords/v2009/docs/
• コードサンプルhttp://code.google.com/intl/ja/apis/adwords/docs/samples.html
24 / 35
• 現バージョン : v13
• SOAP – プログラミング言語非依存
• 多くの人気言語に対して、クライアントライブラリや実装サンプルを用意例) Java, PHP, C#, Python
• 10 の Webサービスを提供
API 技術情報
Ad
Report
Info
KeywordTool
TrafficEstimator
CriterionAccount
Ad Group
Campaign
SiteSuggestion
25 / 35
AdWords API でできること
26 / 35
Ad
Info
KeywordTool
TrafficEstimator
CriterionAccount
Ad Group
Campaign
SiteSuggestion
Report
• AdWords 管理画面と同等の操作が AdWords API 経由で行えます
広告の入稿・編集入札管理など
各種レポート生成
見積もり関連ツール
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope>
<SOAP-ENV:Header><email>[email protected]</email><password>mcc_password</password><clientEmail>[email protected]</clientEmail><useragent>User_agent</useragent><developerToken>Xf46B234235sdfsFEpzrssQ</developerToken><applicationToken>yQSADtsdASDFasfewFYAQ</applicationToken>
</SOAP-ENV:Header>
<SOAP-ENV:Body><addCriteria>
<criteria><adGroupId>1111</adGroupId><criterionType>Keyword</criterionType><text>mars cruise</text><type>Broad</type>
</criteria></addCriteria>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
header
body
envelope
SOAP で通信を行う AdWords API
27 / 35
API ユニット
API ユニット = APIの世界でのクレジット
– AdWords API でオペレーション毎に消費ユニット数が決定されている
– USD $0.25 / 1,000 API ユニット
消費ユニット数の確認はAPIドキュメントの「レート表」から
開発環境 = Sandbox– Sandbox に対する API 呼び出しは無償
– Sandbox を利用するには、GoogleアカウントがあればOK!(AdWordsアカウントを取得しなくても、Sandboxにアクセス可能)
28 / 35
AdWords API 次バージョン情報
AdWords システムへのアクセス手段
AdWords API v13
HTTPS SOAP / HTTPS
AdWords
AdWords 管理画面(Web UI)
AdWords Editor(スタンドアローン
クライアント) カスタム プラットフォーム
30 / 35
Accessing AdWords – v2009
AdWords
Common layer
AdWords API v2009
AdWords 管理画面(Web UI)
AdWords Editor(スタンドアローン
クライアント) カスタム プラットフォーム
31 / 35
AdWords API v2009 ハイライト
• AdWords 管理画面 との整合性改善
• サービス インタフェースの統一
• 1回の呼び出しで、多くの処理を行う為の改善
– 追加および更新を1呼び出しで
– 広告グループをまたがったポスト処理
• 非同期オペレーション … スループット向上
• バルク処理時のエラー対応を柔軟化 … Partial failure対応
• 消費APIユニットをよりお求めやすく
• ClientLogin API ベースの承認
32 / 35
Google ClientLogin API
• v2009 では、ClientLogin API を承認時に利用
• 一旦 Authentication Token 取得後は、そのトークンを利用
クライアント
HTTP POST
https://www.google.com/accounts/ClientLogin• accountType=GOOGLE• service=adwords• Email=mcc%40login.email• Passwd=mcc_password1
• SID=AbCd…….• LSID=111xyZ…..• Auth=DQAA…..
以後のAPI呼び出しにはAuthフィールドを追加
33 / 35
<SOAP-ENV:Envelope><SOAP-ENV:Header>
<RequestHeader xmlns="https://adwords.google.com/api/adwords/cm/v200902"><authToken>DQAA….</authToken>
</RequestHeader></SOAP-ENV:Header><SOAP-ENV:Body>
<mutate xmlns="https://adwords.google.com/api/adwords/cm/v200902"><operations>
<operator>ADD</operator><operand xsi:type="BiddableAdGroupCriterion">
<adGroupId><id>1111</id>
</adGroupId><criterion xsi:type="Keyword">
<matchType>BROAD</matchType><text>旅馆</text>
</criterion></operand>
</operations></mutate>
</SOAP-ENV:Body></SOAP-ENV:Envelope>
header
body
envelope
サンプル v2009 メッセージ
34 / 35
Java Sample
0 AdWordsUser user =1 new AdWordsUser(“[email protected]”, // MCC メールアドレス2 “mcc_password1”, // MCC パスワード3 “[email protected]”, // クライアント メールアドレス2 “test-user-agent”, // ユーザーエージェント3 null, // 開発者トークンは不要4 null); // アプリケーショントークンも不要56 AdGroupCriterionServiceInterface adGroupCriterionService =7 user.getService(AdWordsService.V200902.ADGROUP_CRITERION_SERVICE);89 // キーワード構造の作成10 AdGroupId adGroupId = new AdGroupId(Long.valueOf(1111), null);1112 BiddableAdGroupCriterion adGroupCriterion = new BiddableAdGroupCriterion();13 adGroupCriterion.setCriterion(14 new Keyword(null, null, "¥u65C5¥u9986", KeywordMatchType.BROAD));15 adGroupCriterion.setAdGroupId(adGroupId);1617 AdGroupCriterionOperation operation = new AdGroupCriterionOperation();18 operation.setOperator(Operator.ADD);19 operation.setOperand(adGroupCriterion);2021 // キーワード追加22 AdGroupCriterionReturnValue results =23 adGroupCriterionService.mutate(new AdGroupCriterionOperation[] {operation});
キーワードの追加 (with v2009)
35 / 35
Google Developer Relations Japan
• Google の デベロッパーコミュニティサイト
– Google Developer Day セッションのスライドやビデオ
– イベント情報
http://sites.google.com/site/devreljp/
code.google.com
• Google の デベロッパー向けサイトをご利用ください。
– 日本語のドキュメント
– 日本語のデベロッパーコミュニティ
http://code.google.com/intl/ja/
アンケートにご協力ください
• Google Developer Day をより充実したものとするためにアンケートにご協力ください。
• アンケートは2種類あります。
– 全体アンケート
– セッションアンケート
• セッションアンケートはお手元の用紙でも回答できます。
– アンケートは Google Developer Relations Japan で回答できます。
http://sites.google.com/site/devreljp/