Partage des budgets des campagnes

Vous pouvez appliquer un budget à une seule campagne partagées entre plusieurs campagnes.

Configuration

Lorsque vous créez CampaignBudget à l'aide de l'API Google Ads, vous pouvez spécifier il peut être partagé avec BoolValue des explicitly_shared :

  • true (par défaut): peut être partagé entre plusieurs campagnes.
  • false: ne peut être utilisé que par une seule campagne.

Les budgets partagés explicitement s'affichent dans la bibliothèque partagée d'un compte, dans la L'interface utilisateur de Google Ads, tandis qu'un budget non partagé n'apparaît que dans ses Paramètres de la campagne.

Dans l'exemple suivant, où un budget est créé, le budget est partagé car explicitly_shared est défini sur true.

Java

private String createSharedCampaignBudget(GoogleAdsClient googleAdsClient, long customerId) {
  try (CampaignBudgetServiceClient campaignBudgetServiceClient =
      googleAdsClient.getLatestVersion().createCampaignBudgetServiceClient()) {
    // Creates a shared budget.
    CampaignBudget budget =
        CampaignBudget.newBuilder()
            .setName("Shared Interplanetary Budget #" + getPrintableDateTime())
            .setAmountMicros(50_000_000L)
            .setDeliveryMethod(BudgetDeliveryMethod.STANDARD)
            .setExplicitlyShared(true)
            .build();
    // Constructs an operation that will create a shared budget.
    CampaignBudgetOperation operation =
        CampaignBudgetOperation.newBuilder().setCreate(budget).build();
    // Sends the operation in a mutate request.
    MutateCampaignBudgetsResponse response =
        campaignBudgetServiceClient.mutateCampaignBudgets(
            Long.toString(customerId), Lists.newArrayList(operation));

    MutateCampaignBudgetResult mutateCampaignBudgetResult = response.getResults(0);
    // Prints the resource name of the created object.
    System.out.printf(
        "Created shared budget with resource name: '%s'.%n",
        mutateCampaignBudgetResult.getResourceName());

    return mutateCampaignBudgetResult.getResourceName();
  }
}
      

C#

private string CreateSharedBudget(GoogleAdsClient client, long customerId, string name,
    long amount)
{
    // Get the CampaignBudgetService.
    CampaignBudgetServiceClient campaignBudgetService =
        client.GetService(Services.V17.CampaignBudgetService);

    // Create a shared budget.
    CampaignBudget budget = new CampaignBudget()
    {
        Name = name,
        AmountMicros = amount,
        DeliveryMethod = BudgetDeliveryMethodEnum.Types.BudgetDeliveryMethod.Standard,
        ExplicitlyShared = true
    };

    // Create the operation.
    CampaignBudgetOperation campaignBudgetOperation = new CampaignBudgetOperation()
    {
        Create = budget
    };

    // Make the mutate request.
    MutateCampaignBudgetsResponse retVal = campaignBudgetService.MutateCampaignBudgets(
        customerId.ToString(), new CampaignBudgetOperation[] { campaignBudgetOperation });
    return retVal.Results[0].ResourceName;
}
      

PHP

private static function createSharedCampaignBudget(
    GoogleAdsClient $googleAdsClient,
    int $customerId
) {
    // Creates a shared budget.
    $budget = new CampaignBudget([
        'name' => 'Shared Interplanetary Budget #' . Helper::getPrintableDatetime(),
        'delivery_method' => BudgetDeliveryMethod::STANDARD,
        // Sets the amount of budget.
        'amount_micros' => 50000000,
        // Makes the budget explicitly shared.
        'explicitly_shared' => true
    ]);

    // Constructs a campaign budget operation.
    $campaignBudgetOperation = new CampaignBudgetOperation();
    $campaignBudgetOperation->setCreate($budget);

    // Issues a mutate request to create the budget.
    $campaignBudgetServiceClient = $googleAdsClient->getCampaignBudgetServiceClient();
    $response = $campaignBudgetServiceClient->mutateCampaignBudgets(
        MutateCampaignBudgetsRequest::build($customerId, [$campaignBudgetOperation])
    );

    /** @var CampaignBudget $addedBudget */
    $addedBudget = $response->getResults()[0];
    printf(
        "Created a shared budget with resource name '%s'.%s",
        $addedBudget->getResourceName(),
        PHP_EOL
    );

    return $addedBudget->getResourceName();
}
      

Python

# Create a budget, which can be shared by multiple campaigns.
campaign_budget_operation = client.get_type("CampaignBudgetOperation")
campaign_budget = campaign_budget_operation.create
campaign_budget.name = f"Interplanetary Budget {uuid.uuid4()}"
campaign_budget.delivery_method = (
    client.enums.BudgetDeliveryMethodEnum.STANDARD
)
campaign_budget.amount_micros = 500000
campaign_budget.explicitly_shared = True

# Add budget.
try:
    campaign_budget_response = (
        campaign_budget_service.mutate_campaign_budgets(
            customer_id=customer_id, operations=[campaign_budget_operation]
        )
    )
    campaign_budget_id = campaign_budget_response.results[0].resource_name
    print(f'Budget "{campaign_budget_id}" was created.')
except GoogleAdsException as ex:
    handle_googleads_exception(ex)
      

Ruby

# Create a budget, which can be shared by multiple campaigns.
budget = client.resource.campaign_budget do |cb|
  cb.name = "Interplanetary budget ##{(Time.new.to_f * 1000).to_i}"
  cb.amount_micros = 50_000_000
  cb.delivery_method = :STANDARD
  cb.explicitly_shared = true
end

operation = client.operation.create_resource.campaign_budget(budget)

response = client.service.campaign_budget.mutate_campaign_budgets(
  customer_id: customer_id,
  operations: [operation],
)
budget_id = response.results.first.resource_name
      

Perl

sub create_shared_campaign_buget {
  my ($api_client, $customer_id) = @_;

  # Create a shared budget.
  my $campaign_budget =
    Google::Ads::GoogleAds::V17::Resources::CampaignBudget->new({
      name           => "Shared Interplanetary Budget #" . uniqid(),
      deliveryMethod => STANDARD,
      # Set the amount of budget.
      amountMicros => 50000000,
      # Makes the budget explicitly shared.
      explicitlyShared => 'true'
    });

  # Create a campaign budget operation.
  my $campaign_budget_operation =
    Google::Ads::GoogleAds::V17::Services::CampaignBudgetService::CampaignBudgetOperation
    ->new({create => $campaign_budget});

  # Add the campaign budget.
  my $campaign_budgets_response = $api_client->CampaignBudgetService()->mutate({
      customerId => $customer_id,
      operations => [$campaign_budget_operation]});

  my $campaign_budget_resource_name =
    $campaign_budgets_response->{results}[0]{resourceName};

  printf "Created a shared budget with resource name: '%s'.\n",
    $campaign_budget_resource_name;

  return $campaign_budget_resource_name;
}
      

Déterminer si le budget d'une campagne est partagé

Pour récupérer la valeur du paramètre de budget, recherchez le campaign_budget.explicitly_shared . Voici la requête GAQL correspondant au champ, qui permet de filtrer sur un ID de budget:

SELECT campaign_budget.explicitly_shared
FROM campaign_budget
WHERE campaign_budget.id = campaign_budget_id