facebook-java-sdk 无法创建“广告”,说在没有真正使用任何东西时使用 instagram a/c 作为展示位置

Posted

技术标签:

【中文标题】facebook-java-sdk 无法创建“广告”,说在没有真正使用任何东西时使用 instagram a/c 作为展示位置【英文标题】:facebook-java-sdk unable to create "Ad", says using instagram a/c as placement when not really using anything 【发布时间】:2018-04-03 03:29:23 【问题描述】:

我正在尝试使用 facebook-java-sdk 创建广告

val adCreative = new AdAccount(ACCOUNT_ID, context).createAdCreative()
  .setName(s"Test Creative +$TEST")
  .setObjectStorySpec(
    new AdCreativeObjectStorySpec()
      .setFieldLinkData(
        new AdCreativeLinkData()
          .setFieldCaption("http://www.field-caption.com")
          .setFieldImageHash(attachment1.getFieldImageHash)
            .setFieldLink("http://www.google.co.in")
              .setFieldMessage("try it out")
              )
      .setFieldPageId(FACEBOOK_PAGE)
  )
  .execute()

val ad = new AdAccount(ACCOUNT_ID, context).createAd()
  .setName(s"Test Ad +$TEST")
  .setAdsetId(adSet.getId)
      .setCreative(adCreative.getId)
  .setCreative(new AdCreative().setFieldId(adCreative.getId()))
  .setStatus(Ad.EnumStatus.VALUE_PAUSED)
  .execute()

但是 createAd 调用失败并导致异常

com.facebook.ads.sdk.APIException$FailedRequestException: "error":"message":"Invalid parameter","type":"OAuthException","code":100,"error_subcode":1772103,"is_transient":false,"error_user_title":"Instagram Account Is Missing","error_user_msg":"You're using Instagram as a placement. Please select an Instagram account to represent your business in your Instagram ads, or select a Facebook Page to use instead.","fbtrace_id":"FtpWRXVY1tH"

这几天前工作正常,但突然开始抛出异常。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我想补充一下这个答案,因为我刚刚解决了这个问题。 我们长期运行的管理提升的应用程序本月刚刚停止工作,并抛出了 OP 提到的错误。 Facebook方面的默认设置似乎发生了变化。默认为facebook, audience_network, messenger的docs state

查看广告管理器,它显示失败的提升尝试的展示位置现在包含 instagram 作为展示位置。在我能找到的任何地方似乎都没有提到这个变化。

所以我确实必须更改调用,将facebook, audience_network, messenger 明确定义为我的publisher_platform setting,而不是依赖默认值。

【讨论】:

看起来他们最近刚刚更新了文档以包含它。【参考方案2】:

您可以明确指定发布者平台仅在 facebook 上发布

 val adSet = new AdAccount(ACCOUNT_ID, context).createAdSet()
  .setName(s"Test AdSet +$TEST")
  .setLifetimeBudget(20000L)
  .setStartTime(currentDateTime.toString())
    .setEndTime(currentDateTime.plusDays(1).toString())
      .setCampaignId(campaign.getId())
        .setIsAutobid(true)
        .setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
        .setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_POST_ENGAGEMENT)
        .setTargeting(
              new Targeting()
                  .setFieldCustomAudiences(List(idNameCusAudience).asJava)
                    .setFieldPublisherPlatforms(List("facebook").asJava)
        )
        .setStatus(AdSet.EnumStatus.VALUE_PAUSED)
        .execute()

【讨论】:

确实有帮助,而且确实没有在营销 api 显着位置提及。 这更像是一种变通方法而不是解决方案,如果您希望您的广告也显示在 instagram 上,如果没有连接到该页面的 instagram 帐户,您应该能够设置一个 facebook 页面,即广告管理器中的默认功能。 我每次尝试根据帖子创建广告时都会收到此错误。创建/更新广告时如何指定页面? @RickS @K.D.看看我的回答,我会用 Facebook 链接到我的支持票,但他们禁止了我的其他帐户并且它已经消失了。那应该为你解决它【参考方案3】:

如果您想加入 Instagram,这些答案都不能真正回答您需要做什么。

要在 Instagram 上发帖,您需要一个 Instagram 帐户 ID。

Facebook 上的每个页面都有(或可以有)一个 instagram“帐户”,而无需用户创建一个。

您需要做的是(按此顺序):

    检查他们是否链接了 Instagram(如果他们使用此 ID) 检查page_backed_instagram_accounts 以查看他们的页面是否有 Facebook 为他们制作的 Instagram 帐户,以便他们能够做广告(此帐户已隐藏,无法在 Instagram 上找到)如果他们有此帐户,请使用此帐户中的 ID . 如果由于某种原因他们的页面没有 instagram 也没有page_backed_instagram_accounts,那么您需要创建一个page_backed_instagram_account

您正在寻找的端点是:

    https://graph.facebook.com/v3.1/[pageId]?fields=instagram_accounts https://graph.facebook.com/v3.1/[pageId]?fields=page_backed_instagram_accounts

【讨论】:

这很有帮助。但是如何在 fb api 中使用生成的 instagram 帐户 ID。我将其作为 instagram_actor_id 传递但没有成功 @AlexandruR 有一段时间没有使用 Facebook API,但从我在发布这篇文章时编写的代码看来,我向https://graph.facebook.com/[FB_API_VERSION]/[PAGE_ID]/page_backed_instagram_accounts 发出了POST 请求,希望对您有所帮助

以上是关于facebook-java-sdk 无法创建“广告”,说在没有真正使用任何东西时使用 instagram a/c 作为展示位置的主要内容,如果未能解决你的问题,请参考以下文章

广告服务器无法填充。广告:无法加载广告:3

广告无法在 Android 应用上正常运行

无法使用延迟深层链接从 Facebook 实时广告中获取安装引荐来源网址值

Admob 广告无法加载状态详细信息 广告投放有限

如何获得Facebook广告UTM

Facebook原生广告无法点击,无反应