استفاده راحت تر از گوگل آنالیتیکس با پایتون (مخصوص پرفورمنس مارکترها)
نویسنده : مهسا اذانی | تاریخ بروزرسانی : 1402/05/06
اگر دیجیتال مارکتر هستید و در انتهای هر کمپین برای تهیه گزارش مجبورید مدام از گوگل آنالیتیکس (Google Analytics) و گوگل شیت (Google Sheet) یا اکسل (Excel) استفاده کنید و این کار زمان زیادی را از شما می گیرد، این مقاله به شما گزارش گوگل آنالیتیکس با پایتون را پیشنهاد میکند. میتوانید با استفاده از API گوگل و ساخت داشبورد گزارش دهی در پایتون و کتابخانه های آن در هر لحظه گزارش مورد نظر خود را تهیه کنید. در این روش می توان حتی حین کمپین نیز به صورت در لحظه (Real time) با توجه به آخرین داده های موجود در گوگل آنالیتیکس، گزارش های ترکیبی تهیه کرد و بر اساس آن تصمیمات داده محور (Data Driven) گرفت.
صفر تا صد پرفورمنس مارکتینگ | هر آنچه باید درباره بازاریابی عملکردی بدانید
چرا به گزارش گوگل آنالیتیکس با پایتون نیاز داریم؟
تقریبا تمام دیجیتال مارکترها به اندازه توانایی های خود از گوگل آنالیتیکس استفاده میکنند. شاید بپرسید مگر میشود دیجیتال مارکتری از گوگل آنالیتیکس استفاده نکند. پاسخ قطعا بله است. حتی با توجه به اینکه گوگل آنالیتیکس یک ابزار قوی و قدیمی در حوزه تحلیل دیتا برای دیجیتال مارکترها می باشد، به دلیل وجود ضعفهای مختلف در آن، دیجیتال مارکترها به استفاده از ابزارهایی رو آورده اند که سریعتر و سادتر نیازهایشان را پوشش میدهند مثل Oribi, Clicky, Heap.
در مقاله: 6دلیل کافی نبودن گوگل آنالیتیکس برای پرفورمنس مارکتر ها، به طور کامل به این موضوع پرداخته ایم.
احتمالا یکی از بزرگترین نقاط ضعف گوگل آنالیتیکس پیچیدگی این ابزار است. بسیاری از گزارشهایی که با توجه به کسب و کار خود نیاز دارید در گوگل آنالیتیکس موجود نبوده و باید بهصورت دستی و با استفاده از چندین گزارش مختلف، آنها را تهیه کنید. از طرفی، گوگل آنالیتیکس دادههای زیادی را از ترافیک سایت جمعآوری کرده و هیچگونه فیلتری روی آنها اعمال نمیکند. خیلی از این دادهها باعث میشوند گزارش نهایی کمپین خطای زیادی داشته باشد.
برای مثال گوگل آنالیتیکس ترافیک ورودی از بات ها را هم در دیتای خود نگه داشته و اگر آن را exclude نکنید، گزارش کمپین بسیار دور از واقعیت خواهد شد. ترافیک ورودی از کاربران بی ارزش را هم به این مورد اضافه کنید. اگر میدانید که رباتهای مخرب چگونه بودجه تبلیغات را هدر می دهند، میتوانید با استفاده از سرویسهای تکمیلی مختلف مانند پلتفرم کشف تقلب دژینو ، ترافیک نامعتبر و تقلبی سایت خود را شناسایی کرده و جلوی زیانهای ناشی از این ترافیک را بگیرید. این امر در نهایت موجب خواهد شد که از بودجه کمپین خود بیشترین استفاده ممکن را ببرید.
همانطور که پیشتر گفته شد، گوگل آنالیتیکس دیتای زیادی را از ترافیک سایت جمعآوری میکند که گاه جمعبندی و تصمیمگیری سریع بر اساس آنها را برای ما دشوار میکند. با روشی که در ادامه معرفی شده، میتوانید در طول کمپین یا بعد از آن بهصورت در لحظه، گزارشهای مختلف و کاربردی را تنها با اجرا کردن یک کد پایتون و در قالب فایل اکسل تهیه کرده و تصمیمگیری بهینهتری داشته باشیم.
یک قدم تا گرفتن گزارش
خب حالا وقت اقدام رسیده و برای اینکه گزارش پرفورمنسی خود را بگیرید کافیست ابتدا در مورد کلیات و مسیر بدانید. شما برای گرفتن گزارش نیاز دارید تا با یک زبان برنامه نویسی آشنا باشید. ما در این مقاله از پایتون (Python) استفاده می کنیم زیرا یادگیری آن بسیار ساده بوده و می توانید با صرف زمان کم به میزان مورد نیازتان آن را فرا گرفته و استفاده کنید. همچنین پایتون به دلیل کتابخانه های متعددی که دارد این امکان را به شما می دهد تا در صورت نیاز از گزارش های خود نمودارهای مختلف تهیه کنید و یا حتی یک قدم فراتر بروید و از مدلهای Machine Learning برای پیشبینی و یا تصمیمگیریهای بهتر استفاده کنید.
برای اینکه بتوانید اولین گزارش پرفورمنس مارکتینگی خود را با کمک پایتون ایجاد کنید نیاز دارید تا مسیر زیر را از ابتدا تا انتها طی کنید:
- نصب پایتون و کتابخانه های مورد نیاز
- ساخت Service Account در گوگل
- نصب Google API Client در پایتون
- اتصال پایتون به API گزارش گیری گوگل آنالیتیکس(Google Analytics Reporting API)
- ارسال یک درخواست API یا API Call
- ساختار دادن به دیتاهای دریافتی
- ساخت یک دیتا فریم(DataFrame) برای دیتاها و ذخیره بصورت فایل
نصب پایتون و کتابخانه های مورد نیاز
برای شروع باید پایتون را روی سیستم عامل خود نصب و کتابخانههای مورد نیاز را به آن اضافه کنید. از بهترین ابزارها برای این هدف که برنامهنویسهای حرفهای پایتون، دیتا آنالیستها و دیتا ساینتیستها هم از آن استفاده میکنند آناکوندا (Anaconda) است. شما با نصب آناکوندا هم پایتون را در اختیار خواهید داشت، هم کتابخانههای عمومی و پرکاربرد آن و هم ابزارهایی مثل JupyterNotbook، JupyterLab یا spyder.
ابتدا آناکوندا را از اینجا دانلود کنید. نصب آناکوندا سخت نیست و برای شروع کافیست در تمام مراحل نصب روی گزینه Next بزنید. تبریک! به همین سادگی پایتون روی سیستم عامل شما نصب و کانفیگ شده و تنها کافیست که Anaconda Navigator را از منوی استارت خود باز کنید.
برای اتصال به API گوگل نیاز است ابتدا 2 کتابخانه را نصب کنید. برای نصب کتابخانه ها در پایتون از دستور pip استفاده می شود. البته با توجه به اینکه ما از آناکوندا استفاده میکنیم، میتوان از دستور conda نیز استفاده کرد. برای اجرای دستورات و نصب کتابخانهها کنسول Command Prompt را در قسمت منوی ویندوز تایپ کرده و آن را باز کنید. در صفحه باز شده دو دستور زیر را جداگانه وارد کنید و منتظر بمانید تا نصب آن انجام شود (حتما باید به اینترنت متصل باشید).
pip install --upgrade google-api-python-client
pip install oauth2client
ساخت Service Account در گوگل
شاید قبلا درباره نصب Google API Client در پایتون شنیده باشید. شاید هم مفهوم آن برایتان مقداری گنگ به نظر رسیده باشد. API بهطور ساده و عامیانه یک زبان مشترک برای ارتباط بین دو نرم افزار یا اپلیکیشن است. اجازه بدهید با یک مثال موضوع را بهتر تشریح کنیم.
فرض کنید میخواهید دیتای مربوط به تعداد session برای هر صفحه از سایتتان را از گوگل آنالیتیکس بگیرید. برای این کار با ساختاری خاص که قبلا توسط گوگل اعلام شده، درخواست خود را برای گوگل ارسال می کنید و در پاسخ نیز دیتای مورد نظر شما با ساختاری که گوگل قبلا مشخص کرده برایتان ارسال شده و میتوانید در نرم افزار خودتان از آن استفاده کنید (این دقیقا همان کاری است که ما نیز قرار است انجام بدهیم). به این ساختارهای از پیش تعیین شده API یا رابط برنامه نویسی اپلیکیشن گفته میشود و هدف آن ایجاد زبان مشترک بین برنامههای مختلف نرم افزاری (مثل برنامه شما و برنامهای که گوگل در سرورهای خودش نوشته) می باشد.
برای اتصال و استفاده از API های گوگل راههای مختلفی وجود دارد که ما در این آموزش با ایجاد یک Service Account، دیتاهای مورد نیاز خود را از گوگل آنالیتیکس دریافت میکنیم. Service account تقریبا مثل یک ایمیل است. همانطور که میتوانید با اضافه کردن ایمیل یک شخص در گوگل آنالیتیکس، به آن فرد دسترسی بدهید با دسترسی دادن به این اکانت هم این سرویس میتواند به دیتای گوگل آنالیتیکس شما دسترسی داشته باشد. لازم به ذکر است که به دلیل تحریم، این سرویس در ایران بدون استفاده از پروکسی در دسترس نیست.
برای ساخت Service Account در گوگل موارد زیر را مرحله به مرحله انجام دهید:
- وارد صفحه ساخت پروژه در developer console گوگل شوید
- یک پروژه بسازید
- از بالا سمت چپ پروژه خود را انتخاب کنید
- فعال کردن Google Analytics Reporting API
- از منوی سمت چپ گزینه API & Services رو انتخاب کنید و در منو باز شده روی دکمه Enabled APIs & Services بزنید
- در صفحه باز شده دکمه Enable API and Services + را بزنید
- در صفحه باز شده عبارت Google Analytics Reporting API را جستجو کنید
- در صفحه نتایج روی گزینه Google Analytics Reporting API بزنید
- حالا با زدن دکمه Enable آن را فعال کنید
- ساخت فایل JSON و کلید اکانت
- از منوی سمت چپ گزینه API & Services را انتخاب کنید و در منوی باز شده روی دکمه Credentials بزنید
- در بالای صفحه روی گزینه create credential بزنید و گزینه Service Account را انتخاب کنید.
- در صفحه باز شده یک نام انتخاب کنید و دکمه Create and continue را بزنید و سپس روی دکمه Done کلیک کنید.
- حال در پایین صفحه در بخش Service Account روی نام اکانت خود بزنید.
- در صفحه باز شده روی تب KEYS بزنید.
- بر روی دکمه ADD KEY کلیک کرده و در صفحه باز شده JSON را انتخاب و Create کنید.
- فایل را بر روی سیستم خود دانلود کنید.
- اجازه دسترسی Service Account در آنالیتیکس
- فایل JSON دانلود شده در مرحله قبل را با یک Editor متنی مثل Notepad باز کنید و مقدار مقابل client_email را کپی کنید (شبیه به ایمیل می باشد)
- وارد آنالیتیکس شده و در بخش admin بر روی view مورد نظر بروید و گزینه View Access Management را بزنید
- روی دکمه + کلید کنید و مقدار Client_email که از فایل کپی کردید را در محل مورد نظر قرار دهید.
در مقاله آموزش Multi Channel Funnels و Attributin Model در گوگل آنالیتیکس، کاربردیترین گزارشهای گوگل آنالیتیکس را معرفی کردهایم.
اگر تمام مراحل بالا را کامل و قدم به قدم پیش رفته باشید تقریبا همه مقدمات آماده است. در قدم بعد ابتدا کد خود را به این API متصل کرده و اگر مشکلی در اتصال نباشد می توانیم dimension ها و metric های مورد نیازمان را دریافت کنیم و گزارشهای شخصی سازی شده خود را بسازیم و یا دیتاهای استخراج شده را به الگوریتمهای هوش مصنوعی داده و در تصمیمگیریها از آن کمک بگیریم.
دست به کدنویسی پایتون شوید!
به شما برای رسیدن به این مرحله از «گزارش گوگل آنالیتیکس با پایتون» تبریک میگویم! تا این لحظه پایتون و کتابخانه های مورد نیازش را نصب کردید. Service Account ساختید و به آن در گوگل آنالیتیکس دسترسی دادید. از این بخش به بعد داشتن دانش اولیه در مورد زبان برنامه نویسی پایتون ضروری است. البته نگران نباشید میتوانید با صرف زمان کوتاهی مقدمات این زبان را یاد گرفته و از آن استفاده کنید.
برای اتصال به گوگل آنالیتیکس با پایتون ابتدا باید احراز هویت کنید و بعد از آن دیتای مورد نیازتان را درخواست کنید. پس از دریافت دیتا پردازش های مورد نظرتان را روی آن اعمال کنید و نهایتا فایل خروجی را با توجه به فرمت مورد نظرتان ذخیره کنید.
احراز هویت و اتصال به آنالیتیکس
ابتدا Anaconda Navigator را باز کنید و بر روی Jupyter Notebook کلیک کنید و یک فایل بسازید. ابتدا باید کتابخانه های مورد نیاز را در فایل خود import کنید. برای این منظور لطفا کد زیر را در فایل خود قرار دهید.
from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient.discovery import build
import httplib2
import pandas as pd
با افزودن کد های بالا عملا کتابخانه های مورد نیاز برای ادامه فرآیند را وارد برنامه خود کردهاید. در ادامه برای احراز هویت کد زیر را اضافه کنید. توجه داشته باشید به جای CLIENT-KEY.json در خط اول مسیر فایل JSON ای که دانلود کردید را وارد کنید.
credentials = ServiceAccountCredentials.from_json_keyfile_name('CLIENT-KEY.json', ['https://www.googleapis.com/auth/analytics.readonly'])
http = credentials.authorize(httplib2.Http())
service = build('analytics', 'v4', http=http, discoveryServiceUrl=('https://analyticsreporting.googleapis.com/$discovery/rest'))
در صورتیکه کد بالا را اجرا کردید و خطایی دریافت نشد به این معنی است که ارتباط و احراز هویت به طور کامل انجام شده است. از جمله خطاهایی که ممکن است در این مرحله مشاهده کنید خطای مربوط به تحریم سرویس است که با روشن کردن پروکسی از بین میرود. خطای کرسوم دیگری که در این مرحله رخ میدهد مربوط به Enable نبودن سرویس است که با کلیک روی لینکی که در متن ارور وجود دارد و کلیک روی دکمه Enable این خطا نیز برطرف میشود.
اولین API خودتان را صدا بزنید
بهنظرم هیجان انگیز است که دیتای خودتان را مستقیما از سرورهای گوگل دریافت کنید و بر روی آنها پردازش های مختلف انجام داده و در نهایت خروجی مدنظرتان را بر روی نمودارهای مختلف و فایل های اکسل ذخیره کنید. همانطور که در ابتدای این آموزش درباره نحوه اتصال به گوگل آنالیتیکس با استفاده از api گفته شد APIها زبان مشترک بین نرم افزارها هستند. بنابراین شما برای درخواست دیتا (یا اصطلاحا دیتا کوئری) باید درخواست خود را با ساختار تعیین شده توسط گوگل ارسال کنید. قالب کلی این درخواست به این شکل است:
response = service.reports().batchGet(
body={
'reportRequests': [
{
'viewId': 'XXXXXXX',
'dateRanges': [{'startDate': '90daysAgo', 'endDate': 'today'}],
'metrics': [{'expression': 'ga:sessions'}, {'expression': 'ga:timeOnPage'}],
'dimensions': [{"name": "ga:pagePath"}],
'orderBys': [{"fieldName": "ga:sessions", "sortOrder": "DESCENDING"}],
'pageSize': 10000
}]
}
).execute()
شاید در نگاه اول گیج کننده باشد ولی واقعا اینطور نیست. این یک قالب کلی است پس آن را کپی کنید و فقط مقادیر مورد نظرتان را در آن تغییر دهید. اگر به کوئری بالا توجه کنید متوجه می شوید یکی از مقادیر viewId است که در مقابل آن مقدار viewId در آنالیتیکس را قرار می دهیم (در آنالیتیکس به View مورد نظر رفته و از بخش View Setting مقدار آن را کپی و در این قسمت پیست می کنیم.) از این لحظه به بعد تمامی دیتای دریافتی مربوط به این View است.
بخش ‘dateRanges’ برای تعیین بازه زمانی گزارش مورد نظرتان است. در بخش بعد هم Metric و Dimension را می بینید که نشان می دهند ما چه Metric و Dimensionهایی را برای این گزارش مد نظر داریم.
آماده سازی دیتای دریافتی
بعد از اینکه کوئری خود را آماده کرده و آن را اجرا کردیم دیتای برگشتی در متغیر response قرار خواهد گرفت. از این بخش به بعد شما بر حسب نیاز خودتان دیتاها را آماده سازی میکنید و این موضوع کاملا به توانایی های شما در پایتون مرتبط است. بطور مثال در ادامه ما دیتای دریافتی را بر اساس Dimension یا Metric بودن آن در لیستهای جداگانه قرار دادیم و سپس آنها را در یک دیتافریم Pandas گذاشته و گزارش خروجی را در یک فایل اکسل ذخیره کردیم (اگر متوجه این عبارات نشدید نگران نباشید. با کمی سرچ و مطالعه درباره هر اسم و عبارتی که نمی شناسید می توانید به راحتی با آن آشنا شوید. البته برای استفاده از روش آموزش داده شده نیازی به دانش عمیقی در این زمینه ندارید و صرفا با استفاده از این کدها و کدهای بیشتری که در ادامه توسط دژینو برایتان آماده سازی می شود می توانید بدون دانش کدنویسی و در سریع ترین زمان، گزارش های کاربردی و جامعی از گوگل آنالیتیکس خود تهیه کنید).
dim = []
val = []
for report in response.get('reports', []):
columnHeader = report.get('columnHeader', {})
dimensionHeaders = columnHeader.get('dimensions', [])
metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])
rows = report.get('data', {}).get('rows', [])
for row in rows:
dimensions = row.get('dimensions', [])
dateRangeValues = row.get('metrics', [])
for header, dimension in zip(dimensionHeaders, dimensions):
dim.append(dimension)
for i, values in enumerate(dateRangeValues):
for metricHeader, value in zip(metricHeaders, values.get('values')):
val.append(value)
df = pd.DataFrame()
df["Sessions"]= val
df["pagePath"]=dim
df=df[["pagePath","Sessions"]]
df.to_csv("page_by_session.csv")
سخن پایانی
اگر کد بالا را اجرا کردید و خروجی خود را مشاهده و بهصورت فایل در سیستم خود نیز دریافت نمودید یعنی تمامی مراحل را کامل انجام دادهاید و باید به شما برای داشبوردسازی با پایتون تبریک بگوییم. «گزارش گوگل آنالیتیکس با پایتون» از این قرار است که تعداد session ها برای هر صفحه از سایت خود را در یک فایل اکسل در اختیار دارید. در ادامه برای گزارشهای مورد نیازتان کافیست در کوئری Metricها و Dimensionهای مورد نظرتان را نوشته و بعد از اجرای مجدد کد، پاسخ را بهصورت گزارش مورد نظرتان در آورده و در نهایت به صورت یک فایل خروجی بگیرید. همچنین میتوانید کدهایی برای گرفتن گزارش حین کمپین طراحی کنید و با یک بار اجرا کردن خروجی مورد نظرتان را در لحظه ببینید تا بتوانید کمپین خودتان را موثرتر کنید.
پیشنهاد می کنیم اگر گزارش خاصی مد نظرتان است در قسمت کامنت همین آموزش بیان کنید تا آموزش آن را تهیه کرده و در اختیارتان قرار دهیم. همچنین اگر درباره مطالب بیان شده در این پست سوال یا ابهامی داشتید در قسمت کامنت ها مطرح کنید تا تیم فنی دژینو در اولین فرصت پاسخگوی شما باشد.