Google Ads: Tips and best practices#
Reporting on Performance Max campaigns#
Performance Max campaigns are included in reports that use the Campaign or Asset Group resource level.
Reports using ad group or ad level dimensions will not include Performance Max campaigns, as these campaigns use asset groups instead of traditional ad groups or ads.
For more detailed analysis, select the Asset Group, Asset Group Asset, or Asset Group Product Group View resource levels to access additional attributes such as ad strength and performance labels, or to report on listing groups in retail campaigns.
Selecting the date range for a fetch#
The selected date segment determines the date range you can choose for a data fetch. Because of the requirements of the Google Ads API, the date range needs to start and end on the first day of the selected date segment. Adverity automatically changes the date range of the fetch to be compatible with this requirement. For example, if you select a custom date range of 15 March - 15 April with a monthly date segment, Adverity modifies the time range to 1 March - 1 April, and collects data for the months of March and April. To collect data for the month of March only, select a date range of 1 March - 1 March.
Weekly date segments start on Monday, monthly segments on the first day of the month, and quarterly segments on 1 January, 1 April, 1 July, and 1 October. Adverity always moves the date range backwards to the nearest boundary, so a fetch never returns less data than the range you selected.
Note
You can only select one of Day, Week, Month, or Quarter. The Year segment is not part of this group, so you can combine it with one of the others.
Previewing an image#
To be able to preview an image, you need to collect Image ad preview image URL dimension.
Using Adverity datastream templates#
Use Adverity Datastream Templates to save you time editing all the options in this connector.
Performance optimization#
Enrichment required to calculate the aggregate metric potential impressions.
Fetch field Advertising Channel to view campaign type in the UI.
Clients may be confused by the Google Ads Keyword Planner connector. This is used for researching search terms, not reporting on own paid performance.
For dashboards, if there are multiple Google Ads datastreams make sure widgets are filtered by datastream to avoid double counting metrics.
Understanding Performance Max campaigns#
Performance Max automates ad serving. (It started around Sept 2022). You’ll see it reported as Network = Mixed because the actual networks are not yet reported. Use Advertising Channel to report the type of campaign. Performance Max is reported at campaign level, they do not have an ad group.
Recommended datastream configurations#
Google Ads | Campaign Report | Campaign Level#
This is your standard datastream with basic metrics.
Report Type = Campaign Basic Performance
Resource Level = Campaign
Segments = Day, Network
Google Ads | Keyword Report#
Select ‘Custom’ report type and resource level ‘Keyword View’ or ‘Search Term View’. Segments may include Day, Network, Device, Keyword, Match type.
Google Ads | Custom Report | Gender#
If you require gender breakdown, select custom report type and resource level ‘Gender View’
Google Ads | Custom Report | Age Range#
If you require age breakdown, select custom report type and resource level ‘Age Range View’
Understanding campaign types#
The API calls this Advertising Channel you can add it to attributes in your datastream settings.
Understanding “Mixed” network reporting#
This is how Google Ads currently reports on its automated campaigns, this could be Performance Max, Discovery Ads and Dynamic search ads. Use the Advertising Channel to denote between those types.
Organic search data sources#
Google Ads only reports on paid search. The most common data sources our clients are using for organic search are:
Google Analytics: traffic by keywords
SEMRush: Competitors in Organic Search
Performance Max campaign access#
Performance Max-related data is only accessible in the ‘Campaign Basic Performance’ report type and ‘Campaign’ resource level. If you’re unable to view PMAX campaigns you’ve likely selected the wrong resource level.
Revenue field selection#
API field corresponding to revenue is “Conversion value (current model)” - the first part returns the sum of conversion values for all conversions, the second stands for the current attribution model selected in the Google Ads UI.
Available granularity levels#
The most commonly used resource levels are the following:
Account
Campaign
Ad Group (recommended level if not specified)
Ad
These are not the only levels available. Resource level offers more than 60 options, including views for specific reporting needs such as Geographic View, Age Range View, and Search Term View. The options shown depend on the fields you have already selected, so select your date dimension first if a level you expect is missing.
Connector limitations#
There are many different report combinations. You may require numerous datastreams to pull all the fields you require.
Search Impressions Share comes through as a percentage and must be enriched to calculate the aggregate metric potential impressions
Keywords report doesn’t allow ad group
Reach is only available at the Campaign resource level. The
metrics.unique_usersandmetrics.average_impression_frequency_per_usermetrics cannot be collected at ad group or ad level, which is why reach reports must be kept in a separate datastream from ad-level reportingCustom columns are not supported by the Google Ads API
Setup best practices#
Visualization considerations#
If there are multiple Google Ads datastreams make sure widgets are filtered by datastream to avoid double counting metrics.
Authentication setup#
All customers in one authorisation. You must have ‘Read only’ or higher permissions.
Data retention recommendations#
Local data retention: Split fetch into daily extracts using Day
Overwrite: Date range is Day
Using filters with Google Ads#
When configuring a Google Ads datastream, you can use the Custom Filter field in the Advanced section to filter your data before fetching results. This allows you to apply specific conditions to your queries, such as retrieving only certain campaign types or filtering by performance metrics.
When configuring the Custom Filter field, you are defining conditions for the WHERE clause described in the Google Ads documentation.
The filter expressions support a number of operators, including:
Equality operators:
=,!=Comparison operators:
>,>=,<,<=String matching:
LIKE,NOT LIKE,CONTAINS ANY,CONTAINS ALL,CONTAINS NONESet operators:
IN,NOT INNull checks:
IS NULL,IS NOT NULLDate ranges:
DURING,BETWEENRegular expressions:
REGEXP_MATCH,NOT REGEXP_MATCH
Example filter expressions:
metrics.clicks > 7
campaign.id IN (918735746)
campaign.name LIKE '%Brand%'
metrics.impressions > 0 AND metrics.clicks > 10
campaign.advertising_channel_type = 'PERFORMANCE_MAX'
Enter one condition per line. Adverity combines the conditions on separate
lines using AND.
Note
Adverity validates the Custom Filter field when you save the datastream only if Report type is set to Custom. For all other report types, an invalid filter is not detected until you fetch data, and the fetch fails with the error message returned by Google Ads.
For more complex queries, refer to the full query grammar reference in the Google Ads documentation.
Using GAQL queries#
Select GAQL in Report type to write a Google Ads Query Language (GAQL) query.
Only the GAQL text area is shown. All other selectors are hidden.
To filter by a specific date range, use the placeholders
{start}and{end}. Adverity replaces these with the selected fetch date range.
How it works#
Adverity retrieves data only from the
resultsarray in the API response.Column headers in the data extract use dot notation (for example:
campaign.id,metrics.clicks,segments.date).
Important
Data collected using a GAQL query is returned exactly as the Google Ads API provides it. None of the processing that Adverity applies to the other report types is applied to it. In particular:
Monetary values remain in micros. A
metrics.cost_microsvalue of1500000means 1.5 units of the account currency. For every other report type, Adverity divides these values for you. Divide them in a transformation if you use GAQL.Column headers are raw API names rather than the names shown in the Adverity interface.
Labels, geographic names, assets, and user lists are not resolved to their display names.
Warning
Only {start} and {end} are recognized as placeholders. Any other
curly bracket in the query causes the fetch to fail. If your query needs a
literal curly bracket, use one of the other report types instead.
Adverity does not check the syntax of a GAQL query when you save the datastream. Errors in the query are only reported when you fetch data.
Example GAQL queries#
select
user_list.id,
user_list.name
from user_list
limit 100
SELECT
campaign.id,
campaign.name,
metrics.clicks,
segments.date
FROM campaign
WHERE segments.date BETWEEN '{start}' AND '{end}'
For GAQL syntax guidance, see the Google Ads API GAQL documentation.