AdWords Scriptを使って品質スコアの推移を簡単に計測

グラッドキューブ BLOG

AdWords Scriptを使って品質スコアの推移を簡単に計測

  • このエントリーをはてなブックマークに追加

通常、Google AdWordsで
各Keywordの品質スコアの推移を計測するには、
毎日Keywordのレポートをダウンロードして、
CSVで確認する必要があります。
 
確かにこの方法でも
品質スコアの推移を計測することはできますが、
毎日レポートをダウンロードする必要があるので、
面倒ですよね?

 
でも実は

もっと簡単に

品質スコアの推移を計測できる方法があります。

※品質スコアの概念については
AdWordsヘルプ内のhttp://support.google.com/adwords/answer/2454010?hl=jaから確認できます。

 
それでは手順をご説明していきますね。
 

1、Google AdWordsにログインした状態で
https://docs.google.com/spreadsheet/ccc?key=0At0NHxQ5qTYKdHpYcDUtaENVSV9iLUpvcnBZMzluVlE#gid=0″のスプレッドシートを開きます。

上記の赤文字部分をクリックして下さい。
 

2、スプレッドシートをコピー

1で開いたスプレッドシートを開き
「ファイルをクリック⇒コピーを作成」の順番で進めてください。

 
3、スプレッドシートに入力

スプレッドシートのA列、B列、C列には、
下記の項目が予め記載されています。
 
・campaign
・AdGroup
・Keyword

上記の項目に、
あなたが品質スコアの計測を行いたい
実際のキャンペーン名、広告グループ名、キーワードを入力します。
 
※下の図は一例となります。

スポンサーリンク

4、今度はAdWordsアカウントにログインし、一括処理をクリック


 
5、スクリプトを作成をクリック


 
6 下記のスクリプトを貼り付けます

※下記スクリプトはコピペ可能です。
 ただし、貼り付ける際には2つだけ修正が必要です。
 修正箇所は下の方をご覧下さい。

[html]
var spreadsheet_url = "コピーしたスプレッドシートのURL=0";
var email_address = "ご自身のメールアドレス";

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);
}
}
[/html]
 
※このスクリプトを貼り付ける際には、
以下の2点の修正をお願いします。
 

1行目と2行目の青く囲っている箇所に、
 
★1行目にはコピーしたスプレッドシートのURLを記入
★2行目にはご自身のメールアドレス
 
これらの修正をお願いします。

 
※2行目に自分のメールアドレスを入力することにより、
品質スコアに変化があった際に、
このような感じで自動的にメールが送られてくるようになります。

 

7、スクリプト設置後、保存します


 

8、スプレッドシートを確認


スプレッドシート内に、
自動的に日付と品質スコア
入力されていれば完了です。

 
 

品質スコアで利益率が大幅アップ!
 

全く同じキーワードでも、
品質スコアが高ければ高いほど
安いお金で広告が上位表示できるようになり、
アクセスを集めることが可能になります。

例えば、こちらをご覧下さい。


 

「ネジ」というキーワードですが、
品質スコアが2の時は、入札価格100円で
1位に表示させることができます。

しかし、品質スコアが10の時は、
たった30円で1位に表示させることができるのです。

 

仮にこの条件で
10,000アクセスを集めた場合どうなるかというと

このように、品質スコアが2の場合、
10,000アクセスを集めるには100万かかりますが、
品質スコアが10の場合には、
30万で集めることができてしまうわけです。

品質スコアが高ければ、低い時に比べて
たった3分の1の広告費で済むわけですね。

 

いかがでしょうか?

リスティング広告を運用する上で、
品質スコアが如何に重要なのか、
おわかり頂けたでしょうか?

今回、ご紹介した方法を用いて品質スコアの改善を行い、
さらに売上アップ利益率アップをして頂ければ、大変嬉しく思います。

  • このエントリーをはてなブックマークに追加
メニューボタンメニュー閉じるボタン