Создание аудитории сайта Facebook, возвращающей ошибку JSON - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь написать скрипт node.js для создания набора аудиторий Facebook на основе структуры URL, но я получаю сообщение об ошибке ниже, и я не могу определить, что не так с JSON I 'm отправка:

Ошибка, которую я получаю: FacebookRequestError: Invalid rule JSON format: Invalid rule JSON format.

Кажется, что свойство 'rule' объекта 'params' каким-то образом недопустимо, но я не могу определить, чтоне так с этим.Я даже попытался скопировать их пример из документации , и это дало ту же ошибку.Я также вставил JSON в обозреватель API , и редактор там указал допустимый JSON, но ответ API был таким же.

снимок экрана api explorer

Прочитав этот похожий вопрос , я попробовал несколько вариантов, используя одиночные и двойные кавычки, JSON. Стригирование всего этого, его части, ничего, и т. Д ... Я надеюсь,свежие глаза могут поймать его.

Мой код:

"use strict";
const bizSdk = require("facebook-nodejs-business-sdk");
const AdAccount = bizSdk.AdAccount;
const CustomAudience = bizSdk.CustomAudience;

const access_token = "REDACTED";
const app_secret = "REDACTED";
const app_id = "REDACTED";
const id = "act_REDACTED";
const pixelID = "REDACTED";
const api = bizSdk.FacebookAdsApi.init(access_token);
const showDebugingInfo = true; // Setting this to true shows more debugging info.
if (showDebugingInfo) {
    api.setDebug(true);
}

const logApiCallResult = (apiCallName, data) => {
    console.log(apiCallName);
    if (showDebugingInfo) {
        console.log("Data:" + JSON.stringify(data));
    }
};

let fields, params;
fields = [
];
params = {
    "name": "Website - Viewed Product - Corrugated Containers - 180 days",
    "rule": {
        "inclusions": {
            "operator": "or",
                "rules": {
                "inclusions": {
                    "operator": "or",
                        "rules": [
                            {
                                "event_sources": [
                                    {
                                        "id": pixelID,
                                        "type": "pixel"
                                    }
                                ],
                                "retention_seconds": 8400,
                                "filter": {
                                    "operator": "and",
                                    "filters": [
                                        {
                                            "field": "url",
                                            "operator": "i_contains",
                                            "value": "/products/corrugated-containers"
                                        }
                                    ]
                                }
                            }
                        ]
                }
            }
        }
    },
    "retention_days": "180",
    "prefill": "1"
};
const customaudiences = (new AdAccount(id)).createCustomAudience(
    fields,
    params
);
logApiCallResult("customaudiences api call complete.", customaudiences);

1 Ответ

0 голосов
/ 21 января 2019

Похоже, я случайно как-то вложил объект правил в объект правил!Я исправил это, и он создал аудиторию, не выдавая ошибки ... теперь я не могу увидеть определение аудитории в интерфейсе Facebook, чтобы проверить, что это правильно, но это совершенно другая тема.

Я изменил ...

params = {
    "name": "Website - Viewed Product - Corrugated Containers - 180 days",
    "rule": {
        "inclusions": {
            "operator": "or",
                "rules": {
                "inclusions": {
                    "operator": "or",
                        "rules": [
                            {
                                "event_sources": [
                                    {
                                        "id": pixelID,
                                        "type": "pixel"
                                    }
                                ],
                                "retention_seconds": 8400,
                                "filter": {
                                    "operator": "and",
                                    "filters": [
                                        {
                                            "field": "url",
                                            "operator": "i_contains",
                                            "value": "/products/corrugated-containers"
                                        }
                                    ]
                                }
                            }
                        ]
                }
            }
        }
    },
    "retention_days": "180",
    "prefill": "1"
};

на

params = {
    "name": "Website - Viewed Product - Corrugated Containers - 180 days",
    "rule": {
        'inclusions': {
            'operator': 'or',
            'rules': [{
                'event_sources': [{
                    'id': pixelID,
                    'type': 'pixel'
                }],
                'retention_seconds': retention_seconds,
                'filter': {
                    'operator': 'and',
                    'filters': [{
                        'field': 'url',
                        'operator': 'i_contains',
                        'value': '/products/corrugated-containers'
                    }]
                }
            }]
        }
    },
    "retention_days": retention_days,
    "prefill": "1"
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...