Facebook-java-SDK无法创建"Ad",说使用Instagram A / C作为放置,而实际上没有使用任何东西



我正在尝试使用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"}}

这几天前都很好,但是突然之间开始了例外。任何帮助将不胜感激。

我想添加此答案,因为我只是在此问题上进行了斗争。我们的长期运行应用程序进行了促进,只是本月停止工作,并抛出了OP提到的错误。看来Facebook方面的默认设置发生了变化。文档指出默认值为 facebook, audience_network, messenger

在广告经理中查看,它表明失败的Boost尝试的位置现在包括Instagram作为位置。似乎没有任何我能找到的更改。

所以我确实必须更改呼叫以明确将facebook, audience_network, messenger定义为我的Publisher_platform设置,而不依赖默认设置。

您可以明确指定发布者平台仅在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()

如果您想包括Instagram,这些答案都没有真正回答您需要做的事情。

要发布到Instagram,您需要一个Instagram帐户ID。

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

您需要做的是(按以下顺序(:

  1. 检查他们是否链接了Instagram(如果您使用此ID(
  2. 检查page_backed_instagram_accounts的检查以查看他们的页面是否具有Facebook为他们做广告的Instagram帐户(该帐户是隐藏的,并且在Instagram上找不到(,如果有此帐户,请使用此帐户中的ID。<<<<<<<<<<<<
  3. 如果由于某种原因,他们的页面没有Instagram,也没有page_backed_instagram_accounts,那么您将需要创建page_backed_instagram_account

您要寻找的端点是:

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

相关内容

  • 没有找到相关文章

最新更新