在 R 中使用 Meta 广告库 API 时,如何跳过 for 循环中失败的迭代?

How can I skip failed iterations in a for loop when using Meta Ads Library API in R?

提问人:tb629 提问时间:5/23/2023 最后编辑:tb629 更新时间:5/23/2023 访问量:20

问:

如何在 R 的 for 循环中跳过失败的迭代?

因此,我正在尝试使用 for 循环使用 Meta Ads Library API 收集数据。目前,我正在运行代码,如下所示:

for (i in 1:336){
  id <- ids_fpa_vetor[i] # vector of page ids
  query <- adlib_build_query (ad_reached_countries = 'BR',
                                       search_page_ids = id,
                                       ad_delivery_date_min = "2018-05-07",
                                       ad_delivery_date_max = "2023-05-19",
                                       fields = c("id", "ad_creation_time", "spend", "delivery_by_region", "demographic_distribution", "ad_creative_bodies", "ad_delivery_start_time", "ad_delivery_stop_time", "ad_snapshot_url", "impressions", "page_id", "page_name", "publisher_platforms"),
                                       limit = 30000)

  response <- adlib_get_paginated(query, max_gets = 100, token = token)

  results <- as_tibble(response, censor_access_token = TRUE)

  DataFrame <- rbind.fill(DataFrame, results)
}

对于那些不熟悉 Meta Ads Library API 的人,我基本上是:

  • 声明我的搜索查询大约有 336 个唯一的页面 ID;

  • 从 API 获取响应;

  • 将这种反应转化为小工具;

  • 最后,将这个 tibble 绑定到一个预先存在的数据帧,该数据帧具有我感兴趣的变量。

但是,由于我们尝试从中收集数据的某些页面,我不断收到一些错误。例如,没有任何数据或从Facebook中删除的页面,很难手动验证。

我想告诉我的代码忽略这些错误,并在我的流程中继续进行下一次迭代,即下一页。我能做些什么?

说我正在使用 Radlibrary 包是很有用的。

如果我不够清楚,我很抱歉,因为这是我第一次尝试处理 R 中的错误:)

r facebook try-catch 跳过

评论

0赞 Ricardo Semião e Castro 5/23/2023
查看 R 中的错误处理程序。您可能想要使用response <- try(adlib_get_paginated(...))

答: 暂无答案