Target Spend Bidding Strategy deprecation

83 views
Skip to first unread message

Zied Chaari

unread,
Jun 4, 2019, 4:46:04 AM6/4/19
to AdWords API and Google Ads API Forum
Hi All,

According to the last post on the Google Ads Developer Blog the target spend strategy will be deprecated by the 31 of July.
My question is How can I use mu budgets to specify how much I'd like to spend for maximize clicks?

You can find bellow how I'm using the target spend as bidding strategy.

Campaign:

BiddingStrategyConfiguration biddingStrategyConfiguration = new BiddingStrategyConfiguration();
if(is_autobid)
{
    biddingStrategyConfiguration.biddingStrategyType = BiddingStrategyType.TARGET_SPEND;
}
else
{
    if(billing_event == "IMPRESSIONS")
    {
        biddingStrategyConfiguration.biddingStrategyType = BiddingStrategyType.MANUAL_CPM;
    }
    else if(billing_event == "LINK_CLICKS")
    {
        biddingStrategyConfiguration.biddingStrategyType = BiddingStrategyType.MANUAL_CPC;
    }
}

campaign.biddingStrategyConfiguration = biddingStrategyConfiguration;

AdGroup:

BiddingStrategyConfiguration biddingStrategyConfiguration = new BiddingStrategyConfiguration();
if (is_autobid == false && billing_event == "IMPRESSIONS")
{
    biddingStrategyConfiguration.bids = new Bids[]
    {
        new CpmBid()
        {
            bid = new Money()
            {
                 microAmount = long.Parse((bid_amount * 1000000).ToString())
            }
        }
    };
}
else if (is_autobid == false && billing_event == "LINK_CLICKS")
{
    biddingStrategyConfiguration.bids = new Bids[]
    {
        new CpcBid()
        {
            bid = new Money()
            {
                microAmount = long.Parse((bid_amount * 1000000).ToString())
            }
        }
    };
}

is_autobid, billing_event and bid_amount are local variable I'm using into my code.

Many thanks,
Zied

Google Ads API Forum Advisor Prod

unread,
Jun 4, 2019, 4:12:00 PM6/4/19
to adwor...@googlegroups.com
Hello Zied,

As mentioned in the blog post you have to use the daily budget instead to maximize the clicks. Please refer the Focus on clicks with CPC bidding section of this article for more information. Please let me know if you have any further questions.

Regards,
Sai Teja, Google Ads API Team

ref:_00D1U1174p._5001UBlPo7:ref

Zied Chaari

unread,
Jun 7, 2019, 5:11:47 AM6/7/19
to AdWords API and Google Ads API Forum
Hello Sai,

I'm getting an error saying Missing required field, in the campaign operation, when I'm trying to not using the bidding strategy configuration. You could find bellow my amended code.

Campaign:

if(is_autobid == false)
{
    BiddingStrategyConfiguration biddingStrategyConfiguration = new BiddingStrategyConfiguration();
    if(billing_event == "IMPRESSIONS")
    {
        biddingStrategyConfiguration.biddingStrategyType = BiddingStrategyType.MANUAL_CPM;
    }
    else if(billing_event == "LINK_CLICKS")
    {
        biddingStrategyConfiguration.biddingStrategyType = BiddingStrategyType.MANUAL_CPC;
    }
    campaign.biddingStrategyConfiguration = biddingStrategyConfiguration;
}

I'm using the batchJobService, and I couldn't retrieve the request and response logs.

Thanks,
Zied




Google Ads API Forum Advisor Prod

unread,
Jun 7, 2019, 11:54:17 AM6/7/19
to adwor...@googlegroups.com
Hello Zied,

It seems like the biddingStrategyType is not setting for the campaign. Did you double check if your code is not going through the loop and setting biddingStrategyType? Could you please share the Upload URL for the batch job to investigate further?

Zied Chaari

unread,
Jun 7, 2019, 12:08:30 PM6/7/19
to AdWords API and Google Ads API Forum
Hi Sai,

I send you the required URL privately.

Many Thanks,
Zied

Zied Chaari

unread,
Jun 7, 2019, 12:29:13 PM6/7/19
to AdWords API and Google Ads API Forum
Hi Sai,

What bidding Strategy type should I use, if I want to use automatic bidding that maximize clicks? And as you know BiddingStrategyType.TARGET_SPEND will be deprecated by 31 of June.
If I ignore the campaign's biddingStrategyType (campaign.biddingStrategyConfiguration = null), I got the Missing required field error.

Thanks,
Zied

Zied Chaari

unread,
Jun 10, 2019, 3:54:47 AM6/10/19
to AdWords API and Google Ads API Forum
Hi,

Any updates on this.

Cheers,
Zied

Google Ads API Forum Advisor Prod

unread,
Jun 10, 2019, 8:15:57 AM6/10/19
to acteol...@gmail.com, adwor...@googlegroups.com
Hello,

You can still use the Maximize Clicks bidding strategy. That strategy is not going away; only the "target spend" field in the strategy is going away. As the blog post mentioned, you should update your daily budgets to reflect how much you want to spend in a given day.

Regards,
Mike, Google Ads API Team

ref:_00D1U1174p._5001UBlPo7:ref

Zied Chaari

unread,
Jun 11, 2019, 9:37:33 AM6/11/19
to AdWords API and Google Ads API Forum
Hi Mike,

The problem I'm facing is when I try to add my campaign without specifying  the biddingStrategyType, and with a daily budget, I got an error saying Missing required field, which is the  biddingStrategyType. 
Cause according to your last blog post, I should not use the bidding strategy type target spend in the future, if I want to maximize the clicks.
You can find bellow how I'm creating my campaign. Please correct me if there is any confusion.

_Ad.AdSet.is_autobid  = false; 

        private List<Google.Api.Ads.AdWords.v201809.CampaignOperation> BuildCampaignOperations(SM.Data.Models.AdModel.Ad _Ad, string camapignId, long budgetId, string action)
        {
            List<Google.Api.Ads.AdWords.v201809.CampaignOperation> operations = new List<Google.Api.Ads.AdWords.v201809.CampaignOperation>();
            Google.Api.Ads.AdWords.v201809.Campaign campaign = new Google.Api.Ads.AdWords.v201809.Campaign()
            {
                id = string.IsNullOrEmpty(camapignId) ? NextId() : long.Parse(camapignId),
                budget = new Budget()
                {
                    budgetId = budgetId
                }
            };

            if (action == "ADD")
            {
                campaign.name = _Ad.Name;
                campaign.status = CampaignStatus.PAUSED;

            }

            BiddingStrategyConfiguration biddingStrategyConfiguration = new BiddingStrategyConfiguration();

            if (_Ad.AdSet.is_autobid == false)
            {
                if (_Ad.AdSet.billing_event == "IMPRESSIONS")
                {
                    biddingStrategyConfiguration.biddingStrategyType = BiddingStrategyType.MANUAL_CPM;
                }
                else if (_Ad.AdSet.billing_event == "LINK_CLICKS")

                {
                    biddingStrategyConfiguration.biddingStrategyType = BiddingStrategyType.MANUAL_CPC;
                }
            }

            campaign.biddingStrategyConfiguration = biddingStrategyConfiguration;

            // Campaign Channel Type
            if (_Ad.AdSet.AdCampaign.objective == "SEARCH")
                campaign.advertisingChannelType = AdvertisingChannelType.SEARCH;
            else if (_Ad.AdSet.AdCampaign.objective == "DISPLAY")
                campaign.advertisingChannelType = AdvertisingChannelType.DISPLAY;
           
            // Set the network settings
            NetworkSetting networkSetting = new NetworkSetting();
            foreach (AdPlatform _AdPPlatform in _Ad.AdSet.AdPlatforms)
            {
                if (_AdPPlatform.Platform == "SEARCH")
                {
                    networkSetting.targetGoogleSearch = true;
                    networkSetting.targetSearchNetwork = true;
                }
                if (_AdPPlatform.Platform == "CONTENT")
                    networkSetting.targetContentNetwork = true;
            }
            campaign.networkSetting = networkSetting;

            // Set start and end date
            if(action == "ADD")
                campaign.startDate = ((_Ad.AdSet.start_time ?? DateTime.Now) > DateTime.Now ? (_Ad.AdSet.start_time ?? DateTime.Now) : DateTime.Now).ToString("yyyyMMdd");
            campaign.endDate = (_Ad.AdSet.end_time ?? DateTime.Now).ToString("yyyyMMdd");

            Google.Api.Ads.AdWords.v201809.CampaignOperation operation = new Google.Api.Ads.AdWords.v201809.CampaignOperation()
            {
                operand = campaign,
                @operator = action == "ADD" ? Operator.ADD : Operator.SET
            };
            operations.Add(operation);

            return operations;
        }

Thanks,
Zied

Google Ads API Forum Advisor Prod

unread,
Jun 11, 2019, 12:33:57 PM6/11/19
to acteol...@gmail.com, adwor...@googlegroups.com
Hello,

Continue to use bidding strategies as you always have in the past. The only difference is a field on the bidding strategy that you should no longer set. Please let me know if you have any other questions.
Reply all
Reply to author
Forward
0 new messages