跨账号出价策略实际上是在经理账号中创建的智能出价组合出价策略。任何客户账号中的广告系列都可以使用这些出价策略,前提是这些客户账号位于拥有相应出价策略的经理账号下方。
创建和管理
创建新的跨账号出价策略与创建新的组合出价策略几乎完全相同,只不过您需要将 API 调用的 customer_id 设置为经理账号的 customer_id。使用经理账号的 ID 创建新的 BiddingStrategy 资源,就像在客户账号中创建新的组合策略一样。
Java
private String createBiddingStrategy(GoogleAdsClient googleAdsClient, long managerCustomerId) { try (BiddingStrategyServiceClient biddingStrategyServiceClient = googleAdsClient.getLatestVersion().createBiddingStrategyServiceClient()) { // Creates a portfolio bidding strategy. BiddingStrategy portfolioBiddingStrategy = BiddingStrategy.newBuilder() .setName("Maximize Clicks #" + getPrintableDateTime()) .setTargetSpend(TargetSpend.getDefaultInstance()) // Sets the currency of the new bidding strategy. If not provided, the bidding // strategy uses the manager account's default currency. .setCurrencyCode("USD") .build(); // Constructs an operation that will create a portfolio bidding strategy. BiddingStrategyOperation operation = BiddingStrategyOperation.newBuilder().setCreate(portfolioBiddingStrategy).build(); // Sends the operation in a mutate request. MutateBiddingStrategiesResponse response = biddingStrategyServiceClient.mutateBiddingStrategies( Long.toString(managerCustomerId), ImmutableList.of(operation)); // Prints the resource name of the created cross-account bidding strategy. MutateBiddingStrategyResult mutateBiddingStrategyResult = response.getResults(0); String resourceName = mutateBiddingStrategyResult.getResourceName(); System.out.printf("Created cross-account bidding strategy: '%s'.%n", resourceName); return resourceName; } }
C#
/// <summary> /// Creates a new TargetSpend (Maximize Clicks) cross-account bidding strategy in the /// specified manager account. /// </summary> /// <param name="client">The Google Ads client.</param> /// <param name="managerCustomerId">The manager customer ID.</param> /// <returns>The resource name of the newly created bidding strategy.</returns> private string CreateBiddingStrategy(GoogleAdsClient client, long managerCustomerId) { BiddingStrategyServiceClient biddingStrategyServiceClient = client.GetService(Services.V25.BiddingStrategyService); // Create a portfolio bidding strategy. BiddingStrategy portfolioBiddingStrategy = new BiddingStrategy { Name = $"Maximize clicks #{ExampleUtilities.GetRandomString()}", TargetSpend = new TargetSpend(), // Set the currency of the new bidding strategy. If not provided, the bidding // strategy uses the manager account's default currency. CurrencyCode = "USD" }; // Send a create operation that will create the portfolio bidding strategy. MutateBiddingStrategiesResponse mutateBiddingStrategiesResponse = biddingStrategyServiceClient.MutateBiddingStrategies(managerCustomerId.ToString(), new[] { new BiddingStrategyOperation { Create = portfolioBiddingStrategy } }); // Print and return the resource name of the newly created cross-account bidding // strategy. string biddingStrategyResourceName = mutateBiddingStrategiesResponse.Results.First().ResourceName; Console.WriteLine("Created cross-account bidding strategy " + $"'{biddingStrategyResourceName}'."); return biddingStrategyResourceName; }
PHP
private static function createBiddingStrategy( GoogleAdsClient $googleAdsClient, int $managerCustomerId ): string { // Creates a portfolio bidding strategy. $portfolioBiddingStrategy = new BiddingStrategy([ 'name' => 'Maximize Clicks #' . Helper::getPrintableDatetime(), 'target_spend' => new TargetSpend(), // Optional: Sets the currency of the new bidding strategy to match the currency of the // client account with which this bidding strategy is shared. // If not provided, the bidding strategy uses the manager account's default currency. 'currency_code' => 'USD' ]); // Constructs an operation that will create a portfolio bidding strategy. $biddingStrategyOperation = new BiddingStrategyOperation(); $biddingStrategyOperation->setCreate($portfolioBiddingStrategy); // Issues a mutate request to create the bidding strategy. $biddingStrategyServiceClient = $googleAdsClient->getBiddingStrategyServiceClient(); $response = $biddingStrategyServiceClient->mutateBiddingStrategies( MutateBiddingStrategiesRequest::build($managerCustomerId, [$biddingStrategyOperation]) ); /** @var BiddingStrategy $addedBiddingStrategy */ $addedBiddingStrategy = $response->getResults()[0]; // Prints out the resource name of the created bidding strategy. printf( "Created cross-account bidding strategy with resource name: '%s'.%s", $addedBiddingStrategy->getResourceName(), PHP_EOL ); return $addedBiddingStrategy->getResourceName(); }