Google キーワードツールの終了、今後はキーワードプランナーで…

現在、AdWords にログインしていない状態で、キーワードツールを使おうとすると、下記のメッセージが表示されるようになりました。

(既に巷ではある程度ウワサにはなっているのですが、リスティング業界の人はログインして使用する人が多いせいか、あまり話題に上がらないので、遅ればせながら記事にさせて頂きます。リスティング業界の人にとっても、大事なツールですからね…)

Google キーワードツールの終了、今後はキーワードプランナー

今後数か月以内に、外部向けキーワードツールはご利用いただけなくなります。キーワード候補を取得するには、AdWords アカウントにログインして、キーワードプランナーをご利用ください。

ということで、長年親しんできた Google キーワードツールが終了し、今後はキーワードプランナーが代用ということになるようです。

今までキーワードツールで出来た基本的なことは、このキーワードプランナーで出来ますし、エンハンストやスマホの流れが進んでいる現在の状況を考えると、この流れは自然なことなのかもしれませんね。

ただ一つだけ気をつけなければいけないのは、今まではログインしてない状態でキーワードツールを使うことは出来たのですが、今後のキーワードプランナーに関してはログインしてない状態では使用不可ということです。

関連リンク

エンハンストキャンペーンは、コンバージョンオプティマイザーにどう影響するの?

エンハンストキャンペーンの最終移行日が迫る中、表題にあるような質問を受けました。

質問をくれる人はまだイイのですが、コンバージョンオプティマイザーDCO:ディスプレイキャンペーンオプティマイザーについても同じ)を導入しているにもかかわらず、そのあたりを考慮しないまま7月22日を迎えようとしている人を目にするようにもなりました。

『コンバージョンオプティマイザーは、ユーザーのデバイスも考慮して自動的に単価調整を行なってくれるんだけど、そもそもモバイルの入札単価調整を手動で変更したらどうなるの?』って疑問に思ってる人すら少ない気がする。

まずはその答えから言うと、エンハンストキャンペーンでコンバージョンオプティマイザーを導入した場合、モバイルの入札単価調整を手動で設定しても、その入札調整は適応されません。(ただしモバイル単価を-100%にした場合に限り、モバイルへ配信されない設定になります。)

※ 言葉の確認ですが以下、モバイル=スマホという扱いで話を進めます。

PCのキャンペーンをアップデート

っということは、現在PC限定でコンバージョンオプティマイザーを導入しているキャンペーンを、エンハンストキャンペーンにアップデートすると、-100%にしない限り、自動的にモバイルに勝手な単価で出稿されます。

もっと言えば、アカウント内にモバイル用のキャンペーンが存在する場合は、その履歴を引き継いでくれるみたいなので良いのですが、エンハンストキャンペーンにアップデートすると同時にモバイルをはじめる場合は、そのモバイルの過去のパフォーマンスデータが存在しないので、どういう動きになるのか分かりません。

モバイル限定のキャンペーン

逆に、エンハンストキャンペーン導入後もモバイル限定のキャンペーンを使用しようと考えている方。

※ 話を聞いていると、『スマホキャンペーンを+300%にしてPCの単価を広告が出ないくらいの低単価にすることで、エンハンストキャンペーン導入後もモバイル限定のキャンペーンで運用する』という方が、結構な割合でいる気がします。

この場合、コンバージョンオプティマイザーを導入すると、+300%の入札調整を無視することになるので、必然的にPCの広告も出稿されることになります。

通話コンバージョン

更に、エンハンストキャンペーンになると、60 秒を超える通話を『通話コンバージョン』としてカウントできる設定にすることができるみたいなんだけど、そのコンバージョンをコンバージョンオプティマイザーの対象にカウントできるかどうかも、まだ開発中で未発表のまま。

まとめ

考えてみると、いろんなケースが想定されますので、今までPC・モバイルの両方に広告を出していて、その上でコンバージョンオプティマイザーを使っていた人でない限り、ちょっとコンバージョンオプティマイザーの仕様は控えたほうが良いような気がします。

グループ単位で『目標CPA』の設定もできたりするので、そういうことも絡めると、もっと話がややこしくなる気がしますし、エンハンストキャンペーン導入後にある程度コンバージョンが取れてきた後で導入のほうが、賢明かな… (良いツールなんだけどね。)

3つ以上の複合キーワードを簡単に作成する方法

2つの複合キーワードの組み合わせを簡単に作る方法については、以前このブログでご紹介させて頂きました。

今回は、3語の複合キーワードを、簡単に作成する方法(組み合わせもそうですし、順番をそれぞれ入れ替えたキーワードリストの作成方法も含めて)をご紹介したいと思います。

3語の複合キーワードの組み合わせを、エクセルを使って簡単に作成する方法

例えば、下記のA列・B列・C列にあるキーワードをそれぞれ組み合わせることを考えると、

3語の複合キーワードの組み合わせ

4 x 5 x 5 = 100

となり、100通りもの組み合わせが出来る事になります。もちろん、気合とマニュアルでやることも可能ですが、ツールやエクセルなどで簡単にできるに越したことはありません。

その方法ですが、まずはエクセルのA列・B列・C列に、それぞれ組み合わせたいキーワードがある状態からはじめます。

次にD列の1行目に、下記をコピペします。

=INDIRECT(“A”&ROUNDUP((ROW())/PRODUCT(COUNTA($B$1:$B$98),COUNTA($C$1:$C$98)),0))&” “&INDIRECT(“B”&MOD(ROUNDUP((ROW())/COUNTA($C$1:$C$98),0)-1,COUNTA($B$1:$B$98))+1)&” “&INDIRECT(“C”&MOD(ROUNDUP((ROW()),0)-1,COUNTA($C$1:$C$98))+1)

INDIRECT

あとは、その数式を100行目までコピー(右下のフィルハンドルを100行目までドラッグなど)するだけです。

3語の複合キーワードの組み合わせ完成

これで、3語の複合キーワードの組み合わせは完成です。

3語以上の複合キーワードで、順番を入れ替えたキーワードリストを簡単に作成するツール

例えば、[賃貸 東京 マンション] の順番を入れ替えたリストを作りたい場合、

  • 賃貸 東京 マンション
  • 賃貸 マンション 東京
  • 東京 賃貸 マンション
  • 東京 マンション 賃貸
  • マンション 賃貸 東京
  • マンション 東京 賃貸

3 x 2 x 1 = 6 通りのリストが必要です。

まあ、6通りならマニュアルでも何とかなりますが、その6通りを何回もとなると苦痛ですし、それ以上になると、ツールを使いたくなってくると思います。

そんなとき こちらのサイト(英語)が便利です。

3語以上の複合キーワードで、順番を入れ替えたキーワードリストを簡単に作成するツール

他にもいろんな使い方ができるようですので、英語ができる方はこのサイトでもう少し遊んでみても良いと思います。

品質スコアの履歴を AdWords Script を使って管理する方法

品質スコアを最適化するために広告文を変更したりすることはあっても、その前と後の変化をデータを取って検証している人は意外と少ないですし、『品質スコアの履歴があったら良いけど、マニュアルで管理するのも面倒だな〜』と思っている方もいると思います。

そんな時に、AdWords Script を使って品質スコアの履歴を管理することができます。【参照: PPC Hero(英語)

手順

①. まずは下準備ですが、AdWords にログインした状態で、こちらのスプレッドシートを開き、ご自身のGoogle Drive などに保存します。

②. あらかじめ、Campaign(キャンペーン)AdGroup(グループ)Keyword(キーワード) の項目に、ご自身で運営している項目をそれぞれ反映させておきます。

③. 次に、AdWords アカウントにあるスクリプトを作成の画面に移ります。

スクリプトを作成

④. そこに、下記にあるスクリプトを貼り付けます。【参照: PPC Epiphany(英語)

var spreadsheet_url = “INSERT_SPREADSHEET_URL_HERE”;
var email_address = “YOUR_EMAIL_HERE”;

function main() {
var matches = new RegExp(‘key=([^&#]*)’).exec(spreadsheet_url);
if (!matches || !matches[1]) throw ‘Invalid spreadsheet URL: ‘ + spreadsheetUrl;
var spreadsheetId = matches[1];
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var sheet = spreadsheet.getSheetByName(‘Input Keywords’);
var sheet_values = sheet.getDataRange().getValues();
var result_range = new Array(); // holds the results to write back
var alert_text = new Array();
var history = new Array();
var currentTime = new Date();
var today = (currentTime.getMonth() + 1) + “/” + currentTime.getDate() + “/” + currentTime.getFullYear();

for(i = 1; i < sheet_values.length; i++){
// make sure there is actually some data here
if(sheet_values[i][0] == "") continue;
result_range[i] = [today, 0];
var campaign_name = sheet_values[i][0];
var adgroup_name = sheet_values[i][1];
// remove single quotes at the beginning of the keyword (Excel sometimes adds them in front of modified broad matches, like: '+keyword)
var keyword_text = sheet_values[i][2].replace(/^[']+/g, "");
var latest_check = sheet_values[i][3];
var old_quality_score = sheet_values[i][4];

var keywordIterator = AdWordsApp.keywords()
.withCondition("CampaignName = '" + campaign_name + "'")
.withCondition("AdGroupName = '" + adgroup_name + "'")
// this won't let us filter for phrase or exact matches so we have to remove brackets and quotation marks (broad match modifiers are fine)
.withCondition("Text = \"" + keyword_text.replace(/[\[\]\"]/g, "") + "\"")
.get();
while(keywordIterator.hasNext()){
var keyword = keywordIterator.next();
// since we couldn't filter phrase or exact matches directly, we have to make sure that this is the right keyword
if(keyword.getText() == keyword_text){
var current_quality_score = keyword.getQualityScore();
// save quality score for results
result_range[i][1] = current_quality_score;
// for the history we also note the change or whether this keyword is new
if(old_quality_score > 0) var change = current_quality_score – old_quality_score;
else var change = “NEW”;
var row = [today, campaign_name, adgroup_name, keyword_text, current_quality_score, change];
history.push(row);
// if we have a previously tracked quality score and it’s different from the current one, we make a note to log it and send it via email later
if(old_quality_score > 0 && current_quality_score != old_quality_score){
alert_text.push(current_quality_score + “\t” + old_quality_score + “\t” + change + “\t” + latest_check + “\t” + keyword_text);
}
// we’ve found the keyword we were looking for so we look no further
break;
}
}
}
// write results to spreadsheet
result_range.splice(0,1);
sheet.getRange(2, 4, result_range.length, 2).setValues(result_range);
// write history to spreadsheet
var history_sheet = spreadsheet.getSheetByName(‘QS history’);
history_sheet.getRange(history_sheet.getLastRow()+1, 1, history.length, 6).setValues(history);
// if we’ve made notes for alerts then we send them via email
if(alert_text.length){
var message = “The following quality score changes were discovered:\nNew\tOld\tChange\tPreviously checked\tKeyword\n”;
for(i = 0; i < alert_text.length; i++) message += alert_text[i] + "\n";
// also include a link to the spreadsheet
message += "\n" + "Settings and complete history are available at " + spreadsheet_url;
// if we have an email address we send out a notification
if(email_address && email_address != "YOUR_EMAIL_HERE"){
MailApp.sendEmail(email_address, "AdWords quality score changes detected", message);
}
// log the message
Logger.log(message);
}
}

INSERT_SPREADSHEET_URL_HERE の部分に、先ほど保存したスプレッドシートの URL を入力します。(必要に応じて、YOUR_EMAIL_HERE の部分に、メールアドレスも入力します。)

⑤. スクリプトを実行することで、それぞれの品質スコアをスプレッドシートに反映することができます。

品質スコアの履歴

⑥. あとは、AdWords アカウントより実行の頻度を決めたり、それをメールで配信することも可能ですし、それらのデータを加工することでアカウント全体の品質スコアをみながら最適化していくことも可能です。

AdWords Script に関しては、他にもキーワードや広告の管理にもいろいろ使用出来ると思うので、そのあたり今後いくつかご紹介していけたら良いなと思っています。