该脚本会在您的帐户中运行所有被拒登的广告,并尝试在ALL CAPS中查找带有单词的广告。我不确定Google的上限是多少,但是在下面的脚本中,它将查找连续三个或三个以上大写字母的任何内容。然后替换它们,创建一个新广告,如果成功,则删除旧广告。
我在确定广告被拒登的原因时遇到了麻烦。 API中尚不提供此功能,但具有 被要求。另一个问题是,有时您创建的新广告会失败,这将导致您删除旧广告而不创建新广告。为了解决这一问题,我在制作新广告之前和之后对广告组中的广告进行了计数,以确保我的广告已创建。再说一次 发布功能请求 在adwords脚本论坛中。
谢谢,
拉斯
//----------------------------------- // Fix Ads with EXCESSIVE CAPITALIZATION // Created By: 拉斯 Savage // FreeAdWordsScripts.com //----------------------------------- function main() { var find_caps = /[A-Z]{3,}/g; var SEP = '[email protected]~~'; // this needs to be something you would never put in your 广告. var 广告 _iter = AdWordsApp.ads().withCondition("ApprovalStatus = 'DISAPPROVED'").get(); while(ad_iter.hasNext()) { var 广告 = 广告 _iter.next(); var old_ad_cnt = get_ad_count(ad.getAdGroup()); var old_ad_str = [ad.getHeadline(),ad.getDescription1(),ad.getDescription2(),ad.getDisplayUrl()].join(SEP); var new_ad_str = old_ad_str; Logger.log("Before:"+old_ad_str); var m = ""; while((m = find_caps.exec(new_ad_str)) != null) { new_ad_str = replace_all(new_ad_str,m[0],init_cap(m[0]),false); } Logger.log("After:"+new_ad_str); if(old_ad_str != new_ad_str) { var [new_headline,new_desc1,new_desc2,new_disp_url] = new_ad_str.split(SEP); 广告 .getAdGroup().createTextAd(new_headline, new_desc1, new_desc2, new_disp_url, 广告 .getDestinationUrl()); var new_ad_cnt = get_ad_count(ad.getAdGroup()); if(new_ad_cnt == (old_ad_cnt+1)) { 广告 .remove(); } } else { Logger.log("Skipping because no changes were made."); } } function init_cap(s) { return s.charAt(0).toUpperCase() + s.slice(1).toLowerCase(); } // This function was 广告 apted from: http://dumpsite.com/forum/index.php?topic=4.msg8#msg8 function replace_all(original,str1, str2, ignore) { return original.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2); } function get_ad_count(ad_group) { var 广告 _iter = 广告 _group.ads().get(); var new_ad_cnt = 0; while(ad_iter.hasNext()) { 广告 _iter.next(); new_ad_cnt++; } return new_ad_cnt; } }