0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Facebook API】CustomConversionのStatsが「Invalid parameter」で取得できない

Posted at

はじめに

こんにちは、ユーゴです。今回は、Facebook API (コンバージョンAPI)を使用していた時に遭遇した問題について紹介します。

やりたいこと

特定のカスタムコンバージョンの集計の値を取得したい。
日付の範囲まで指定できると良い。

以下を参考に実装した。
グラフAPI リファレンス v21.0: Custom Conversion Stats

問題

リファレンスを読通りにカスタムコンバージョンのStatsを取得しようとしましたが、エラーで取得できませんでした。

Python
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)
HTTP
# 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」というエラーだったようです。

Python
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)
HTTP
# 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, 量子コンピューティングなど、幅広いジャンルの紹介をしております。お役に立てましたら、いいね, フォローなどよろしくお願いします!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?