زمان مطالعه: 7 دقیقه
در این بخش ، شما فقط باید نام کمپین مد نظرتان رو به صورت دقیق بین ‘’ ‘’ قرار بدین و میزان هزینه ای که مد نظر دارید در هر روز هزینه کنید هم در مقابلش قرار بدین . در واقع شما مشخص میکنید که campaign 1 تنها مجاز است در یک روز 100 لیر هزینه کند.
نکته مهم این هستش که اصلا نباید به واحد پولی اکانت توجه کنیم و شما تنها باید میزان لیمیت هزینه روزانه رو مشخص کنید.
در این اسکریپت مشخص شده که تنها هزینه همان روز را ارزیابی و بررسی بشود .
بعد از اینکه اسکریپت نهایی شد ، preview رو کلیک می کنید و بعد authorize کنید و جیمیلتون که اکانت گوگل ادزتون روش لاگین شده رو انتخاب میکنید و در ادامه RUN رو کلیک میکنید . بعد از اینکه run کردین اسکریپت رو ، در بخش script history شما میبینید که اسکریپتتون با موفقیت پیاده سازی شده . در ستون status میبینید که نوشته شده finished successfully . اما مهم ترین قدم اینجاس که چه زمانی این شرطی که داخل اسکریپت مطرح کردیم ، باید به صورت خودکار توسط گوگل بررسی بشه ؟؟؟ ما تا اینجا اصلا در مورد همچین موردی صحبت نکردیم و الان باید این مورد رو برای این اسکریپت دقیقا مشخص کنیم.
برای تنظیم frequency شما باید ، مجددا وارد بخش اسکریپت بشید و اسکریپتی که درست کردین در مرحله قبل رو مشاهده میکنید.
ادیت رو میزنید و در این بخش شما مشخص می کنید که هر چند ساعت ( با چه الگوی زمانی این فرایند بررسی هزینه روزانه بررسی بشود ) شرط داخل اسکریپت بررسی بشود.
در این سناریو نیاز داریم که هر ساعت این مورد بررسی بشود و اگر اون هزینه رد شده بود رو باید کمپین پاز بشود. اکنون اسکریپت شما کاملا اماده شده است و شما می توانید به صورت کامل از این اسکریپت استفاده کنید. در این سناریو کمپین هایی که در اسکریپت مشخص کردید در هزینه مشخص ، هر یک ساعت بررسی می شود و اگر اون هزینه رد شده بود کمپین متوقف خواهد شد .
اما ما نیاز داریم که کمپین در روز اینده مجددا فعال بشود ، پس باید یک رول ران کردن مجدد کمپین نیز استفاده بکنیم.
در ادامه اسکریپت های متفاوت دیگر نیز برایتان قرار داده میشود ، روند اجرا کاملا مشابه به ان چیزی است که پیش تر تشریح کردیم.
حالا میزان کنترل شما بر روی هزینه کمپین و یا ادگروپ در کل مدت زمانی که کمپین ران بوده است ارزیابی می شود که به ترتیب قرار داده می شود
به بیان واضح تر اگر هدف شما این است که در هزینه کمپین یا ادگروپ در کل بازه زمانی از یک عدد مشخص بالاتر نرود ، باید میزان هزینه ای که تا الان انجام شده است را با مبلغی که در نظر دارید جمع کنید و در اسکریپت قرار بدهید
به عنوان مثال : یک کمپین دارید که در کل بازه زمانی 1000 لیر هزینه کرده است ، اکنون بر روی اکانت 3000 لیر شارژ دارید و در نظر دارید که این کمپین مشخص در نهایت از این شارژ 3000 لیری تنها 500 لیر هزینه کند ، پس در اسکریپت عدد 1500 را قرار می دهید .
عکس های اسکریپت به ترتیب قبل قرار داده خواهد شد:
اسکریپت هایی که تا الان بررسی کردیم ، امکان جدا کردن کمپین را برایمان ایجاد میکرد اما گاهی برایمان مهم نیست که هزینه هر کمپین به تفکیک به چه صورت باشد و در نهایت نمی خواهیم هزینه روزانه یا در all time تمامی کمپین هایمان از یک عددی بالاتر بشود . در این حال از اسکریپت های زیر استفاده خواهیم کرد.
در این فایل سعی کردیم که با استفاده از رویکرد های فکری متنوعی برای کنترل هزینه ، بتونیم اسکریپت های متفاوتی رو در کنار هم داشته باشم
تمامی فایل اسکریپت ها قرار داده خواهد شد تا به راحتی استفاده بکنید . ممنون از توجهتون
دانلود فایل اسکریپت
15 مهر 1403
همواره در کلاس های سرچ ادز پلاس مجموعه HDM ، یکی از مهم ترین مواردی که در ارتباط با افزایش میزان نمایش و به دنبال آن کلیک می باشد ، بالاتر قرار دادن میزان باجت روزانه برای هر کمپین می باشد . بالاتر قرار دادن باجت همواره نیز موجب خواهد شد تا حجم سرچی را به واسطه کم بودن بودجه روزانه کمپین از دست ندهید و در کنارش با با مدیریت هزینه هر کییورد بتوانید میزان هزینه روزانه را نیز مدیریت کنید . از قدرتمند ترین امکانات پنل گوگل ادز استفاده از رول های اتومات به منظور بررسی ، تغییر یک متریک در سطح کمپین ، ادگروپ و یا حتی کییورد می باشد . از متداول ترین رول های مورد استفاده در پنل گوگل ادز ، رول های کنترل هزینه کمپین و یا ادگروپ می باشد ، بدین صورت که شما مشخص میکنید در یک بازه زمانی خاص مقدار هزینه مصرف شده برای کمپین و یا ادگروپ را بررسی کند و اگر از ان مقدار بالاتر رفته بود کمپین را پاز کند اما گاهی اوقات ممکن جزئیات تنظیم یک رول فراموش شود و گاهی ممکن است که مجبور باشید برای کنترل هزینه چند کمپین رول های متنوعی استفاده کنید. راه حل جایگزین و کمی ساده تر به منظور بررسی هزینه کمپین و ادگروپ استفاده از اسکریپت هایی هستش که براتون طراحی کردیم تا فرایند ارزیابی و چکینگ هزینه های کمپین گوگل ادز و ادگروپ رو ساده تر پیش ببرید. 6 اسکریپت رو براتون طراحی کردیم و در ادامه به توضیح هر کدوم به صورت مفصل و کامل میپردازیم . به منظور استفاده از اسکریپت ها باید مسیر زیر رو در پنل پیش ببریم :Tools and settings / Bulk actions / script
از مسیر فوق ، شما می توانید بخش اسکریپت رو ببینید و از اسکریپت ها استفاده کنید.بررسی هزینه روزانه به تفکیک هر کمپین
نام اسکریپت : CampaignDailyCostControl قابلیت اصلی اسکریپت : شما امکان دارید که دقیقا مشخص کنید کدام کمپین دقیقا چه مقدار در یک روز هزینه کند نکته : مهم ترین نکته این هستش که دقیقا نام کمپین کپی بشود تا اشتباه تاپی در نام کمپین زمانی که در اسکریپت وارد میکنید وجود نداشته باشد. اولین اسکریپت که براتون فراهم کردیم ، چک کردن میزان هزینه روزانه هر کمپین میباشد. ساختار اسکریپت به صورت زیر میباشد. ساختار کلی اسکریپت مطابق با شکل فوق می باشد ، از کادر سبز به صورت جداگانه ، عکس قرار داده شده است.
function main() {
var campaignLimits = [
{ name: "Campaign 1", limit: 100 },
{ name: "Campaign 2", limit: 200 },
{ name: "Campaign 3", limit: 300 }
];
var campaigns = AdsApp.campaigns().get();
while (campaigns.hasNext()) {
var campaign = campaigns.next();
var campaignName = campaign.getName();
var campaignCostToday = campaign.getStatsFor("TODAY").getCost();
for (var i = 0; i < campaignLimits.length; i++) {
if (campaignName === campaignLimits[i].name) {
if (campaignCostToday > campaignLimits[i].limit) {
campaign.pause();
}
break;
}
}
}
}
دومین اسکریپت : AdGroupDailyCostControl
قابلیت اصلی اسکریپت : شما امکان دارید که دقیقا مشخص کنید کدام اد گروپ دقیقا چه مقدار در یک روز هزینه کند نکته : مهم ترین نکته این هستش که دقیقا نام کمپین کپی بشود تا اشتباه تاپی در نام کمپین زمانی که در اسکریپت وارد میکنید وجود نداشته باشد. Frequency حتما مشخص بشود
function main() {
var adGroupLimits = [
{ name: “Ad Group 1”, limit: 100 },
{ name: “Ad Group 2”, limit: 200 },
{ name: “Ad Group 3”, limit: 300 }
];
var adGroups = AdsApp.adGroups().get();
while (adGroups.hasNext()) {
var adGroup = adGroups.next();
var adGroupName = adGroup.getName();
var adGroupCostToday = adGroup.getStatsFor(“TODAY”).getCost();
for (var i = 0; i < adGroupLimits.length; i++) {
if (adGroupName === adGroupLimits[i].name) {
if (adGroupCostToday > adGroupLimits[i].limit) {
adGroup.pause();
}
break;
}
}
}
}
نام اسکریپت : CampaignAllTimeCostControl
function main() {
var campaignLimits = [
{ name: “Campaign 1”, limit: 100 },
{ name: “Campaign 2”, limit: 200 },
{ name: “Campaign 3”, limit: 300 }
];
var campaigns = AdsApp.campaigns().get();
while (campaigns.hasNext()) {
var campaign = campaigns.next();
var campaignName = campaign.getName();
var campaignCostAllTime = campaign.getStatsFor(“ALL_TIME”).getCost();
for (var i = 0; i < campaignLimits.length; i++) {
if (campaignName === campaignLimits[i].name) {
if (campaignCostAllTime > campaignLimits[i].limit) {
campaign.pause();
}
break;
}
}
}
}
نام اسکریپت : AdGroupAllTimeCostControl
function main() {
var adGroupLimits = [
{ name: “Ad Group 1”, limit: 100 },
{ name: “Ad Group 2”, limit: 200 },
{ name: “Ad Group 3”, limit: 300 }
];
var adGroups = AdsApp.adGroups().get();
while (adGroups.hasNext()) {
var adGroup = adGroups.next();
var adGroupName = adGroup.getName();
var adGroupCostAllTime = adGroup.getStatsFor(“ALL_TIME”).getCost();
for (var i = 0; i < adGroupLimits.length; i++) {
if (adGroupName === adGroupLimits[i].name) {
if (adGroupCostAllTime > adGroupLimits[i].limit) {
adGroup.pause();
}
break;
}
}
}
}
نام اسکریپت : CampaignDailyTotalCostControl
function main() {
var campaignCost = 0;
var campaigns = AdsApp.campaigns().get();
while (campaigns.hasNext()) {
var campaign = campaigns.next();
campaignCost += campaign.getStatsFor(‘TODAY’).getCost();
}
if (campaignCost >= 20500) {
var campaignIterator = AdsApp.campaigns().get();
while (campaignIterator.hasNext()) {
campaignIterator.next().pause();
}
}
}
نام اسکریپت : CampaignAllTimeTotalCostControl
function main() {
var campaignCost = 0;
var campaigns = AdsApp.campaigns().get();
while (campaigns.hasNext()) {
var campaign = campaigns.next();
campaignCost += campaign.getStatsFor(‘ALL_TIME’).getCost();
}
if (campaignCost >= 20500) {
var campaignIterator = AdsApp.campaigns().get();
while (campaignIterator.hasNext()) {
campaignIterator.next().pause();
}
}
}