Làm thế nào để kéo dữ liệu fb ads về 🤔
Mở đầu
Facebook là một thị trường quảng cáo vô cùng lớn, lên việc một doanh nghiệp chọn nền tảng này làm nơi tiếp thị cho hoạt động marketing của doanh nghiệp là chuyện đương nhiên. Để khai thác một cách triệt để nhất tài nguyên và sự hỗ trợ nhiệt tình của a Mác Xoăn thì chúng ta phải tìm cách nào đó để lấy dữ liệu từ fb ads về máy và tự custom tự sử dụng data đó theo ý muốn của bản thân.
Để lấy dữ liệu fb ads về bằng Python, cần sử dụng API từ fb marketing. Quy trình sẽ gồm các bước như sau:
Lấy các params cần thiết
Bước 1: Lấy các Params cần thiết cho code chạy:
1 | ad_account_id = '<>' |
Lấy ad_account_id:
- Truy cập: [here] - Lưu ý là pro phải được share quyền tài khoản hoặc là người sở hữu trực tiếp bỏ chi phí ra để chạy.
→ ad_account_id sẽ := act_[ô hcn đỏ ở trên]
Lấy 3 thông số còn lại: access_token, app_id, app_secret
- Truy cập vào trang: https://developers.facebook.com/apps/, chọn Tạo ứng dụng mới
- Tiếp:
- Kéo xuống cuối chọn Other
- Chọn Tiếp:
- Chọn Kinh doanh:
- Điền tên ứng dụng, xong nhấn Tạo ứng dụng là oke
Bước vừa rồi mới là tạo app, giờ mới đi lấy các params. Quay trở về trang My App bạn sẽ có kết quả như sau
Tạo Acess Token:
Access Token là một đoạn mã mà bạn phải đưa ra mỗi khi muốn lấy dữ liệu từ Facebook Ads, giúp Facebook chứng thực được bạn có quyền lấy dữ liệu đó. Lưu ý là Token này giống như chìa khóa, bất kì ai ở đâu cũng có thể dùng nó để lấy dữ liệu Ads công ty bạn, nên đừng chia sẽ nó với ai nếu như yêu cầu của họ không thỏa đáng.
- Click vào Ứng dụng vừa mới tạo, bấm chọn mục Add Product ở menu bên trái, trên màn hình sẽ hiển thị danh sách ứng dụng, bạn hãy chọn Marketing API.
- Bước 2: Cick chọn vào Marketing API bên menu trái, chọn Tool, tích chọn vào ads_read, ads_insight, ads_management, sau đó click Get Token, Token này không được lưu lại ở đâu vì lý do bảo mật nên bạn hãy copy rồi lưu ra file, các bước tiếp theo chúng ta sẽ dùng đến nó.
Lưu ý: Mỗi 2 tháng bạn cần lặp lại bước trên, tạo 1 access_token mới do chính sách bảo mật của fb nó áp dụng như vậy cho an toàn, với 2 tháng cx khá oke rồi.
Bắt đầu kéo
Sau khi có đủ bộ 2 params trên ta sẽ rất tự tin để đi lấy dữ liệu fb ads về.
Trên thực tế dữ liệu fb ads khá đa dạng và gồm nhiều bảng, các dữ liệu ở dạng json và có format ko chuẩn chỉ cho lắm. Và ta phải làm sao cho nó đẹp và tốt nhất có thể.
Các bảng cần lấy
Theo nghiệp vụ và theo như kinh nghiệp làm DE và có đi lấy dữ liệu fb ads ở một công ty nào đó rồi thì việc lấy hết tất cả các bảng trên là ko nên và có khi cũng chả để làm gì :> (tốn thời gian + tốn chi phí lưu trữ). Ta chỉ nên xem bảng nào cần thiết và mang nó về kho chứa của nhà mình
Code kéo dữ liệu bảng insights
- Run lệnh sau trong terminal để cài đặt thư viện
1 | py -m pip install requests |
(nếu lệnh trên ko được có thể thử thay py bằng python, python3 - đối với linux)
- Tạo một file fb_ad_insights.py như sau:
1 | import requests |
- Run code trên:
1 | py fb_ad_insights.py |
→ Thay py bằng python, python3 nếu sử dụng linux
- Dữ liệu trả về theo từng file, mỗi file là một ngày và nó sẽ trông như:
1 | {"campaign_name": "Animexa_14/06_ Phi_CPI 0,03Thuy", "spend": 10472.22, "account_currency": "VND", "impressions": "1376", "clicks": "32", "country": "PH", "_ts": 1720803600, "packageName": "w1"} |
Trong đó:
Các biến được truyền vào
1 | access_token = '<>' |
tygia.csv/txt (tỷ giá cập nhập liên tục theo tháng) là một file có dạng
1 | USD 24354 |
- Code duyệt qua từng dòng của file, đọc từng mã tiền tệ và tỷ giá rồi lưu vào dictionary
conversion_ratesdưới dạng{currency: rate} - Code kiểm tra nếu mã tiền tệ (
account_currency) có trong dictionaryconversion_rates. Nếu có, code sẽ thực hiện chuyển đổi chi phí (spend) từ loại tiền tệ gốc sang VND bằng cách nhân với tỷ giá đã lưu trongconversion_rates. - “account_currency”: “USD” → “account_currency”: “VND” (chi phí quảng cáo tính theo account_currency chứ ko dựa theo từng nước. Thường sẽ là USD.
packageName là cột mới được thêm vào
Tài liệu tham khảo
Airbyte docs:
Facebook docs:
- https://www.facebook.com/business/help/1492627900875762
- https://developers.facebook.com/apps/
- https://developers.facebook.com/docs/marketing-api/reference/ad-account#Creating
- https://developers.facebook.com/docs/development/create-an-app/
200 labs:
- https://200lab.io/blog/huong-dan-lay-du-lieu-facebook-ads-tu-dong-mien-phi-phan-1/
- https://200lab.io/blog/huong-dan-cach-lay-du-lieu-facebook-ads-tu-dong-moi-ngay-mien-phi-phan-2/
Github:
- https://github.com/kgermain1/Facebook-Ads-to-BigQuery/blob/main/main.py
- https://github.com/sakabmw/facebook-ads/blob/main/campaign.py
- https://github.com/Dhinesh-Engineer/facebook_ads_manager/tree/main/demo codes
Enzircle














