[Google Ads Python Library] - Setting the campaign_bidding_strategy as maximize_conversions

91 views
Skip to first unread message

Miguel Miranda

unread,
Jun 19, 2019, 3:44:41 AM6/19/19
to AdWords API and Google Ads API Forum
Hi,

I'm trying to create a campaign via the Google Ads Python Library, but I cannot figure out how to set the campaign_bidding_strategy as maximize_conversions

According to https://developers.google.com/google-ads/api/reference/rpc/google.ads.googleads.v1.resources#campaign the campaign_bidding_strategy "Must be either portfolio (created via BiddingStrategy service) or standard, that is embedded into the campaign. campaign_bidding_strategy can be only one of the following:"

I've been able to create a campaign with either of this bidding strategies:

Manual CPC or enhanced CPC depending on the boolean value
campaign.manual_cpc.enhanced_cpc_enabled.value = True

Impression share
campaign.target_impression_share.location = client.get_type('TargetImpressionShareLocationEnum', version='v1').TOP_OF_PAGE
campaign.target_impression_share.location_fraction_micros.value = 1 * 10000
campaign.target_impression_share.cpc_bid_ceiling_micros.value = 5 * 1000000


I've learned from the documentation and examples that most fields are either set through the value property or through client.get_type() and setting the correct Enum, and some can be set through an operation, e.g. Campaign budget.
campaign_budget = campaign_budget_operation.create
...

According to https://developers.google.com/google-ads/api/docs/fields/campaign campaign.maximize_conversions has a Data Type of "MESSAGE", which I haven't found an example of how to set.

The Java library has the following example, which covers maximize_conversion_value:

But in the Python library I cannot find a similar example, there's this one but the bidding strategy is set as enhanced cpc


I do not want to set the campaign_bidding_strategy through the field bidding_strategy as this is for a portfolio bidding strategy.

I've already tried:
campaign.maximize_conversions = True - Gives me "Assignment not allowed to field "maximize_conversions" in protocol message object."
campaign.maximize_conversions - Gives me "The required field was not present" with the field_name of campaign_bidding_strategy
campaign.campaign_bidding_strategy = client.get_type('BiddingStrategyTypeEnum').MAXIMIZE_CONVERSIONS - Gives me "'Campaign' object has no attribute 'campaign_bidding_strategy'"

I know that there are bidding strategy types that are portfolio bidding only like target_spend, but according to the table in https://developers.google.com/adwords/api/docs/guides/bidding maximize_conversions isn't one of them. (I know that's a link from the adwords api and not the google ads api, but I couldn't find a similar table in the docs for google ads api)

Could you please provide an example of how to set the bidding strategy as maximize_conversions without using portfolio bidding?
Thank you and best regards

Reply all
Reply to author
Forward
0 new messages