#python #facebook #facebook-graph-api #hash #facebook-opengraph
#python #Facebook #facebook-graph-api #хэш #facebook-opengraph
Вопрос:
Я изучаю эту документацию: https://developers.facebook.com/docs/marketing-api/conversions-api/using-the-api
В нем говорится:
Хэширование
Пожалуйста, проверьте нашу страницу параметров информации о клиентах, чтобы узнать, какие параметры должны быть хэшированы перед отправкой в Facebook. Если вы используете один из наших бизнес-SDK, хеширование выполняется за вас SDK.
Однако пример кода Python, в котором используется Business SDK, предоставляет уже хэшированные данные:
from facebook_business.adobjects.adspixel import AdsPixel
from facebook_business.api import FacebookAdsApi
access_token = '<ACCESS_TOKEN>'
app_secret = '<APP_SECRET>'
app_id = '<APP_ID>'
id = '<ADS_PIXEL_ID>'
FacebookAdsApi.init(access_token=access_token)
fields = [
]
params = {
'data': [{'event_name':'PageView','event_time':1603429918,'user_data':{'fbc':'fb.1.1554763741205.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890','fbp':'fb.1.1558571054389.1098115397','em':'309a0a5c3e211326ae75ca18196d301a9bdbd1a882a4d2569511033da23f0abd'}}],
}
print AdsPixel(id).create_event(
fields=fields,
params=params,
)
В частности, я имею в 'em'
виду поле (которое должно быть электронной почтой):
'em':'309a0a5c3e211326ae75ca18196d301a9bdbd1a882a4d2569511033da23f0abd'
Итак, если я использую facebook_business.adobjects.adspixel.AdsPixel
, должен ли я хэшировать данные клиента? Или он делает это автоматически для меня?
Если нет, как я могу это сделать на Python? Существует много разных методов и функций хэширования: какой из них ожидается от Facebook?
Ответ №1:
Это сработало для меня:
import hashlib
from facebook_business.api import FacebookAdsApi
from facebook_business.adobjects.adspixel import AdsPixel
FacebookAdsApi.init(access_token=FACEBOOK_PIXEL_TOKEN)
params = {
data: [
"event_name": "CompleteRegistration",
"event_time": int(datetime.now().timestamp()),
"user_data": {
"em": hashlib.sha256(email.encode("utf-8")).hexdigest()
}
],
"test_event_code": "TEST9876",
}
AdsPixel(FACEBOOK_PIXEL_ID).create_event(fields=[], params=params)
HTH
Комментарии:
1. Как мы можем проверить хэшированные данные в диспетчере событий Facebook, что мы отправляем правильные данные. Поскольку эти данные хэшируются, как мы можем использовать эти данные для рекламных кампаний Facebook.