Campaign goals lets you optimize specific campaigns for specific conversion
actions. If you have campaigns with goals that differ from your account-level
goals, you can modify each
CampaignConversionGoal
and its
biddable
setting as needed. For example, if your account generally optimizes
for ecommerce but you have one campaign targeting store visits, you could set
biddable=true
for all CampaignConversionGoal
objects with
category=STORE_VISIT
, and biddable=false
for all other
CampaignConversionGoal
objects.
When you override the customer-level goals for a campaign by issuing a
CampaignConversionGoalOperation
or using a custom goal, Google Ads will no longer apply future
CustomerConversionGoal
changes to any of the campaign's
CampaignConversionGoal
objects. The CampaignConversionGoal
objects are
completely independent from that point forward, and will remain so unless you
transition the campaign back to using customer-level goals by updating its
conversion goal campaign configuration as described
below.
Campaign goals for new conversion actions
As with CustomerConversionGoal
,
whenever a ConversionAction
is added to the
Google Ads conversion customer with a new
category
and
origin
combination, Google Ads will
automatically create a new CampaignConversionGoal
for that combination.
The biddable
attribute of the campaign goal will be true
unless either of
the following conditions are met, in which case biddable
will be false
:
Any other
CampaignConversionGoal
for the campaign and the new action'scategory
hasbiddable
set tofalse
.The
category
andorigin
combination is in the following table.
category | origin |
---|---|
BEGIN_CHECKOUT | GOOGLE_HOSTED |
CONTACT | GOOGLE_HOSTED |
ENGAGEMENT | GOOGLE_HOSTED |
GET_DIRECTIONS | GOOGLE_HOSTED |
PAGE_VIEW | GOOGLE_HOSTED |
SIGNUP | GOOGLE_HOSTED |
PURCHASE | GOOGLE_HOSTED |
STORE_SALE | STORE |
STORE_VISIT | STORE |
Retrieve campaign goals
Use the following query to retrieve the list of CampaignConversionGoals
for your account. For convenience, you can include attributes of campaign
in the SELECT
clause, or use them in the WHERE
clause to only retrieve the
campaign goals for specific campaigns. The query below shows how to filter
by campaign.advertising_channel_type
as an example, but you could also filter
by other campaign attributes such as campaign.id
, campaign.name
, etc.
SELECT
campaign_conversion_goal.campaign,
campaign_conversion_goal.category,
campaign_conversion_goal.origin,
campaign_conversion_goal.biddable,
campaign.id,
campaign.name
FROM campaign_conversion_goal
WHERE campaign.advertising_channel_type = PERFORMANCE_MAX
Goal configuration level
The goal_config_level
of ConversionGoalCampaignConfig
indicates the source of goals for a campaign.
Campaigns with goal_config_level
of
CUSTOMER
are
using customer-level goals, while campaigns with goal_config_level
of
CAMPAIGN
are
using campaign-level goals.
Updating any of the CampaignConversionGoals
of a campaign or using a
custom goal will automatically change the campaign's
ConversionGoalCampaignConfig
to have goal_config_level=CAMPAIGN
. You can revert all campaign-specific goal
settings for a campaign and transition it back to using customer-level goals by
setting the goal_config_level
to CUSTOMER
.
Use the following query to retrieve the goal_config_level
for each campaign.
SELECT
conversion_goal_campaign_config.campaign,
conversion_goal_campaign_config.custom_conversion_goal,
conversion_goal_campaign_config.goal_config_level,
campaign.id,
campaign.name
FROM conversion_goal_campaign_config
Custom goals
Both CustomerConversionGoal
and
CampaignConversionGoal
express goals
based on combinations of category
and origin
. Custom goals provide the
additional flexibility of optimizing for specific conversion actions, regardless
of origin
or category
.
One scenario where this is useful is if you want to set a goal based on a subset
of goals for the same category
and origin
. For example, you might have three
conversion actions with category=DEFAULT
and origin=WEBSITE
, but on one
particular campaign, you only want to bid based on two of those conversion
actions. In this scenario, you could have the campaign use a custom goal that
only includes those two conversion actions, and set biddable=false
on the
CampaignConversionGoal
for category=DEFAULT
and origin=WEBSITE
.
The steps for creating and applying a custom goal to a campaign are as follows:
Create a
CustomConversionGoal
. Set theconversion_actions
repeated field to the list ofConversionAction
resource names that Google Ads should use for optimization, and set thename
to a name of your choosing.Update the campaign's
ConversionGoalCampaignConfig
, setting thecustom_conversion_goal
to the resource name of theCustomConversionGoal
from the previous step, and setting the operation'supdate_mask
tocustom_conversion_goal
.Update the
biddable
attribute of anyCampaignConversionGoal
as needed. For example, if you only want Google Ads to optimize for the conversion actions in the custom goal, setbiddable
tofalse
on eachCampaignConversionGoal
. If you want Google Ads to optimize for the conversion actions in the custom goal in addition to conversion actions for specific combinations ofcategory
andorigin
, ensure thatbiddable
istrue
for each correspondingCampaignConversionGoal
, andfalse
for eachCampaignConversionGoal
of other combinations oforigin
andcategory
.
Retrieving custom goals
Use the following query to retrieve all of the CustomConversionGoal
resources
in your account. The response will include custom goals from the effective
conversion account if your account is using cross-account conversion tracking.
SELECT
custom_conversion_goal.id,
custom_conversion_goal.name,
custom_conversion_goal.status,
custom_conversion_goal.conversion_actions
FROM custom_conversion_goal
In addition, you can include attributes of custom_conversion_goal
and
campaign
when querying the conversion_goal_campaign_config
resource. This
is useful for seeing how your campaigns, custom goals, and goal configurations
all relate to each other in a single response.
SELECT
conversion_goal_campaign_config.campaign,
conversion_goal_campaign_config.custom_conversion_goal,
conversion_goal_campaign_config.goal_config_level,
campaign.id,
campaign.name,
custom_conversion_goal.name,
custom_conversion_goal.status,
custom_conversion_goal.conversion_actions
FROM conversion_goal_campaign_config