facebook-java-sdk 无法创建 "Ad",说在没有真正使用任何东西时使用 instagram a/c 作为展示位置
facebook-java-sdk unable to create "Ad", says using instagram a/c as placement when not really using anything
我正在尝试使用 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"}}
这几天前工作正常,但突然开始抛出异常。任何帮助将不胜感激。
您可以明确指定发布平台仅在 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()
我想补充一下这个答案,因为我刚刚解决了这个问题。
我们管理提升的长 运行 应用程序本月刚刚停止工作,并抛出 OP 提到的错误。
Facebook 方面的默认设置似乎发生了变化。默认为facebook, audience_network, messenger
的docs state
查看广告管理器,它显示失败的提升尝试的展示位置现在包括 instagram 作为展示位置。在我能找到的任何地方似乎都没有提及此更改。
所以我不得不更改调用以将 facebook, audience_network, messenger
明确定义为我的 publisher_platform setting 而不是依赖默认值。
None 这些答案真正回答了如果您想包含 Instagram 需要做什么。
为了 post 到 Instagram,您需要一个 Instagram 帐户 ID。
Facebook 上的每个页面都有(或可以有)一个 Instagram 'account',而无需用户创建一个。
您需要做的是(按顺序):
- 检查他们是否链接了 Instagram(如果有,您使用此 ID)
- 检查
page_backed_instagram_accounts
以查看他们的页面是否有 Facebook 为他们创建的 Instagram 帐户(该帐户是隐藏的,无法在 Instagram 上找到)如果他们有,请使用此帐户的 ID。
- 如果由于某种原因他们的页面没有 instagram 也没有
page_backed_instagram_accounts
那么您将需要创建一个 page_backed_instagram_account
您要查找的端点是:
我正在尝试使用 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"}}
这几天前工作正常,但突然开始抛出异常。任何帮助将不胜感激。
您可以明确指定发布平台仅在 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()
我想补充一下这个答案,因为我刚刚解决了这个问题。
我们管理提升的长 运行 应用程序本月刚刚停止工作,并抛出 OP 提到的错误。
Facebook 方面的默认设置似乎发生了变化。默认为facebook, audience_network, messenger
查看广告管理器,它显示失败的提升尝试的展示位置现在包括 instagram 作为展示位置。在我能找到的任何地方似乎都没有提及此更改。
所以我不得不更改调用以将 facebook, audience_network, messenger
明确定义为我的 publisher_platform setting 而不是依赖默认值。
None 这些答案真正回答了如果您想包含 Instagram 需要做什么。
为了 post 到 Instagram,您需要一个 Instagram 帐户 ID。
Facebook 上的每个页面都有(或可以有)一个 Instagram 'account',而无需用户创建一个。
您需要做的是(按顺序):
- 检查他们是否链接了 Instagram(如果有,您使用此 ID)
- 检查
page_backed_instagram_accounts
以查看他们的页面是否有 Facebook 为他们创建的 Instagram 帐户(该帐户是隐藏的,无法在 Instagram 上找到)如果他们有,请使用此帐户的 ID。 - 如果由于某种原因他们的页面没有 instagram 也没有
page_backed_instagram_accounts
那么您将需要创建一个page_backed_instagram_account
您要查找的端点是: