Google Ads: Tips and best practices
On this page
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.
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 reporting -
Custom 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 NONE -
Set operators:
IN,NOT IN -
Null checks:
IS NULL,IS NOT NULL -
Date ranges:
DURING,BETWEEN -
Regular 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.
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).
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.