نص إعلان Google لإدارة ميزانيات الحملة
نشرت: 2021-10-23اليوم كمعلنين يستخدمون إعلانات Google ، أصبح من الصعب جدًا إدارة ميزانية محددة من خلال الحملة (الحملات). خياراتك في واجهة المستخدم فريدة: قم بتعيين قاعدة تستبعد كل ساعة. سؤالي لماذا؟ ألن يكون رائعًا أن يكون لديك برنامج نصي يمكن إدارته على مستوى الحملة ، عبر ورقة في عام 2019؟ استغرق الأمر بعض الوقت لكنني اكتشفت ذلك ، وسوف تراه أدناه. القدرة على إدارة الميزانيات في نص برمجي واحد مع ورقة عبر حملات متعددة.
قبل أن نواصل العمل على البرنامج النصي ، إذا تم تعيينك على قواعد لا تجعلها غير جيدة لإدارة الميزانية ، فإليك مثالاً على كيفية إنشاء قاعدة بها قيود زمنية محددة لإيقاف حملاتك مؤقتًا أو تمكينها بناءً على ميزانية لـ الحملات. يمكنك العثور على تفاصيل إضافية هنا مع القواعد التلقائية .
- سجّل الدخول إلى حسابك في إعلانات Google.
- انتقل إلى صفحات الحملات أو المجموعات الإعلانية أو الكلمات الرئيسية .
- انقر فوق رمز النقاط الثلاث أعلى جدول الإحصائيات.
- حدد إنشاء قاعدة تلقائية .
- حدد إيقاف مؤقت أو تمكين من القائمة المنسدلة "نوع القاعدة".
- اختر نوع الحملة
- لإضافة شرط ، انقر فوق + إضافة ، ضمن "الشرط".
- حدد معدل تكرار القاعدة الخاص بك وهو مرة واحدة أو يوميًا أو أسبوعيًا أو شهريًا .
- اختر نوع تحديثات البريد الإلكتروني التي ترغب في تلقيها بشأن المشكلات التي تؤثر على قاعدتك.
- اسم القاعدة الخاصة بك.
- انقر فوق معاينة للتأكد من أنك قمت بإعداد القاعدة الخاصة بك لتعمل بالطريقة التي تريدها. المعاينة هي فقط للتحقق ولا تُجري أي تغييرات دائمة على حسابك.
- عند الانتهاء ، انقر فوق حفظ القاعدة .
هناك فوائد للقواعد ، في رأيي من أجل الميزانية ، ليست قيّمة للغاية. وهذا يترك لنا دفع ثمن الأدوات أو وجود مطور أو مهندس لإنشاء بعض البرامج النصية الفاخرة أو النظام الأساسي الداخلي الذي يعمل مع واجهة برمجة تطبيقات Google. ماذا لو لم يكن لدي وصول إلى هذه الموارد وكل ما أريد فعله هو أن أكون معلنًا؟ لا يمكنني ، لا بد لي من تعلم البرمجة وعناصر واجهة برمجة التطبيقات لتضمين البقاء على اطلاع دائم بجميع تغييرات وتحسينات واجهة المستخدم ، والتي يمكنك العثور عليها في مكتبة PPC Hero.
لماذا تقرأ وكيف يعمل النص.
يدير هذا البرنامج النصي ميزانيتك على مستوى الحملة بالساعة عبر ورقة google ، حتى تتمكن من التوسع. على حد علمي ، لقد بحثت في الويب ، هذا هو الأول من نوعه للجمهور. أنا لم أكتب النص الأصلي. والتي يمكن العثور عليها هنا بواسطة Google. لقد قمت ببساطة بحذف مجموعة من الأشياء التي تحتوي على الكثير من التجارب والأخطاء على مدار عام واحد وأعدت العمل في بعض الأشياء لجعلها تدير الميزانيات بدلاً من العطاءات.
يتيح لك البرنامج النصي المرونة في تحديد ميزانياتك ونسيانها في حدود المعقول. إذا كنت تريد أن تصاب بالجنون ، فيمكنك فعل ما أفعله واستخدام هذا البرنامج النصي مع البرنامج النصي بوتيرة السرعة مع عدد قليل من أوراق google المخصصة بحيث يكون لديك أداة إدارة الميزانية ومقدم العطاء. لقد أدركت أنه إذا كان بإمكان شخص ما بناء أداة للقيام بهذه الأشياء وكسب ملايين الدولارات ، فلا بد أن تكون هناك طريقة مجانية للقيام بذلك.
أنا على يقين ، من شبه المؤكد أن هناك طريقة أفضل لكتابة هذا النص وأكثر من المؤكد أن هناك طريقة للقيام بذلك على مستوى مركز عملائي لإدارة حسابات متعددة. أنا لم أحسب ذلك. سيكون رائعًا لمن يرون هذا من المطورين و / أو المهندسين إجراء تعديلات على هذا البرنامج النصي ومشاركة نسخة مجانية على مستوى مركز عملائي مع التحسينات الخاصة بك.
كيفية إعداد البرنامج النصي
قبل تشغيل البرنامج النصي ، إليك بعض الأشياء التي تحتاج إلى تغييرها.
- اصنع ورقة Google جديدة. هذا هو المكان الذي سيعرف فيه البرنامج النصي الحملات التي يجب إيقافها مؤقتًا أو إلغاء إيقافها ، بمجرد إنشاء ورقة جديدة ، انسخ عنوان URL.
- تأكد من تعيين اسم علامة التبويب على "القواعد" إذا لم يكن الأمر كذلك ، يُرجى التأكد من تحديث هذا السطر حيث "تم تغيير القواعد إلى أي اسم لعلامة التبويب الخاصة بك: var spreadsheetAccess = new SpreadsheetAccess (SPREADSHEET_URL،" Rules ")
- لا تزال تعمل في جداول بيانات Google ، قم بتحديث الصف 2 برقم حسابك "000-000-0000" واستبدله برقم حسابك.
- الصف 3 هو مرجع الفترة الزمنية لتشغيل البرنامج النصي الخاص بك ، إذا كنت تريد التنفيذ بعد 7 أيام أو أسبوع واحد أو شهر. ارجع إلى الجدول أدناه للحصول على مدخلات صالحة لهذا الصف من حيث صلته بهدفك في التحكم في ميزانياتك.
- بدءًا من الصف 6 ، العمود C ، ستحتاج إلى إضافة ميزانياتك لتلك الفترة
- أخيرًا ، في الصف 6 ، العمود D ، ستحتاج إلى سرد حملاتك.
آمل أن يساعدك هذا جميعًا في التحكم بشكل أفضل في ميزانياتك. نسيت تقريبا، يمكنك تغيير campaign.pause في البرنامج النصي لcampaign.enable وضبط صيغة بسيطة إذا كنت ترغب في تكرار السيناريو وخلق سيناريو آخر لتمكين الحملات.
النصي
var SPREADSHEET_URL = "[https://docs.google.com/spreadsheets/d/1AbldNxsSPHkE0WcOY01AoM7EimF2_7XDrvI5FeLcarY/edit#gid=0]"; var spreadsheetAccess = new SpreadsheetAccess(SPREADSHEET_URL, "Rules"); var totalColumns; function main() { var columns = spreadsheetAccess.sheet.getRange(5, 2, 5, 100).getValues()[0]; for (var i = 0; i < columns.length; i ++) { if (columns[i].length == 0 || columns[i] == 'Results') { totalColumns = i; break; } } if (columns[totalColumns] != 'Results') { spreadsheetAccess.sheet.getRange(5, totalColumns + 2, 1, 1).setValue("Results"); } // clear the results column spreadsheetAccess.sheet.getRange(6, totalColumns + 2, 1000, 1).clear(); var row = spreadsheetAccess.nextRow(); while (row != null) { var budget; try { budget = parseBudget(row); } catch (ex) { logError(ex); row = spreadsheetAccess.nextRow(); continue; } var selector = AdWordsApp.campaigns(); for (var i = 2; i < totalColumns; i ++) { var header = columns[i]; var value = row[i]; if (!isNaN(parseFloat(value)) || value.length > 0) { if (header.indexOf("'") > 0) { value = value.replace(/\'/g,"\\'"); } else if (header.indexOf("\"") > 0) { value = value.replace(/"/g,"\\\""); } var condition = header.replace('?', value); selector.withCondition(condition); } } var campaigns = selector.get(); try { campaigns.hasNext(); } catch (ex) { logError(ex); row = spreadsheetAccess.nextRow(); continue; } var fetched = 0; var changed = 0; while (campaigns.hasNext()) { var campaign = campaigns.next(); var oldCost = campaign.getStatsFor("THIS_MONTH").getCost(); var action = row[0]; var newStatus; fetched ++; if (budget <= oldCost) { campaign.pause(); changed++ } } logResult("Fetched " + fetched + "\nChanged " + changed); row = spreadsheetAccess.nextRow(); } var now = new Date(Utilities.formatDate(new Date(), AdWordsApp.currentAccount().getTimeZone(), "MMM dd,yyyy HH:mm:ss")); } function parseBudget(row) { if (row[1].length == 0) { return null; } var limit = parseFloat(row[1]); if (isNaN(limit)) { throw "Bad Argument: must be a number."; } return limit; } function logError(error) { spreadsheetAccess.sheet.getRange(spreadsheetAccess.currentRow(), totalColumns + 2, 1, 1) .setValue(error) .setFontColor('#c00') .setFontSize(8) .setFontWeight('bold'); } function logResult(result) { spreadsheetAccess.sheet.getRange(spreadsheetAccess.currentRow(), totalColumns + 2, 1, 1) .setValue(result) .setFontColor('#444') .setFontSize(8) .setFontWeight('normal'); } function SpreadsheetAccess(spreadsheetUrl, sheetName) { this.spreadsheet = SpreadsheetApp.openByUrl(spreadsheetUrl); this.sheet = this.spreadsheet.getSheetByName(sheetName); this.cells = this.sheet.getRange(6, 2, this.sheet.getMaxRows(), this.sheet.getMaxColumns()).getValues(); this.rowIndex = 0; this.nextRow = function() { for (; this.rowIndex < this.cells.length; this.rowIndex ++) { if (this.cells[this.rowIndex][0]) { return this.cells[this.rowIndex++]; } } return null; } this.currentRow = function() { return this.rowIndex + 5; } }