Обновление TARGETING-> GEO_LOCATIONS-> ZIPS в AdSet также сбрасывает другие непреднамеренные значения, такие как возраст, пол, места размещения и т. Д. - PullRequest
0 голосов
/ 11 апреля 2020

Я реализовал базовый c сценарий в PHP с использованием PHP Business SDK (facebook / php -business-sdk, версия 6) для обновления только геотаргетинга AdSet по почтовым индексам.

Соответствующий код выглядит следующим образом, и он хорошо работает, обновляя почтовые индексы для AdSet:

$adset = new AdSet($adset_id);

$fields = [];
$params = [

    AdSetFields::TARGETING => [
        TargetingFields::GEO_LOCATIONS => [
            TargetingFields::ZIPS => $zip_codes, //$zip_codes contains the list of zip codes as per specs
        ],
    ],

];

$response = $adset->updateSelf($fields, $params);
$response_str = json_encode($response->exportAllData(), JSON_PRETTY_PRINT);

Однако, когда сценарий выполняется для существующих AdSets, тогда наряду с настройкой значений Zo для географического местоположения, он также перезаписывает и сбрасывает многие другие поля, такие как возраст, пол, подробный таргетинг, места размещения для этого AdSet, что определенно не предназначено.

Например, если существующий AdSet обновляется вручную через интерфейс Менеджера объявлений, чтобы установить аудиторию Возраст = от 30 до 60 и Аудитория Пол = Мужской, затем при выполнении сценария он сбрасывает Возраст с 18 до 65+ и сбрасывает Пол на Все, что не желательно.

Так что это ошибка или это должно работать так? Если это не ошибка, то каков наилучший способ обновить только обязательное поле Geo_Locations Targeting by Zips и оставить остальные поля такими, какие они есть?

Спасибо и с уважением!

...