是否可以使用 Facebook 的 GraphAPI 在字段上设置 date_preset?

Is it possible to set date_preset on fields using Facebook's GraphAPI?

我有以下查询需要限制日期:

<Ad Campaign ID>/ads?fields=adset.fields(id),insights.fields(impressions,spend,reach,actions)

一切都很好,并且以所需的格式提供了所需的数据。但我需要将见解限制在前一天,即 date_preset = yesterday.

给出当前returns的数据样本:

{
  "data": [
    {
      "adset": {
        "id": "<id>"
      },
      "insights": {
        "data": [
          {
            "impressions": "1483",
            "spend": "39.11",
            "reach": "837",
            "actions": [
              {
                "action_type": "post",
                "value": "1"
              },
              {
                "action_type": "post_reaction",
                "value": "2"
              },
              {
                "action_type": "comment",
                "value": "1"
              },
              {
                "action_type": "link_click",
                "value": "25"
              },
              {
                "action_type": "landing_page_view",
                "value": "22"
              },
              {
                "action_type": "post_engagement",
                "value": "29"
              },
              {
                "action_type": "page_engagement",
                "value": "29"
              }
            ],
            "date_start": "2021-09-20",
            "date_stop": "2021-10-19"
          }
        ],
      },
      "id": "<id>"
    }
  ]
}

我已经尝试了几种方法来做到这一点,但没有任何效果:

抱歉,如果这些查询中的一些看起来像废话,第一次使用这个并且图表 API 还没有完全“点击”我,所以这可能是我从根本上误解了语法在几个地方。希望你能进球。

我确实看到了 references to querying on the Ad Account level,虽然这可能有效(它已经有几年历史了,所以据我所知可能不可行)我们不能这样做,因为我们需要从不同的帐户查询到广告帐户。我们无权访问广告帐户进行查询。

似乎正确的语法实际上是我发布的“无效”示例之一:

<Ad Campaign ID>/ads?fields=adset.fields(id),insights.fields(impressions,spend,reach,actions).date_preset(yesterday)

我曾假设缺少洞察力数据会导致值为 0,而不是在响应中完全删除洞察力数据。如果我将日期预设更改为包含广告操作数据的时间范围,我会得到预期的响应。因此,如果在时间范围内没有洞察数据,这只是对端点 returns 的误解。

当然,API 文档中完全没有这一点,这很遗憾。似乎您只是应该通过轮询和注意行为来弄清楚 API。