Facebook Business SDK для конверсий на стороне сервера: хэшировать или не хэшировать пользовательские данные?

#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.