🐏
Pythonを使ってMETA広告データをBigQueryに連携する方法
こんにちは、エンジニアのうさぎです👋
この記事では、META(旧Facebook)広告のデータをBigQueryに連携する方法について解説します。Python(Google Colab)を使用して、広告データを自動で取得し、BigQueryに格納する方法をステップバイステップで説明していきます。
この記事で解説すること
- META広告データの取得方法
- BigQueryへのデータ連携方法
- Google Colabでの実装方法
必要な環境・認証情報
使用するツール
- Google Colab
- Google Cloud Platform(BigQuery)
- META Business Manager
必要な認証情報
- META API関連
- アクセストークン
- App ID
- App Secret
- 広告アカウントID
- GCP関連
- サービスアカウントキー(JSON)
- プロジェクトID
- データセットID
実装手順
1. 必要なライブラリのインストール
!pip install google-cloud-bigquery facebook_business
2. 基本的な実装の流れ
実装は大きく分けて以下の4つのステップで行います:
- Google Driveのマウント
- 認証設定(META API、BigQuery)
- META広告データの取得
- BigQueryへのデータ書き込み
3. コードの解説
まず、必要なライブラリをインポートします:
import os
import pandas as pd
from google.cloud import bigquery
from google.colab import drive
from facebook_business.api import FacebookAdsApi
from facebook_business.adobjects.adaccount import AdAccount
from facebook_business.adobjects.ad import Ad
Google Driveをマウントする関数:
def mount_drive():
drive.mount('/content/drive')
print("Google Driveがマウントされました。")
META広告データを取得する関数:
def get_meta_ads_data(access_token, app_id, app_secret, ad_account_id, days=30):
# API認証
FacebookAdsApi.init(app_id, app_secret, access_token)
account = AdAccount(f'act_{ad_account_id}')
# 取得する項目を定義
fields = [
'campaign_name', 'campaign_id',
'adset_name', 'adset_id',
'ad_name', 'ad_id',
'impressions', 'clicks', 'spend',
'date_start', 'date_stop'
]
# データ取得
insights = account.get_insights(
fields=fields,
params={
'time_increment': 1, # 日次データ
'level': 'ad' # 広告レベル
}
)
return pd.DataFrame(insights)
BigQueryにデータを書き込む関数:
def save_to_bigquery(df, table_id):
try:
client = bigquery.Client()
job = client.load_table_from_dataframe(df, table_id)
job.result()
print(f"データを書き込みました:{table_id}")
except Exception as e:
print(f"エラーが発生しました:{str(e)}")
使い方
- 認証情報を設定します:
# META API認証情報
ACCESS_TOKEN = 'your_access_token'
APP_ID = 'your_app_id'
APP_SECRET = 'your_app_secret'
AD_ACCOUNT_ID = 'your_ad_account_id'
# BigQuery設定
TABLE_ID = "your_project.your_dataset.your_table"
- 実行します:
# Google Driveをマウント
mount_drive()
# データ取得
df = get_meta_ads_data(ACCESS_TOKEN, APP_ID, APP_SECRET, AD_ACCOUNT_ID)
# BigQueryに保存
save_to_bigquery(df, TABLE_ID)
注意点
- 認証情報は必ず適切に管理してください
- 大量のデータを取得する場合は、API制限に注意が必要です
- BigQueryの料金設定を確認してからご利用ください
まとめ
この記事では、META広告データをBigQueryに連携する基本的な方法を解説しました。このコードをベースに、必要に応じて取得項目や保存方法をカスタマイズしてください。
何か質問があればコメントでお気軽にどうぞ!
Discussion