Tạo Alert Bot – Cập nhật thông tin chi tiêu quảng cáo qua Telegram tự động

Tạo Alert Bot – Cập nhật thông tin chi tiêu quảng cáo qua Telegram tự động

Xin chào các bạn!
Quản lý tài khoản quảng cáo nói chung và ngân sách/chi tiêu quảng cáo luôn là mối bận tâm lớn đối với rất nhiều cá nhân/doanh nghiệp dù bạn làm ở Agency hay team Digital Marketing in-house. Làm sao để các marketer có thể chủ động nắm thông tin, quản lý hiệu quả quảng cáo đã là 1 chủ đề thôi thúc mình suy nghĩ trong thời gian khá dài. Từ những năm 2016, Data Studio là công cụ hữu hiệu nhất của mình để tạo dashboard và kiểm soát hiệu quả/chi phí quảng cáo so với KPI đề ra. Tuy nhiên dùng 1 dashboard vẫn chưa đảm bảo cho bạn tính chủ động, vì bạn vẫn cần phải tự nhắc nhở mình mở dashboard ra kiểm tra. Nếu có cách nào đó giúp thông báo tình hình tài khoản 1 cách chủ động hẳn sẽ hiệu quả hơn nhiều. Thế là mình đã tìm hiểu về lập trình Apps Script và Python để hiện thực hoá ý tưởng trên. Apps Script không được thiết kế dành cho phân tích dữ liệu nên Python chính là câu trả lời cuối cùng của mình cho dự án này. Mời các bạn theo dõi series bài hướng dẫn Tạo Alert Bot Telegram thông báo chi phí quảng cáo Facebook tự động của mình nhéHy vọng những chia sẻ nhỏ này sẽ giúp bạn tìm được hướng đi mới trong Digital Marketing và như đốm lửa nhỏ khơi dậy đam mê lập trình trong bạn.

Trong khuôn khổ bài hướng dẫn này, bạn cần tham khảo thêm các bài viết trước trong series để thực hiện thành công dự án nhỏ này nhé. Cụ thể như sau:

  • Tạo Telegram Bot, lấy access token, channel ID của group chat Telegram > Đọc hướng dẫn
  • Tạo Facebook App, lấy access token để tương tác với Facebook Marketing API > Đọc hướng dẫn

Ngoài ra bạn cần hiểu thêm một số kiến thức bổ trợ về Task Scheduler/Crontab, terminal/command prompt để thực hiện lên lịch chạy đoạn script python theo khung giờ, sự kiện mong muốn. Đối với code editor để lập trình, mình highly recommend sử dụng Visual Studio Code lâu dài, nếu muốn thử nghiệm nhanh không cần thông qua các bước cài đặt rắc rối, hãy truy cập ngay Google Colab để tạo notebook và thực hiện lập trình python nhé. 

Are you ready?? Cùng bắt đầu nhé.

Bước 1: Tạo ứng dụng Facebook của bạn trên website Facebook Developer.

Đừng cố gắng suy nghĩ phức tạp quá. Ứng dụng này đơn giản là giúp bạn kết nối với các service của Facebook Graph API mà thôi, không nên nhầm lẫn với khái niệm ứng dụng trên các hệ điều hành của desktop/mobile. Như đã đề cập, bạn vui lòng tham khảo hướng dẫn tại bài viết Facebook Marketing API – Tạo 1 ứng dụng Facebook và lấy access token để tương tác với API cực đơn giản. Output của bước này là bạn kết nối ứng dụng của mình với Facebook Marketing API và có cho mình access token của ứng dụng để tương tác với API này. Facebook Marketing API cung cấp cho bạn khả năng quản lý tài khoản quảng cáo, báo cáo, vv

Bước 2: Tạo telegram bot và group chat để nhận thông báo từ bot

Telegram API cung cấp cho bạn giải pháp gửi tin nhắn chủ động hoàn toàn miễn phí và đơn giản. Khi bạn có kiến thức lập trình, bạn có thể dùng Slack API, Microsoft Team hay bất cứ API cung cấp giải pháp nhắn tin mà bạn cảm thấy tiện lợi để sử dụng. Trong khuôn khổ bài viết này, mình hướng đến phương án sử dụng Telegram API để giúp nhiều đối tượng độc giả có thể áp dụng nhất.
Output của bước này là bạn có cho mình access token của Telegram Bot, channel ID của group chat mà bạn muốn gửi tin nhắn. Bạn vui lòng tham khảo bài viết Tạo Telegram Bot cực đơn giản để lập trình ứng dụng với API & Python và thực hiện theo hướng dẫn trước khi thực hiện tiếp bước tiếp theo.

Bước 3: Kết hợp sử dụng API ở 2 bước trên với Python để lập trình ứng dụng

Nghe đến lập trình có vẻ to tát chứ thực ra bạn làm theo hướng dẫn này, copy/paste các đoạn code đúng nơi đúng chỗ thì 99% là tutorial này sẽ hoạt động 1 cách hoàn hảo. Để bắt đầu đơn giản nhất, bạn truy cập Google Colab để tạo 1 Jupyter Notebook và thực hành. Định dạng file của Notebook sẽ là .ipynb, bạn có thể dùng tuỳ chọn xuất file này thành script python với định dạng .py để thực hiện lên lịch cho script này chạy tự động.

3.1. Tạo Notebook với Google Colab:

Truy cập website https://colab.research.google.com để tạo notebook mới.

Tạo notebook mới để thực hành lập trình Python với Google Colab
Tạo notebook mới để thực hành lập trình Python với Google Colab

Import các Python library (thư viện) cần thiết để thực hiện project này. Hãy thử với đoạn code sau, lưu ý các đoạn text sau dấu # là phần comment, sẽ không được thực thi khi script này chạy:

import requests # we need this library to handle http requests to APIs
import json # this library will responsible for json parsing from the APIs output
import pandas as pd #we will use pandas to handle almost the data of this project 
from datetime import datetime # use it to hanlde/generate datetime value

Giờ đây notebook của bạn sẽ trông như thế này, trỏ chuột vào code block này và bạn có thể bấm tổ hợp phím Shift + Enter để thực thi đoạn code ( thời gian chạy trong khoảng 1-2 giây).

insert code block colab
Thêm codeblock để thực thi Python code

Giải thích 1 chút cho dễ hiểu nhé, trong script này mình dùng 4 thư viện và nhiệm vụ của chúng lần lượt như sau:

  • requests: đúng như tên gọi, thư viện này giúp các bạn tương tác với API, gửi get tới Facebook Marketing API và post request đến Telegram API
  • json giúp bạn xử lý các dữ liệu trả về từ API dưới định dạng json (text)
  • pandas: nhập dữ liệu từ API vào python dataframe để xử lý, giúp trích xuất dữ liệu (chi phí quảng cáo)
  • datetime: tạo, xử lý các thông số ngày tháng năm

Tiếp theo, chúng ta định nghĩa 2 hàm (function) python để gọi API của Facebook và Telegram. Các bạn copy đoạn code dưới đây vào Notebook và thực thi tương tự như vừa làm với việc import các thư viện.

Mô tả 2 hàm trên như sau:

  • fb_report(ad_account_id, report_level, fields, date_preset, filtering, token): sau khi định nghĩa hàm này, bạn truyền các giá trị vào hàm (bên trong 2 dấu ngoặc) thì kết quả trả về sẽ là 1 dataframe là báo cáo từ quảng cáo facebook. Lưu ý nhỏ là hướng dẫn này sử dụng Graph API v10.0, khi phiên bản mới được nâng cấp bạn cần thay đổi thông số tương ứng trong dòng code https://graph.facebook.com/v10.0 bằng cách thay 10.0 thành số phiên bản mới.
  • tl_message(tl_tk, message): hàm này nhập vào giá trị telegram token và tin nhắn bạn muốn gửi qua group chat telegram.

Tiếp theo, bạn sẽ nhập code block dưới đây để khai báo các thông số cần nhập vào cho hàm fb_report và tl_message ở trên.

report_level = 'account'
fields = 'account_name, campaign_name, spend'
date_preset = 'today'
account_list = ['YOUR_AD_ACCOUNT_ID_1', 'YOUR_AD_ACCOUNT_ID_2'] # Replace your ID here
fb_tk = 'YOUR_FACEBOOK_TOKEN' # Replace your ID here
tl_tk = 'YOUR_TELEGRAM_TOKEN' # Replace your ID here

Trong đó:

  • report_level: ở đây sẽ yêu cầu lấy báo cáo Facebook ở cấp độ tài khoản tức account, vì vậy thông số trả về sẽ là giá trị tổng cộng của tài khoản quảng cáo bạn sở hữu.
  • fields:  các trường thông tin bạn muốn Facebook trả về trong báo cáo, ở đây sẽ là tên tài khoản account_name, tên chiến dịch campaign_name, số tiền đã chi tiêu spend. Danh sách đầy đủ các trường thông tin mà Facebook Marketing API hỗ trợ endpoint này có tại đây. Vui lòng chia sẻ bài viết để thấy link bị ẩn 
  • date_preset: giá trị today ở đây sẽ giúp bạn yêu cầu Facebook trả dữ liệu báo cáo của ngày hiện tại 
  • account_list: liệt kê ID của tài khoản quảng cáo của bạn tại đây dưới dạng string tức ở giữa 2 dấu nháy, ngăn cách các giá trị bằng 1 dấu phẩy nếu bạn muốn tạo alert bot kiểm tra nhiều tài khoản quảng cáo. Nếu bạn chỉ có 1 tài khoản muốn kiểm tra, hãy nhập account_list = ['123456789'] trong đó 123456789 tương ứng là ID tài khoản quảng cáo của bạn.

Perfect! Chỉ còn 1 block cuối cùng này là bạn kết thúc hành trình rồi đấy. Tạo thêm 1 code block nữa  nhập đoạn code dưới đây nhé:

Đoạn code trên, mình dùng 1 vòng lặp (for loop) để gọi API, lấy thông tin báo cáo cho các tài khoản quảng cáo bạn liệt kê ở trên, sau đó lần lượt gửi tin nhắn tới Telegram với nội dung có dạng: Account A: spent $1000.00 updated at 2021-01-11 10:00:00

Alright! Vậy đó, cũng không quá phức tạp phải không nào? Để đơn giản nhất, trong bài tập này mình không giới thiệu tới các bạn phương pháp bảo vệ token_key trong file python này, khi có kiến thức cơ bản bạn có thể tìm hiểu thêm về virtual environment hoặc yaml để tránh nhập token của mình vào code.

Tổng kết lại phần code ngắn ngọn nhé, bạn nhập các code block như trên vào file notebook, thay các giá trị tương ứng với token, tài khoản, tin nhắn mà mình muốn cấu hình sau đó thực thi các đoạn code lần lượt để kiểm tra xem có thành công chưa. Sau khi kiểm tra xong xuôi ko có lỗi gì, bạn có thể copy toàn bộ code trên và paste vào 1 text editor bất kỳ như Notepad hay Text Edit rồi lưu file thành dạng your_file_name.py. Hoặc đơn giản nhất là export notebook trên Google Colab thành file py như hình sau:

Xuất notebook của bạn thành file script python
Xuất notebook của bạn thành file script python

Bước 4: Cài đặt môi trường Python

  1. Nếu bạn làm việc cho công ty, quản trị viên hệ thống có thể giúp bạn schedule thực thi file python script trên Cloud khá dễ dàng.
  2. Nếu bạn muốn tạo cho riêng mình 1 linux server hoàn toàn miễn phí (Always Free) để có thể lên lịch chạy python mà không cần phải mở máy tính cá nhân, hãy tham khảo hướng dẫn sau Thiết lập Linux server chạy Python tự động sử dụng Oracle Cloud (Always Free). Với tùy chọn này, bạn có thể bỏ qua phần còn lại của bài viết.
  3. Nếu bạn sử dụng cho mục đích cá nhân, thực hành bài tập thì có thể cài đặt môi trường Python trên máy tính của mình và lên lịch chạy file này tự động. Tất cả bạn phải làm là cài đặt bản phân phối Python có tên Anaconda trên máy của mình tương ứng với hệ điều hành bạn đang sử dụng tại đây. Anaconda cung cấp cho bạn đầy đủ các tool sử dụng cho Data Science với Python. 
Chọn bản Anaconda tương ứng với hệ điều hành bạn sử dụng
Chọn bản Anaconda tương ứng với hệ điều hành bạn sử dụng

Bước 5: Task Schedule – Lên lịch thực thi file Python script của bạn

Sau khi tạo/export file python script có định dạng .py ở trên, bạn lưu trữ ở 1 thư mục cố định và copy đường dẫn đến file nhé, nó sẽ có dạng /Users/mrthinh/Downloads/telegram_alert_bot_facebook_ads_cost_notification.py trên Macbook/Linux và C:\Users\mrthinh\Downloads\telegram_alert_bot_facebook_ads_cost_notification.py trên Windows.

Thực thi python script với Terminal/Command Prompt để kiểm tra. Cũng khá lâu mình không dùng máy Windows nên chưa tiện demo cho các bạn, mình xin minh hoạ với Macbook và Terminal trước nhé.

Tìm ứng dụng Terminal bằng tổ hợp phím Command + Space và mở ứng dụng lên, paste dòng lệnh sau python '/Users/mrthinh/Downloads/telegram_alert_bot_facebook_ads_cost_notification.py'. Nếu thực thi thành công bạn sẽ nhận được tin nhắn trong Telegram Group và màn hình terminal không gửi trả lại thông báo lỗi nào hết. Có thể sẽ có 1 trong các thư viện cần import ở phần đầu tiên, chưa có trong máy bạn sẽ cần cài đặt thêm sử dụng pip installer nhé. Cụ thể cách schedule python script trên Macbook và Windows các bạn có thể tìm hiểu thêm để cải đặt phù hợp với nhu cầu của mình nhé. Hiện tại mình sử dụng tính năng crontab trên máy tính nhúng Rasberry Pi để thực thi python script ở trên theo lịch trình định sẵn (mỗi 4 tiếng chẳng hạn). Rasberry Pi có thể sử dụng như 1 server riêng cho bạn để chạy suốt ngày đêm nếu cần thiết, việc mà laptop của bạn không thể thực hiện được mà vẫn sống thọ. Các bạn có thể tìm hiểu cụ thể hơn với Google Search nhé.

terminal python bot test mac
Kiểm tra python script với ứng dụng Terminal trên Macbook

Để tiện cho các bạn tham khảo và thực hành, mình đính kèm link file notebook trên Google Colab tại link này nhé 

. Python Script mà bạn vừa thực hiện sẽ có độ dài không tới 50 dòng code và khá sạch sẽ để hiểu, I guess.

Trên đây mình vừa chia sẻ tới các bạn bài viết chính trong series Tạo Alert Bot Telegram thông báo chi phí quảng cáo Facebook tự động. Hy vọng với bài tập nho nhỏ này sẽ giúp các bạn làm quen với Python và API cũng như Jupyter Notebook để phát triển những ứng dụng cho riêng mình. Trong khuôn khổ series hướng dẫn này mình tin rằng cũng sẽ có những vướng mắc chưa thể giải quyết hết cho vấn đề của các bạn, tuy nhiên hầu hết nội dung chính của project đã được gói gọn trong 3 bài viết. Nếu gặp bất cứ vấn đề gì trong quá trình thực hành, các bạn đừng ngại comment dưới bài viết hoặc qua Facebook/Linkedin nhé. Để xem đầy đủ nội dung bài viết, bạn vui thực hiện giúp mình 1 yêu cầu nho nhỏ – chia sẻ bài viết lên Facebook/Linkedin để mở khoá nội dung nhé. Hy vọng điều này không làm bạn khó chịu. Happy Sharing! Chúc các bạn tối cuối tuần nhiều niềm vui.

Rate this post

3 comments

    1. Cám ơn bạn, nếu nội dung hữu ích hãy share cho network của mình để bài viết đến được với nhiều người hơn bạn nhé!

  1. Xin Ad hướng dẫn bài viết tạo bot thông báo bằng telegram. Hoặc tạo một số lệnh bằng bot telegram, bot thống kê.

Leave a Reply

Your email address will not be published. Required fields are marked *