Ошибка настройки ресурса при программном создании рекламы Facebook Click To Messenger - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь создать рекламную кампанию Facebook, используя ее Marketing API через business SDK для java . Мое приложение находится в стадии разработки. Поскольку Facebook запрещает создавать AdCreative в статусе разработки, я создал его вручную с помощью Менеджера рекламы. Сейчас я пытаюсь создать рекламную кампанию Click To Messenger программно, но Facebook отвечает следующей ошибкой: «Цель кампании в настоящее время не поддерживается настройкой активов». Я не могу понять, о каких настройках идет речь и как мне создать нужную кампанию.

            APIContext context = new APIContext(ACCESS_TOKEN, APP_SECRET);
            APINodeList<AdAccount> me = new User.APIRequestGetAdAccounts("me", context).execute();
            AdAccount account = me.get(0);
            BatchRequest batchRequest = new BatchRequest(context);
            account.createCampaign()
                    .setName("My campaign")
                    .setObjective(Campaign.EnumObjective.VALUE_MESSAGES)
                    .setSpendCap(10_000L)
                    .setStatus(Campaign.EnumStatus.VALUE_PAUSED)
                    .addToBatch(batchRequest, "campaignRequest");
            account.createAdSet()
                    .setName("My adset")
                    .setCampaignId("{result=campaignRequest:$.id}")
                    .setStatus(AdSet.EnumStatus.VALUE_PAUSED)
                    .setBillingEvent(AdSet.EnumBillingEvent.VALUE_IMPRESSIONS)
                    .setDailyBudget(1000L)
                    .setBidAmount(100L)
                    .setOptimizationGoal(AdSet.EnumOptimizationGoal.VALUE_IMPRESSIONS)
                    .setTargeting(new Targeting()
                            .setFieldGeoLocations(new TargetingGeoLocation()
                                    .setFieldCountries(List.of("US"))))
                    .addToBatch(batchRequest, "adsetRequest");
            account.createAd()
                    .setName("My ad")
                    .setAdsetId("{result=adsetRequest:$.id}")
                    .setCreative(new AdCreative("XXXXXXXXXXXXXXXXXX", context))
                    .setStatus(Ad.EnumStatus.VALUE_PAUSED)
                    .setBidAmount(100L)
                    .addToBatch(batchRequest);
            List<APIResponse> responses = batchRequest.execute();
...