首页 > 解决方案 > Facebook 营销 API 仅返回 25 个结果/广告

问题描述

收到此请求后,我的广告帐户中收到的广告不超过 25 个。我在一家公司工作,这就是以前的人构建它的方式,所以我很感激这种调用 api 的方式的解决方案。一切正常,只是我没有获得超过 25 条记录。

我已经读到您可以在 URI/请求中添加一个“限制”参数,后跟一个数字(此处显示,第 9 部分:https ://mixedanalytics.com/knowledge-base/import-facebook-ad-data-to -google-sheets/#num9 )

就我而言,我尝试在界面中添加一个“限制”变量,在字段数组中,我尝试在 account.getAds() 调用中潜入“限制”。下面给出的代码中几乎所有看起来合乎逻辑的东西:

import logger from "../****/****";
import { FB_ACCESS_TOKEN } from "../****/****";
import { AdAccount, FacebookAdsApi } from "facebook-nodejs-business-sdk";

let isInitialized = false;

function initFacebookApi(): void {
    if (!isInitialized) {
        FacebookAdsApi.init(FB_ACCESS_TOKEN);
        isInitialized = true;
    }
}

interface FacebookAdParam {
    filtering?: {
        field: string;
        operator: string;
        value: string;
    }[];
}

export async function searchFBAds(facebookAccountId: string, search: string | undefined) {
    try {
        initFacebookApi();

        const fullAccountId = `act_${facebookAccountId}`;
        const account = new AdAccount(fullAccountId);
        const params: FacebookAdParam = {};
        const fields = ['id', 'name'];

        if (search) { //Our GUI features a search function, to filter by name, after fetching all records
            params.filtering = [
                {
                    field: 'name',
                    operator: 'CONTAIN',
                    value: search,
                },
            ];
        }

        const ads: any[] = await account.getAds(fields, params);
        return ads.map(({ id, name }) => {
            return {
                id: id,
                name: name
            };
        });
    }
    catch (e) {
        logger.error('Something went wrong when searching for a facebook ad', e);
    }
}

提前致谢 //Ibrahim,初级开发者。

标签: javascripttypescriptfacebookads

解决方案


推荐阅读