Wednesday, June 12, 2019

Script loại bỏ tên miền .xyz, .tk ra khỏi Mạng hiển thị của Google Ads

Standard

Loại bỏ các tên miền bạn cho là không hiển quả khi chạy hiển thị GDN google.


Đầu tiên các bạn truy cập tài khoản google ads của mình.
B1: Chọn -> Công cụ và cài đặt
B2: Chọn -> Tạo lệnh
B3: Tạo Lệnh Mới
B4: Sử dụng tập lệnh sau:
 /**
* Removes placements ending in the tlds xyz, tk, and download.
* @author Dawson Reid
* @author Andrew Breen
*/

// Top Level Domains to exclude

var TLDs = '.xyz, .tk, .download';

// -------------------------------------------------------

function removePlacementByDomain (domain) {
var placementSelector = AdWordsApp.display().placements()
.withCondition("PlacementUrl CONTAINS '" + domain + "'")
.withCondition("CampaignStatus != REMOVED");

var placementIterator = placementSelector.get();
while (placementIterator.hasNext()) {
var placement = placementIterator.next();
var placementUrl = placement.getUrl();
//Logger.log(placementUrl);

var campaign = placement.getCampaign();
var excludeOperation = campaign.display().newPlacementBuilder().withUrl(placementUrl).exclude();
if (!excludeOperation.isSuccessful()) {
Logger.log("Could not exclude : " + placementUrl);
}
}
}

function run () {
TLDs.split(',').map(function (tld) {
return tld.trim();
}).forEach(function (domain) {
removePlacementByDomain(domain);
});
}

function executeInSequence (sequentialIds, executeSequentiallyFunc) {
Logger.log('Executing in sequence : ' + sequentialIds);
sequentialIds.forEach(function (accountId) {
var account = MccApp.accounts().withIds([accountId]).get().next();
MccApp.select(account);
executeSequentiallyFunc();
});
}

function main () {
try {
var accountIterator = MccApp.accounts().orderBy('Name').get();
Logger.log('Total number of accounts under MCC : ' + accountIterator.totalNumEntities());

var accountIds = [];
while (accountIterator.hasNext()) {
var account = accountIterator.next();
accountIds.push(account.getCustomerId());
}
var parallelIds = accountIds.slice(0, 50);
var sequentialIds = accountIds.slice(50);
// execute accross accounts
MccApp.accounts()
.withIds(parallelIds)
.executeInParallel('run');
if (sequentialIds.length > 0) {
executeInSequence(sequentialIds, run);
}
} catch (exception) {
// not an Mcc
Logger.log('Running on non-MCC account.');
run();
}
}

Phần này bạn có thể lựa chọn nhiều tên miền khác nhau:

B5: Bấm Lưu
Tiếp đến các bạn có thể bấm XEM TRƯỚC (nó sẽ hiện bạn CHO PHÉP chạy và bạn bấm là được)hoặc CHẠY luôn. Đợi một lúc sẽ hiện ra các trang có tên miền mà bạn không muốn hiển thị
B6: Quay lại phần Tập Lệnh -> đến phần Tần Suất thì bạn chọn nó là Hàng Giờ để hàng giờ hệ thống sẽ tự chạy và loại bỏ những tên miền bạn không muốn hiện thị.

Code vượt qua ngân sách:
function main() {

var allowedOverdeliveryPercentage = 0.2; // set percentage as decimal, i.e. 20% should be set as 0.2
var labelName = 'Paused for Overdelivery';

AdWordsApp.createLabel(labelName, 'automatic label needed to reenable campaigns');

var campaigns = AdWordsApp.campaigns()
.withCondition('Status = ENABLED')
.withCondition('Cost > 0')
.forDateRange('TODAY');

var campaignIterator = campaigns.get();

while (campaignIterator.hasNext()) {
var campaign = campaignIterator.next();
var campaignName = campaign.getName();
var budgetAmount = campaign.getBudget().getAmount();
var costToday = campaign.getStatsFor('TODAY').getCost();

if(costToday > budgetAmount * (1 + allowedOverdeliveryPercentage)) {
Logger.log(campaignName + ' has spent ' + costToday + ' which is more than allowed.');
campaign.applyLabel(labelName);
campaign.pause();
} else {
Logger.log(campaignName + ' has spent ' + costToday + ' and can continue to run.');
}
}

}

Chúc các bạn thành công!

0 comments:

Post a Comment