首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新预算Google Ads API

更新预算Google Ads API
EN

Stack Overflow用户
提问于 2021-08-17 18:50:59
回答 1查看 205关注 0票数 0

我试图更新预算的AmoutMicros,但没有收到错误,只是没有更新预算:

代码语言:javascript
复制
        CampaignBudget budget = new CampaignBudget()
        {
            ResourceName = ResourceNames.CampaignBudget(customerId, budgetId),
            AmountMicros = (price + amount) * 100000,
            Id = budgetId
        };

        CampaignBudgetOperation budgetOperation = new CampaignBudgetOperation()
        {
            Create = budget,
            UpdateMask = FieldMasks.AllSetFieldsOf(budget),
        };

        try
        {
            MutateCampaignBudgetsResponse responseBudget = 
            budgetService.MutateCampaignBudgets(
            customerId.ToString(), new CampaignBudgetOperation[] { budgetOperation 
          });

            foreach(MutateCampaignBudgetResult result in responseBudget.Results)
            {
                updateResponse.CampignId = campaignId;
                updateResponse.Updated = true;
                Console.WriteLine(result);
            }

            return updateResponse;
        }
        catch (GoogleAdsException e)
        {
            Console.WriteLine("Failure:");
            Console.WriteLine($"Message: {e.Message}");
            Console.WriteLine($"Failure: {e.Failure}");
            Console.WriteLine($"Request ID: {e.RequestId}");

            return updateResponse;
            throw;
        }

这段代码没有给我一个例外,显然它是更新的,但是,当我去谷歌广告仪表板时,它的内容仍然是一样的。

我看了文档,但没有找到最新的预算。

EN

回答 1

Stack Overflow用户

发布于 2022-05-18 18:51:39

我的工作代码是PHP,但您可以引用此代码。

代码语言:javascript
复制
   private static function updateCampaignBudget(GoogleAdsClient $googleAdsClient, int $customerId,int $campaign_budget,string $budget_resource_name){
    // Creates a campaign budget.
    $budget = new CampaignBudget([
        'resource_name' => $budget_resource_name,
        //'delivery_method' => BudgetDeliveryMethod::STANDARD,
        'amount_micros' => $campaign_budget
        //'explicitly_shared' => false
    ]);

    // Creates a campaign budget operation.
    $campaignBudgetOperation = new CampaignBudgetOperation();
    $campaignBudgetOperation->setUpdate($budget);
    $campaignBudgetOperation->setUpdateMask(FieldMasks::allSetFieldsOf($budget));
    // Issues a mutate request.
    $campaignBudgetServiceClient = $googleAdsClient->getCampaignBudgetServiceClient();
    $response = $campaignBudgetServiceClient->mutateCampaignBudgets(
        $customerId,
        [$campaignBudgetOperation]
    );

    /** @var CampaignBudget $addedBudget */
    $updatedBudget = $response->getResults()[0];
    //printf("Added budget named '%s'%s", $addedBudget->getResourceName(), PHP_EOL);

    return $updatedBudget->getResourceName();
}

您可以使用ResourceNames::forCampaign预算内(customerId,budgetId)而不是$budget_resource_name

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68822639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档