はじめに
こんにちは、ユーゴです。今回は、Facebook API (コンバージョンAPI)を使用していた時に遭遇した問題について紹介します。
やりたいこと
特定のカスタムコンバージョンの集計の値を取得したい。
日付の範囲まで指定できると良い。
以下を参考に実装した。
グラフAPI リファレンス v21.0: Custom Conversion Stats
問題
リファレンスを読通りにカスタムコンバージョンのStatsを取得しようとしましたが、エラーで取得できませんでした。
from facebook_business.adobjects.customconversion import CustomConversion
# SDKのセットアップ
app_id = "xxx" # ご自身のアプリID
app_secret = "yyy" # ご自身のアプリシークレット(app secret)
access_token = "EAA...(略)" # ご自身のアクセストークン
FacebookAdsApi.init(app_id, app_secret, access_token)
# カスタムコンバージョンの取得
cc = CustomConversion("123456789") # カスタムコンバージョンID
stats = cc.get_stas()
print(stats)
# v21.0:最新のAPIバージョン
# 123456789:ご自身のカスタムコンバージョンID
# access_token:ご自身のアクセストークン
curl "https://graph.facebook.com/v21.0/123456789/stats?\
access_token=EAA...(略)"
上記のコードは、以下のようなエラーが出ます。
{
"error": {
"message": "Invalid parameter",
"type": "OAuthException",
"code": 100,
"error_subcode": 1760016,
"is_transient": false,
"error_user_title": "Unsupported Aggregation Type",
"error_user_msg": "Specified aggregation is not supported on custom conversion stats",
"fbtrace_id": "xxxxxxxxxxxxxxxxx"
}
}
特に「aggregation」指定してないのにSpecified aggregation is not supported on custom conversion stats
というエラーが出ました。
解決
aggregationを指定します。start_timeとend_timeも指定します。
逆に指定していないため空文字として扱われたためか、「無効なaggregation」というエラーだったようです。
from facebook_business.adobjects.customconversion import CustomConversion
# SDKのセットアップ
app_id = "xxx" # ご自身のアプリID
app_secret = "yyy" # ご自身のアプリシークレット(app secret)
access_token = "EAA...(略)" # ご自身のアクセストークン
FacebookAdsApi.init(app_id, app_secret, access_token)
# カスタムコンバージョンの取得
cc = CustomConversion("123456789") # カスタムコンバージョンID
params = {
"aggregation":"device_type", # 必要に応じてdevice_type, host, urlなどから1つ指定
"start_time":"2024-11-05",
"end_time":"2024-11-05",
}
stats = cc.get_stas(params=params)
print(stats)
# v21.0:最新のAPIバージョン
# 123456789:ご自身のカスタムコンバージョンID
# access_token:ご自身のアクセストークン
curl "https://graph.facebook.com/v21.0/123456789/stats?\
access_token=EAA...(略)&\
aggregation=device_type&\
start_time=2024-11-05&\
end_time=2024-11-05"
これで、以下のようなデータが返ってきます。
{
"aggregation": "device_type",
"timestamp": "2024-11-05T09:00:00",
"data": [
{
"value": "mobile_iphone",
"count": 999
}
]
}
まとめ
いかがだったでしょうか。今回は、Facebook API (グラフAPI)を使用している時に遭遇した問題を紹介しました。リファレンスにあるコード通りやったはずなのに上手くいかないのはなんででしょうか。やはりMetaのリファレンスは読みにk
このように、Facebook APIなど特定の媒体のAPIの紹介から、Unity, AWS, GAS, 量子コンピューティングなど、幅広いジャンルの紹介をしております。お役に立てましたら、いいね, フォローなどよろしくお願いします!