【问题标题】:Retrieve comments on Facebook ads through the API通过 API 检索 Facebook 广告的评论
【发布时间】:2021-01-16 04:29:54
【问题描述】:

是否可以通过 API(Graph 或 FQL)检索 Facebook 广告上的 cmets?如果是,我是否需要一个列入白名单的应用程序才能做到这一点?另外,如果我有页面访问令牌,是否足够,或者我需要具有 ads_management 权限的用户访问令牌?

【问题讨论】:

标签: facebook facebook-graph-api facebook-ads-api


【解决方案1】:

关于令牌的使用,page_token 由给定用户扩展到给定应用程序。 page_token 最多与用户在其授权页面和 ad_accounts 上具有相同的权限。

如果您已经拥有user_tokenmanage_pages 权限,则可以代表用户自动生成page_token。同样,此page_token 最多具有与您用于生成它的user_token 相同的权限。

换句话说,拥有page_token 并不会获得比user_token 中已经存在的特权更多的特权。

话虽如此,你需要

  1. 可以访问给定 ad_account 的令牌
  2. 为其生成该令牌的应用在其设置中具有激活的 ad_account

如果不满足第二个条件,例如ad_account act_123456789,您将收到错误消息:

{
  "error": {
    "message": "(#274) The ad account is not enabled for usage in Ads API. Please add it in developers.facebook.com/apps -> select your app -> settings -> advanced -> advertising accounts -> Ads API. Account 123456789 not enabled for this application.",
    "type": "OAuthException",
    "code": 274,
    "fbtrace_id": "xxxxx"
  }
}

例如,您可以尝试为Graph API Explorer App 生成具有所有权限的令牌。它会抛出上面的错误,因为所说的应用程序没有启用ad_account act_123456789

因此,假设您有一个带有 ads_read 扩展的令牌,用于列出此 ad_account 的应用程序,并且您知道 ad_id,您可以按照我在线程 Get comments from facebook ads (marketing) 中的说明进行操作

基本上,您使用 ad_id(例如 123000000)来获取提升的帖子 ID 及其操作

/123000000?fields=creative.fields(effective_object_story_id),insights.fields(actions)

答案将包含一个effective_object_story_id(例如,假设它是456000000_789000000)及其按类型细分的操作:

{
  "creative": {
    "effective_object_story_id": "456000000_789000000",
    "id": "123000000"
  },
  "insights": {
    "data": [
      {
        "actions": [
          {
            "action_type": "comment",
            "value": "12"
          },
          {
            "action_type": "like",
            "value": "2"
          },
          {
            "action_type": "post",
            "value": "3"
          },
          {
            "action_type": "post_reaction",
            "value": "29"
          },
          {
            "action_type": "video_view",
            "value": "558"
          },
          {
            "action_type": "page_engagement",
            "value": "604"
          },
          {
            "action_type": "post_engagement",
            "value": "602"
          }
        ],
        "date_start": "2017-08-14",
        "date_stop": "2017-08-20"
      }
    ],
    "paging": {
      "cursors": {
        "before": "xxx",
        "after": "xxx"
      }
    }
  }
}

如果您还想区分付费 cmets 和普通 cmets,可以查询 post_id 456000000_789000000comments 边缘以获取总评论数,该总评论数应大于广告生成的 cmets。

【讨论】:

    【解决方案2】:

    您无法通过 API 提取评论的实际字词 - 这太容易被抓取。

    【讨论】:

      【解决方案3】:

      是的,具有 cmets 的 Facebook 广告是因为该广告是推广页面帖子,无论该页面帖子是否隐藏。页面帖子 cmets 可通过 Facebook API 获得,并且不需要访问 Ads API。使用图形 API 端点 /v2.1/{page-id}/cmets 检索页面发布 cmets。请参阅Facebook Graph API documentation on object comments 了解更多信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-21
        • 2020-07-08
        • 2012-03-11
        • 1970-01-01
        • 2014-01-23
        相关资源
        最近更新 更多