چگونه در گوگل ادز به اتوماسیون فرآیندها رسیدیم؟ به قلم مرجان پورعلی، پرفورمنس مارکتر علیبابا
فهرست مطلب
من مرجان پورعلی، کارشناس پرفورمنس مارکتینگ هستم و در این یادداشت که به روایت تیم دیجیتال علیبابا نوشته شده به چالشها و راهکارهایی که پشت سر گذاشتیم تا در گوگل ادز به اتوماسیون فرآیندها برسیم، اشاره کردم.
در گوگل ادز، اتوماتیک کردن فرآیندهای تکراری و پیچیده، ضمن حفظ زمان، خطای انسانی را نیز به حداقل میرساند. در صنایع پویا که مدام در حال تغییر هستند، مثل صنعت گردشگری، اتوماسیون علاوه بر موارد یاد شده، کمک میکند تا از فرصتهای فروش نیز به موقع استفاده شود.
اما فرآیند اتوماسیون، با وجود همه مزایای آن، در کسبوکارهایی که محصولاتی با استراتژیهای متفاوت و پیچیده دارند، با چالشهایی همراه است.
ما در علیبابا، با توجه به پیچیدگیهای محصولات و استراتژیهای متفاوت آنها، چالشهایی را در اتوماسیون گوگل ادز پشت سر گذاشتیم. از آنجایی که شاید این چالشها، برای بسیاری از کسبوکارهای کوچک و بزرگ وجود داشته باشد، راه حلهایی که در این مسیر پیدا کردیم را به تفصیل منتشر میکنیم.
محصولاتی با پیچیدگیها و جزئیات زیاد
علاوهبر تنوع خدمات سفر در علیبابا، هر کدام از این خدمات پیچیدگیها، جزییات و زیرمجموعههای خاص خود را دارند.
به طور مثال خدمات پرواز داخلی، پرواز خارجی و تور علیبابا هریک تعداد بسیار زیادی مبدا و مقصد متفاوت را در دل خود جای دادهاند. ساخت ادگروپ (Ad Group) و سایتلینک (Sitelink) برای هریک از این مسیرها در حالتهای رفتوبرگشت، جزییات بسیار زیادی دارد.
در خدمات هتل و اقامتگاه هم شهرها و هتلهای مختلفی وجود دارد، که مشابه محصول پرواز و تور، پیادهسازی ادگروپ (Ad Group) و سایتلینک (Sitelink) آنها با جزییات زیادی همراه است.
تعداد زیاد مسیرها کنار تغییرات ماهانه کمپینها، ادگروپها و سایتلینکها وقت زیادی از تیم پید اکویزیشن (Paid Acquisition) میگیرد و تمرکز تیم را روی سایر بخشها کم میکند.
ضمن این که با بالا رفتن تعداد کمپینها، ادگروپها و سایتلینکها، امکان بروز خطای انسانی هم بیشتر میشود و در نهایت تمام این چالشها میتواند منجر به زیانهای مالی چشمگیری شود.
وابسته بودن برخی عناصر به زمان
«زمان» یکی از مهمترین متغیرها در صنعت گردشگری است. در هر فصل، یا متناسب با هرتعطیلات، رفتار جستوجوی کاربر تغییر میکند و به دنبال آن کمپینها و تبلیغات به روز میشوند.
در چنین شرایطی، اعمال تغییرات به صورت دستی، زمانبر است و باعث از دست رفتن فرصت فروش میشود.
تخمین و گزارشدهی دستی هزینهها
چالش دیگر، پیشبینی هزینه گوگل ادز موردنیاز برای هریک از محصولات علیباباست. تغییرات استراتژی و نوسانات نرخ ارز روی هزینه نهایی تاثیرگذار است.
معیار سنجش عملکرد گوگل ادز برای ما، بررسی ROI است. باید بودجه را به گونهای تخمین بزنیم که همزمان بتوانیم ROI مدنظر را به دست آورده و ترافیک را به گونهای مدیریت کنیم که تقاضای بازار را از دست ندهیم. پیشبینی این فرایند به صورت دستی علاوهبر زمان زیاد، احتمال خطا را نیز بالا میبرد.
چگونه با اتوماسیون فرایندها، چالشها را حل کردیم؟
ما برای صرفهجویی در زمان، افزایش سرعت اجرای فرایندها و استفاده حداکثری از فرصتهای فروش در هر یک از محصولات علیبابا دو راهکار کلی برای حل همه چالشهای گفتهشده در نظر گرفتیم:
ایجاد فرآیند خودکار برای ایجاد کمپین در گوگل ادز
این راهکار برای تیم گوگل ادز علیبابا در واقع یک تیر و چند نشان است. ما با استفاده از دو ابزار Google Sheets و Google Apps Script بسیاری از فرآیندهای دستی گوگل ادز را تبدیل به فرآیندهای اتومات کردیم.
برای نمونه، ساخت اتومات سایتلینکها در محصول هتل داخلی علیبابا را به ترتیب زیر پیش بردیم:
- با استفاده از Google Sheets یک فهرست کامل از اسم هتلهای هر شهر ساختیم. هتلهای مهم هر شهر به صورت ماهانه از سمت واحد مربوطه در اختیار تیم Paid قرار میگیرد. ما هم از فهرست هتلها در ساخت سایتلینک اد گروپ هر شهر استفاده میکنیم.
- با استفاده از فرمول Vlookup اسم هتلهای هر شهر را، در ستونهای مورد نظر، از فهرستی که واحد هتل در اختیار تیم Paid قرار داده، وارد میکنیم. همچنین مجددا با استفاده از فرمول Vlookup از شیت دیتابیس، آدرس صفحه هر هتل در ستونهای مورد نظر قرار داده میشود.
- ابزار Google Ads Editor، با یک نمونه فایل csv نحوه آپلود Bulk سایتلینکها را مشخص کرده است. تصویر زیر جزییات این فایل را به طور کامل نشان میدهد.
همانطور که در تصویر میبینید، به ترتیب اسم Campaign و Ad Group موردنظر را برای آپلود سایتلینکها نوشتهایم. در ادامه باید متن سایتلینک و Description Line 1 و 2 را مشخص کنیم. در ستون Upgraded extension هم کافی است این مورد نوشته شود: [ ]
نوشتن کروشه، فقط به دلیل آپدیت فرمت آپلود در Google Ads Editor هست.
- آدرس صفحه موردنظر را در ستون آخر مینویسیم.
- قبل نوشتن کد Apps Script برای سایتلینکها، باید برای هر سایتلینک ساختار مشخصی بسازیم. به عنوان مثال برای متن سایتلینک هتل داخلی علیبابا از ساختار زیر استفاده کردیم:
رزرو هتل x (نام هتل) در y (نام شهر)
به همین ترتیب ساختار Description 1 و Description 2 را هم مینویسیم.
برای پیادهسازی این ساختار دو شیت نیاز است:
شیت اول-Sitelink Center
در این شیت همه اطلاعاتی را قرار میدهیم که برای ساخت اجزای سایتلینکها مثل اسم کمپین و اد گروپ، متغیرها و آدرس صفحه (URL) نیاز داریم. ساختار شیت به صورت زیر است:
در این شیت باید نام کمپین، نام اد گروپ و آدرس صفحه (URL) وجود داشته باشد. مابقی موارد هم متغیرهایی هستند که در متن سایتلینک و توضیحات (Description) استفاده میشوند.
شیت دوم- Sitelink Result
در این شیت خروجی نهایی کد Apps Script قرار میگیرد. این شیت همانی فایلی است که باید در ابزار Google Ads Editor آپلود شود.
در ادامه کد Apps Script آورده شده است:
var Ads = SpreadsheetApp.getActiveSpreadsheet();
var sitelinkSheet = Ads.getSheetByName(‘sitelink result’);
var AdsRow = sitelinkSheet.getLastRow()+1;
var KW = SpreadsheetApp.getActiveSpreadsheet();
var Keyword_result_sheet = KW.getSheetByName(‘sitelink Center’);
var KWlistlength = Keyword_result_sheet.getLastRow();
var a;
var keyword_result_values = [];
keyword_result_values = Keyword_result_sheet.getDataRange().getValues();
var city,hotelname1,hotelname2,hotelname3,hotelname4,URL1,URL2,URL3,URL4,Type,Cheap;
در این بخش از کد، شیتهای مورد نیاز و متغیرها تعریف میشوند.
function WriteDhCityNameSitelinks()
//header
//Campaign name
sitelinkSheet.getRange(1,1).setValue(“Campaign”);
//Ad Group
sitelinkSheet.getRange(1,2).setValue(“Ad Group”);
//Link Text
sitelinkSheet.getRange(1,3).setValue(“Link Text”);
//Description Line 1
sitelinkSheet.getRange(1,4).setValue(“Description Line 1”);
//Description Line 2
sitelinkSheet.getRange(1,5).setValue(“Description Line 2”);
//Upgraded extension
sitelinkSheet.getRange(1,6).setValue(“Upgraded extension”);
//Final URL
sitelinkSheet.getRange(1,7).setValue(“Final URL”);
در بخش بعدی، فانکشن موردنظر را شروع میکنیم. اینجا باید نام headerهای شیت طبق فایل سمپل Google Ads Editor تعریف شود.
for(a = 1; a < KWlistlength; a++){
Type = keyword_result_values [a][12];
//console.log(Type);
if (Type == “City”){
campaignName = keyword_result_values[a][0];
adgroupName = keyword_result_values[a][1];
city = keyword_result_values [a][2];
hotelname1 = keyword_result_values [a][3];
hotelname2 = keyword_result_values [a][4];
hotelname3 = keyword_result_values [a][5];
hotelname4 = keyword_result_values [a][6];
URL1 = keyword_result_values [a][7];
URL2 = keyword_result_values [a][8];
URL3= keyword_result_values [a][9];
URL4= keyword_result_values [a][10];
Cheap= keyword_result_values [a][11];
// Sitelink 1
//Campaign name
sitelinkSheet.getRange(AdsRow+1,1).setValue(campaignName);
//Ad Group
sitelinkSheet.getRange(AdsRow+1,2).setValue(adgroupName);
//Link Text
sitelinkSheet.getRange(AdsRow+1,3).setValue(“Vertical Name”+” ” + hotelname1 +” “+city + ” ” +”USP”);
// // Description Line 1
sitelinkSheet.getRange(AdsRow+1,4).setValue(“Vertical Name “+ hotelname1 + ” ” + city);
// // Description Line 2
sitelinkSheet.getRange(AdsRow+1,5).setValue(“USP”);
// // Upgraded extension
sitelinkSheet.getRange(AdsRow+1,6).setValue(“[]”);
// //Final URL
sitelinkSheet.getRange(AdsRow+1,7).setValue(URL1);
- با استفاده از حلقه For، متنهای هدلاین و توضیحات را مینویسیم.
- بعد از اجرای کد، از شیت خروجی csv میگیریم.
- خروجی Google Ads Editor را آپلود میکنیم.
ایجاد فرآیند خودکار برای تغییرات هزینهای
همانطور که گفتیم، یکی از مهمترین چالشهای ما، مدیریت هزینهها با توجه به تغییرات زمانی بود. برای حل این مشکل یک فرآیند خودکار برای تخمین بودجه تعریف کردیم:
- برای این کار قبل هر چیز باید نامگذاری کمپینها و اد گروپهای گوگل ادز به شکلی باشد که بتوان از آنها یک شناسه مشخص استخراج کرد و هزینه هر محصول را جداگانه تخمین زد.
- مرحله بعد داشتن یک Sheet از نرخ ارز است. با توجه به نوسان نرخ ارز، باید نرخ ارز را به صورت روزانه در یک Sheet ذخیره کرد.
- پس از آن، با استفاده از Supermetrics، هزینه روزانه کمپینها در یک گوگل شیت ذخیره میشود. با ضرب هزینه به تناسب واحد ارزی (درهم یا لیر) در نرخ ارز، میتوان هزینه ریالی هر محصول را محاسبه کرد.
- حالا با توجه به اسم کمپین، به هر کمپین یک نام Product داده میشود. با استفاده از Pivot table میتوان هزینه هر محصول را جمع زد.
- میانگین هزینه سه روز آخر هر محصول در تعداد روزهای باقیمانده ماه ضرب شده و با مجموع هزینه از اول ماه، جمع میشود تا تخمین بودجه تا انتهای ماه به دست بیاید.
- به این ترتیب میتوان با یک نگاه به جدول هزینهها، فهمید کدام محصول از هزینه تعیینشده فراتر میرود.
- در نهایت به تناسب استراتژی و سیاستهای سازمان و با توجه به هزینه هر محصول، تصمیمهای بیزینسی موردنیاز مشخص خواهند شد.
جمعبندی
در حال حاضر که کسبوکارها در مسیر گسترش فعالیتهای خود، به ویژه گسترش فعالیتهای دیجیتال مارکتینگ هستند، احتمالا با چالشهایی در این مسیر روبهرو خواهند شد. در تیم دیجیتال مارکتینگ علیبابا، با هدف افزایش آگاهی و اشتراک آنچه که در مسیر چالشها به دست آوردیم، تصمیم گرفتیم تا بخشی از راهحلهایی که در اتوماسیون فرآیندهای گوگل ادز به آن رسیده بودیم را با سایر متخصصین این حوزه به اشتراک بگذاریم.