Hi Team,
I have write an script and its working fine, but i have some problem with this. It is not adding label to all keywords. Total 109 keywords added but label applied just for 28 keywords. I am not able to find issue. Please help me. review below code:
function main() {
var kwarr = [];
var LabelName = "New KW from SQR";
function createLabelIfNeeded(NAME_OF_LABEL) {
if(!AdWordsApp.labels().withCondition("Name = '"+NAME_OF_LABEL+"'").get().hasNext()) {
AdWordsApp.createLabel(NAME_OF_LABEL);
}
}
createLabelIfNeeded(LabelName);
var columns = [
"Keyword", "Ad Group", "Campaign", "Match Type"
];
var upload = AdsApp.bulkUploads().newCsvUpload(columns);
var report = AdsApp.report("SELECT Query, AdGroupName, CampaignName, Conversions " +
"FROM SEARCH_QUERY_PERFORMANCE_REPORT " +
"WHERE Conversions > 0 " +
"DURING 20171001,20171130 ");
var rows = report.rows();
while (rows.hasNext()) {
var row = rows.next();
kwarr.push([row["Query"], row["AdGroupName"], row["CampaignName"]]);
upload.append({
'Keyword': row["Query"],
'Ad Group': row["AdGroupName"],
'Campaign': row["CampaignName"],
'Match Type': "Exact match"
});
}
upload.forCampaignManagement();
upload.apply();
Logger.log(JSON.stringify(kwarr));
for (var i = 0; i < kwarr.length; i++) {
//kwarr[i].applyLabel(LabelName);
var kw = AdsApp.keywords()
.withCondition("KeywordMatchType = EXACT")
.withCondition("Text CONTAINS_IGNORE_CASE '" + kwarr[i][0]+"'")
.withCondition("CampaignName CONTAINS_IGNORE_CASE '" + kwarr[i][2]+"'")
.withCondition("AdGroupName CONTAINS_IGNORE_CASE '" + kwarr[i][1]+"'")
.get();
while (kw.hasNext()) {
var kws = kw.next();
kws.applyLabel(LabelName);
}
}
}