我试图更新预算的AmoutMicros,但没有收到错误,只是没有更新预算:
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;
}这段代码没有给我一个例外,显然它是更新的,但是,当我去谷歌广告仪表板时,它的内容仍然是一样的。
我看了文档,但没有找到最新的预算。
发布于 2022-05-18 18:51:39
我的工作代码是PHP,但您可以引用此代码。
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
https://stackoverflow.com/questions/68822639
复制相似问题