Faceboook Marketing API
https://developers.facebook.com/docs/marketing-api/custom-audience-api/v2.8
これを利用して、日々変わる広告対象のユーザー情報を自動更新していた。
しかし、2016年7月に作成したカスタムオーディエンスの枠組みと、2016年10月に作成した際、画面側の仕様が変わり、登録される情報が変更された。
何が起こったか
- 実行
curl -F 'payload={ "schema": "EMAIL_SHA256", "data": ["EMAIL","EMAIL"]
}' \
-F 'access_token=<AccessToken>'
- 結果
{"error":{"message":"(#2650) Failed to update the custom audience: This audience was created from data source FILE_IMPORTED.MULTI_HASHES, which does not support data source FILE_IMPORTED.HASHES_OR_USER_IDS.","type":"OAuthException","code":2650,"fbtrace_id":""}}
data source が違うよって
変更された情報の確認
curl -G \
-d 'access_token=<AccessToken>' \
https://graph.facebook.com/v2.8/<CustomAudienceID>\?fields\=data_source | jq
- 旧作成の枠組み確認結果
{
"data_source": {
"type": "FILE_IMPORTED",
"sub_type": "HASHES_OR_USER_IDS",
"creation_params": "[]"
},
"id": "<CustomAudienceID>"
}
- 新規作成の枠組み確認結果
{
"data_source": {
"type": "FILE_IMPORTED",
"sub_type": "MULTI_HASHES",
"creation_params": "[]"
},
"id": "<CustomAudienceID>"
}
HASHES_OR_USER_IDS → MULTI_HASHES
さすが Facebook! 仕様変更なんてがんがんやっちゃう!そこにしびれるあこ・・・
どこにも解決方法載ってないし、つらすぎ
解決策
いろいろ試した結果、以下のようにださーい方法で解決できた。
curl -F 'payload={ "schema": ["EMAIL_SHA256"], "data": [
["EMAIL"],["EMAIL"]]
}' \
-F 'access_token=<AccessToken>' \
EMAIL 1列しか使っていないにも関わらず、新たな仕様では1列でも MULTI_HASHES
として認識される仕様へ変わった。
その為、全て []
で囲めばいいじゃんってことらしい。
これに気づくのに2時間もかかった・・・。
Marketing API を利用した事例が少なすぎるので、みんな使って事例欲しい