Set up data connector
Quick Details
Data Connector Technology | API (Google Ads API v10) |
Data breakdown (segmentation) |
In the default configuration, your data is broken down by:
To choose a different configuration, see Data Mapping below. |
How far back we pull data | Every day, Singular pulls data from 7 days back. Once a week on Mondays, Singular pulls data from 30 days back. |
Time zone | Defined by the customer in Google settings, per account |
Is data available on the creative (ad) level? | Yes |
Does Singular show your creative assets? | Yes (excluding YouTube videos, which Singular only shows thumbnails for) |
Known Limitations |
|
Data Mapping
You can get your data in one of several breakdown configurations, each providing a different set of dimensions and each with its own advantages and limitations.
- The default configuration is Country. To choose a different one, contact Singular support.
- The Metro (DMA) configuration is only useful for US-based advertising, (DMA information is only available in the US). If some or all of your campaigns operate outside of the US, use the City configuration instead.
- The Keyword and Publisher configurations do not include data for UAC campaigns due to Google Ads API limitations.
- While the Keyword and Publisher configurations do not include country or other location dimensions, Singular may be able to provide the country based on the targeted countries settings.
- Age or Gender breakdowns are available as separate Demographic breakdowns (E.g Female/Male, 20-29, etc.)
Tips on terminology:
- Singular’s Creative corresponds to Google Ads’ Ad.
- Singular’s new Asset dimension corresponds to Google Ads’ Asset. We have added this new level of granularity because in Google, some types of ads, such as UAC (mobile app) ads, contain multiple assets.
- For descriptions on all the fields in Singular reporting, see the Singular Metrics and Dimensions Glossary.
Field in Singular UI | Field in Singular API | Field in Google Country Breakdown |
Dimensions | ||
Account ID | adn_account_id | customer.id |
Account Name | adn_account_name | customer.descriptiveName |
App Site ID | app_site_id | campaign.appCampaignSetting.appId |
Asset ID | asset_id | asset.id |
Asset Name | asset_name | asset.name (for assets of type Video we use “asset.youtubeVideoAsset.youtubeVideoTitle”) |
Campaign URL | adn_campaign_url | ad.finalUrl if not available, then ad.trackingUrlTemplate |
Country | country_field | geographicView.countryCriterionId |
Creative Format | creative_format | ad.type |
Creative ID | creative_id | adGroupAd.ad.id |
Creative Name | creative_name | adGroupAd.ad.name |
Creative Reported URL | creative_reported_url | adGroupAd.ad.finalUrls.0 |
Date | date_field | segments.date |
Final URL | final_url | campaign.finalUrls OR adGroupCriterion.finalUrls OR adGroup.ad.finalUrls |
Network Campaign ID | adn_campaign_id | campaign.id |
Network Campaign Name | adn_campaign_name | campaign.name |
Network Creative ID | adn_creative_id | adGroupAd.ad.id |
Network Creative Name | adn_creative_name | adGroupAd.ad.name |
Network Sub Campaign ID | adn_sub_campaign_id | adGroup.id |
Network Sub Campaign Name | adn_sub_campaign_name | adGroup.name |
OS | os | campaign.appCampaignSetting.appStore |
Platform | platform | A combination of campaign.appCampaignSetting.appStore and segments.device |
Public Id | site_public_id | campaign.appCampaignSetting.appId |
Retargeting | retention | campaign.advertisingChannelSubType == ‘APP_CAMPAIGN_FOR_ENGAGEMENT_’ |
Sub Ad Network | adn_subadnetwork | segments.adNetworkType |
Target Countries | target_countries_str | See country |
Text | creative_text | To create this field, we take any available text fields in the ad, which may differ based on the ad type. E.g., for UAC, the field in Google Ads is asset.textAsset.text. If there is more than one text (e.g. headline + description), we concatenate them into one string. |
Timezone | adn_timezone | customer.timeZone (Singular receives time data from Adwords in the client's timezone and converts it to UTC.) |
Tracking URL | tracking_url | adGroupAd.ad.trackingUrlTemplate |
Asset Performance
|
asset_performance | performance_label |
Metrics | ||
Cost | adn_cost | metrics.costMicro |
Network Clicks | adn_clicks | metrics.clicks |
Network Impressions | adn_impressions | metrics.impressions |
Network Installs | adn_installs | metrics.conversions / metrics.allConversions |
Original Cost | adn_original_cost | metrics.costMicro |
Original Currency | adn_original_currency | customer.currencyCode |
Video Views | video_views | metrics.videoViews |
Completed Video Views | completed_video_views | metrics.video_quartile_p100_rate |
Video Views - 25% | video_views_25pct | metrics.video_quartile_p25_rate |
Video Views - 50% | video_views_50pct | metrics.video_quartile_p50_rate |
Video Views - 75% | video_views_75pct | metrics.video_quartile_p75_rate |
Singular also supports pulling campaign properties for this partner - please see more details here.
Field in Singular UI | Field in Singular API | Field in Google Metro Breakdown |
Dimensions | ||
Account ID | adn_account_id | customer.id |
Account Name | adn_account_name | customer.descriptiveName |
App Site ID | app_site_id | campaign.appCampaignSetting.appId |
Asset ID | asset_id | asset.id |
Asset Name | asset_name | asset.name (for assets of type Video we use “asset.youtubeVideoAsset.youtubeVideoTitle”) |
Campaign URL | adn_campaign_url | ad.finalUrl if not available, then ad.trackingUrlTemplate |
Country | country_field | geographicView.countryCriterionId |
Creative Format | creative_format | ad.type |
Creative ID | creative_id | adGroupAd.ad.id |
Creative Name | creative_name | adGroupAd.ad.name |
Creative Reported URL | creative_reported_url | adGroupAd.ad.finalUrls.0 |
Date | date_field | segments.date |
DMA Name |
dma_name_field |
geo_target_metro |
Final URL | final_url | campaign.finalUrls OR adGroupCriterion.finalUrls OR adGroup.ad.finalUrls |
Network Campaign ID | adn_campaign_id | campaign.id |
Network Campaign Name | adn_campaign_name | campaign.name |
Network Creative ID | adn_creative_id | adGroupAd.ad.id |
Network Creative Name | adn_creative_name | adGroupAd.ad.name |
Network Sub Campaign ID | adn_sub_campaign_id | adGroup.id |
Network Sub Campaign Name | adn_sub_campaign_name | adGroup.name |
OS | os | campaign.appCampaignSetting.appStore |
Platform | platform | A combination of campaign.appCampaignSetting.appStore and segments.device |
Public Id | site_public_id | campaign.appCampaignSetting.appId |
Region |
region_field |
geo_target_state |
Retargeting | retention | campaign.advertisingChannelSubType == ‘APP_CAMPAIGN_FOR_ENGAGEMENT_’ |
Sub Ad Network | adn_subadnetwork | segments.adNetworkType |
Target Countries | target_countries_str | See country |
Text | creative_text | To create this field, we take any available text fields in the ad, which may differ based on the ad type. E.g., for UAC, the field in Google Ads is asset.textAsset.text. If there is more than one text (e.g. headline + description), we concatenate them into one string. |
Timezone | adn_timezone | customer.timeZone (with some extra logic) |
Tracking URL | tracking_url | adGroupAd.ad.trackingUrlTemplate |
Metrics | ||
Cost | adn_cost | metrics.costMicro |
Network Clicks | adn_clicks | metrics.clicks |
Network Impressions | adn_impressions | metrics.impressions |
Network Installs | adn_installs | metrics.conversions / metrics.allConversions |
Original Cost | adn_original_cost | metrics.costMicro |
Original Currency | adn_original_currency | customer.currencyCode |
Video Views | video_views | metrics.videoViews |
Completed Video Views | completed_video_views | metrics.video_quartile_p100_rate |
Video Views - 25% | video_views_25pct | metrics.video_quartile_p25_rate |
Video Views - 50% | video_views_50pct | metrics.video_quartile_p50_rate |
Video Views - 75% | video_views_75pct | metrics.video_quartile_p75_rate |
Singular also supports pulling campaign properties for this partner - please see more details here.
Field in Singular UI | Field in Singular API | Field in Google City Breakdown |
Dimensions | ||
Account ID | adn_account_id | customer.id |
Account Name | adn_account_name | customer.descriptiveName |
App Site ID | app_site_id | campaign.appCampaignSetting.appId |
Asset ID | asset_id | asset.id |
Asset Name | asset_name | asset.name (for assets of type Video we use “asset.youtubeVideoAsset.youtubeVideoTitle”) |
Campaign URL | adn_campaign_url | ad.finalUrl if not available, then ad.trackingUrlTemplate |
City |
city_field |
geo_target_city |
Country | country_field | geographicView.countryCriterionId |
Creative Format | creative_format | ad.type |
Creative ID | creative_id | adGroupAd.ad.id |
Creative Name | creative_name | adGroupAd.ad.name |
Creative Reported URL | creative_reported_url | adGroupAd.ad.finalUrls.0 |
Date | date_field | segments.date |
Final URL | final_url | campaign.finalUrls OR adGroupCriterion.finalUrls OR adGroup.ad.finalUrls |
Network Campaign ID | adn_campaign_id | campaign.id |
Network Campaign Name | adn_campaign_name | campaign.name |
Network Creative ID | adn_creative_id | adGroupAd.ad.id |
Network Creative Name | adn_creative_name | adGroupAd.ad.name |
Network Sub Campaign ID | adn_sub_campaign_id | adGroup.id |
Network Sub Campaign Name | adn_sub_campaign_name | adGroup.name |
OS | os | campaign.appCampaignSetting.appStore |
Platform | platform | A combination of campaign.appCampaignSetting.appStore and segments.device |
Public Id | site_public_id | campaign.appCampaignSetting.appId |
Region |
region_field |
geo_target_region |
Retargeting | retention | campaign.advertisingChannelSubType == ‘APP_CAMPAIGN_FOR_ENGAGEMENT_’ |
Sub Ad Network | adn_subadnetwork | segments.adNetworkType |
Target Countries | target_countries_str | See country |
Text | creative_text | To create this field, we take any available text fields in the ad, which may differ based on the ad type. E.g., for UAC, the field in Google Ads is asset.textAsset.text. If there is more than one text (e.g. headline + description), we concatenate them into one string. |
Timezone | adn_timezone | customer.timeZone (with some extra logic) |
Tracking URL | tracking_url | adGroupAd.ad.trackingUrlTemplate |
Metrics | ||
Cost | adn_cost | metrics.costMicro |
Network Clicks | adn_clicks | metrics.clicks |
Network Impressions | adn_impressions | metrics.impressions |
Network Installs | adn_installs | metrics.conversions / metrics.allConversions |
Original Cost | adn_original_cost | metrics.costMicro |
Original Currency | adn_original_currency | customer.currencyCode |
Video Views | video_views | metrics.videoViews |
Completed Video Views | completed_video_views | metrics.video_quartile_p100_rate |
Video Views - 25% | video_views_25pct | metrics.video_quartile_p25_rate |
Video Views - 50% | video_views_50pct | metrics.video_quartile_p50_rate |
Video Views - 75% | video_views_75pct | metrics.video_quartile_p75_rate |
Singular also supports pulling campaign properties for this partner - please see more details here.
Field in Singular UI | Field in Singular API | Field in Google Keyword Breakdown |
Dimensions | ||
Account ID | adn_account_id | customer.id |
Account Name | adn_account_name | customer.descriptiveName |
App Site ID | app_site_id | campaign.appCampaignSetting.appId |
Asset ID | asset_id | asset.id |
Asset Name | asset_name | asset.name (for assets of type Video we use “asset.youtubeVideoAsset.youtubeVideoTitle”) |
Campaign URL | adn_campaign_url | ad.finalUrl if not available, then ad.trackingUrlTemplate |
Creative Format | creative_format | ad.type |
Creative ID | creative_id | adGroupAd.ad.id |
Creative Name | creative_name | adGroupAd.ad.name |
Creative Reported URL | creative_reported_url | adGroupAd.ad.finalUrls.0 |
Date | date_field | segments.date |
Final URL | final_url | campaign.finalUrls OR adGroupCriterion.finalUrls OR adGroup.ad.finalUrls |
Keyword | keyword | ad_group_criterion.keyword.text |
Keyword ID | keyword_id | ad_group_criterion.criterion_id |
Keyword Match Type | keyword_match_type | ad_group_criterion.keyword.match_type |
Network Campaign ID | adn_campaign_id | campaign.id |
Network Campaign Name | adn_campaign_name | campaign.name |
Network Creative ID | adn_creative_id | adGroupAd.ad.id |
Network Creative Name | adn_creative_name | adGroupAd.ad.name |
Network Sub Campaign ID | adn_sub_campaign_id | adGroup.id |
Network Sub Campaign Name | adn_sub_campaign_name | adGroup.name |
OS | os | campaign.appCampaignSetting.appStore |
Platform | platform | A combination of campaign.appCampaignSetting.appStore and segments.device |
Public Id | site_public_id | campaign.appCampaignSetting.appId |
Retargeting | retention | campaign.advertisingChannelSubType == ‘APP_CAMPAIGN_FOR_ENGAGEMENT_’ |
Sub Ad Network | adn_subadnetwork | segments.adNetworkType |
Target Countries | target_countries_str | See country |
Text | creative_text | To create this field, we take any available text fields in the ad, which may differ based on the ad type. E.g., for UAC, the field in Google Ads is asset.textAsset.text. If there is more than one text (e.g. headline + description), we concatenate them into one string. |
Timezone | adn_timezone | customer.timeZone (with some extra logic) |
Tracking URL | tracking_url | adGroupAd.ad.trackingUrlTemplate |
Metrics | ||
Cost | adn_cost | metrics.costMicro |
Network Clicks | adn_clicks | metrics.clicks |
Network Impressions | adn_impressions | metrics.impressions |
Network Installs | adn_installs | metrics.conversions / metrics.allConversions |
Original Cost | adn_original_cost | metrics.costMicro |
Original Currency | adn_original_currency | customer.currencyCode |
Video Views | video_views | metrics.videoViews |
Completed Video Views | completed_video_views | metrics.video_quartile_p100_rate |
Video Views - 25% | video_views_25pct | metrics.video_quartile_p25_rate |
Video Views - 50% | video_views_50pct | metrics.video_quartile_p50_rate |
Video Views - 75% | video_views_75pct | metrics.video_quartile_p75_rate |
Singular also supports pulling campaign properties for this partner - please see more details here.
Field in Singular UI | Field in Singular API | Field in Google Keyword + Quality Score Breakdown |
Dimensions | ||
Account ID | adn_account_id | customer.id |
Account Name | adn_account_name | customer.descriptiveName |
App Site ID | app_site_id | campaign.appCampaignSetting.appId |
Asset ID | asset_id | asset.id |
Asset Name | asset_name | asset.name (for assets of type Video we use “asset.youtubeVideoAsset.youtubeVideoTitle”) |
Campaign URL | adn_campaign_url | ad.finalUrl if not available, then ad.trackingUrlTemplate |
Creative Format | creative_format | ad.type |
Creative ID | creative_id | adGroupAd.ad.id |
Creative Name | creative_name | adGroupAd.ad.name |
Creative Reported URL | creative_reported_url | adGroupAd.ad.finalUrls.0 |
Date | date_field | segments.date |
Final URL | final_url | campaign.finalUrls OR adGroupCriterion.finalUrls OR adGroup.ad.finalUrls |
Keyword | keyword | ad_group_criterion.keyword.text |
Keyword ID | keyword_id | ad_group_criterion.criterion_id |
Keyword Match Type | keyword_match_type | ad_group_criterion.keyword.match_type |
Network Campaign ID | adn_campaign_id | campaign.id |
Network Campaign Name | adn_campaign_name | campaign.name |
Network Creative ID | adn_creative_id | adGroupAd.ad.id |
Network Creative Name | adn_creative_name | adGroupAd.ad.name |
Network Sub Campaign ID | adn_sub_campaign_id | adGroup.id |
Network Sub Campaign Name | adn_sub_campaign_name | adGroup.name |
OS | os | campaign.appCampaignSetting.appStore |
Platform | platform | A combination of campaign.appCampaignSetting.appStore and segments.device |
Public Id | site_public_id | campaign.appCampaignSetting.appId |
Quality Score |
quality_score |
historicalQualityScore |
Retargeting | retention | campaign.advertisingChannelSubType == ‘APP_CAMPAIGN_FOR_ENGAGEMENT_’ |
Sub Ad Network | adn_subadnetwork | segments.adNetworkType |
Target Countries | target_countries_str | See country |
Text | creative_text | To create this field, we take any available text fields in the ad, which may differ based on the ad type. E.g., for UAC, the field in Google Ads is asset.textAsset.text. If there is more than one text (e.g. headline + description), we concatenate them into one string. |
Timezone | adn_timezone | customer.timeZone (with some extra logic) |
Tracking URL | tracking_url | adGroupAd.ad.trackingUrlTemplate |
Search Impression Share (Google) | search_impression_share | search_impression_share |
Search Top Impression Share (Google) | search_top_impression_share | search_top_impression_share |
Search Absolute Top Impression Share (Google) | search_absolute_top_impression_share | search_absolute_top_impression_share |
Metrics | ||
Cost | adn_cost | metrics.costMicro |
Network Clicks | adn_clicks | metrics.clicks |
Network Impressions | adn_impressions | metrics.impressions |
Network Installs | adn_installs | metrics.conversions / metrics.allConversions |
Original Cost | adn_original_cost | metrics.costMicro |
Original Currency | adn_original_currency | customer.currencyCode |
Video Views | video_views | metrics.videoViews |
Completed Video Views | completed_video_views | metrics.video_quartile_p100_rate |
Video Views - 25% | video_views_25pct | metrics.video_quartile_p25_rate |
Video Views - 50% | video_views_50pct | metrics.video_quartile_p50_rate |
Video Views - 75% | video_views_75pct | metrics.video_quartile_p75_rate |
Singular also supports pulling campaign properties for this partner - please see more details here.
Field in Singular UI | Field in Singular API | Field in Google Publisher Breakdown |
Dimensions | ||
Account ID | adn_account_id | customer.id |
Account Name | adn_account_name | customer.descriptiveName |
App Site ID | app_site_id | campaign.appCampaignSetting.appId |
Asset ID | asset_id | asset.id |
Asset Name | asset_name | asset.name (for assets of type Video we use “asset.youtubeVideoAsset.youtubeVideoTitle”) |
Campaign URL | adn_campaign_url | ad.finalUrl if not available, then ad.trackingUrlTemplate |
Creative Format | creative_format | ad.type |
Creative ID | creative_id | adGroupAd.ad.id |
Creative Name | creative_name | adGroupAd.ad.name |
Creative Reported URL | creative_reported_url | adGroupAd.ad.finalUrls.0 |
Date | date_field | segments.date |
Final URL | final_url | campaign.finalUrls OR adGroupCriterion.finalUrls OR adGroup.ad.finalUrls |
Network Campaign ID | adn_campaign_id | campaign.id |
Network Campaign Name | adn_campaign_name | campaign.name |
Network Creative ID | adn_creative_id | adGroupAd.ad.id |
Network Creative Name | adn_creative_name | adGroupAd.ad.name |
Network Sub Campaign ID | adn_sub_campaign_id | adGroup.id |
Network Sub Campaign Name | adn_sub_campaign_name | adGroup.name |
OS | os | campaign.appCampaignSetting.appStore |
Platform | platform | A combination of campaign.appCampaignSetting.appStore and segments.device |
Public Id | site_public_id | campaign.appCampaignSetting.appId |
Publisher Site Name | publisher_site_name | adGroupCriterion.placement.url |
Retargeting | retention | campaign.advertisingChannelSubType == ‘APP_CAMPAIGN_FOR_ENGAGEMENT_’ |
Sub Ad Network | adn_subadnetwork | segments.adNetworkType |
Target Countries | target_countries_str | See country |
Text | creative_text | To create this field, we take any available text fields in the ad, which may differ based on the ad type. E.g., for UAC, the field in Google Ads is asset.textAsset.text. If there is more than one text (e.g. headline + description), we concatenate them into one string. |
Timezone | adn_timezone | customer.timeZone (with some extra logic) |
Tracking URL | tracking_url | adGroupAd.ad.trackingUrlTemplate |
Metrics | ||
Cost | adn_cost | metrics.costMicro |
Network Clicks | adn_clicks | metrics.clicks |
Network Impressions | adn_impressions | metrics.impressions |
Network Installs | adn_installs | metrics.conversions / metrics.allConversions |
Original Cost | adn_original_cost | metrics.costMicro |
Original Currency | adn_original_currency | customer.currencyCode |
Video Views | video_views | metrics.videoViews |
Completed Video Views | completed_video_views | metrics.video_quartile_p100_rate |
Video Views - 25% | video_views_25pct | metrics.video_quartile_p25_rate |
Video Views - 50% | video_views_50pct | metrics.video_quartile_p50_rate |
Video Views - 75% | video_views_75pct | metrics.video_quartile_p75_rate |
Singular also supports pulling campaign properties for this partner - please see more details here.
Field in Singular UI | Field in Singular API | Field in Google Shopping Breakdown |
Dimensions | ||
Account ID | adn_account_id | customer.id |
Account Name | adn_account_name | customer.descriptiveName |
App Site ID | app_site_id | campaign.appCampaignSetting.appId |
Asset ID | asset_id | asset.id |
Asset Name | asset_name | asset.name (for assets of type Video we use “asset.youtubeVideoAsset.youtubeVideoTitle”) |
Brand | brand | brand |
Campaign URL | adn_campaign_url | ad.finalUrl if not available, then ad.trackingUrlTemplate |
City |
city_field |
geo_target_city |
Country | country_field | geographicView.countryCriterionId |
Creative Format | creative_format | ad.type |
Creative ID | creative_id | adGroupAd.ad.id |
Creative Name | creative_name | adGroupAd.ad.name |
Creative Reported URL | creative_reported_url | adGroupAd.ad.finalUrls.0 |
Date | date_field | segments.date |
DMA Name |
dma_name_field |
geo_target_metro |
Final URL | final_url | campaign.finalUrls OR adGroupCriterion.finalUrls OR adGroup.ad.finalUrls |
Keyword | keyword | ad_group_criterion.keyword.text |
Merchant ID | merchant_id | merchant_id |
Network Campaign ID | adn_campaign_id | campaign.id |
Network Campaign Name | adn_campaign_name | campaign.name |
Network Creative ID | adn_creative_id | adGroupAd.ad.id |
Network Creative Name | adn_creative_name | adGroupAd.ad.name |
Network Sub Campaign ID | adn_sub_campaign_id | adGroup.id |
Network Sub Campaign Name | adn_sub_campaign_name | adGroup.name |
OS | os | campaign.appCampaignSetting.appStore |
Platform | platform | A combination of campaign.appCampaignSetting.appStore and segments.device |
Product Item ID | product_item_id | product_item_id |
Public Id | site_public_id | campaign.appCampaignSetting.appId |
Publisher Site Name | publisher_site_name | adGroupCriterion.placement.url |
Retargeting | retention | campaign.advertisingChannelSubType == ‘APP_CAMPAIGN_FOR_ENGAGEMENT_’ |
Sub Ad Network | adn_subadnetwork | segments.adNetworkType |
Target Countries | target_countries_str | See country |
Text | creative_text | To create this field, we take any available text fields in the ad, which may differ based on the ad type. E.g., for UAC, the field in Google Ads is asset.textAsset.text. If there is more than one text (e.g. headline + description), we concatenate them into one string. |
Timezone | adn_timezone | customer.timeZone (with some extra logic) |
Tracking URL | tracking_url | adGroupAd.ad.trackingUrlTemplate |
Metrics | ||
Cost | adn_cost | metrics.costMicro |
Network Clicks | adn_clicks | metrics.clicks |
Network Impressions | adn_impressions | metrics.impressions |
Network Installs | adn_installs | metrics.conversions / metrics.allConversions |
Original Cost | adn_original_cost | metrics.costMicro |
Original Currency | adn_original_currency | customer.currencyCode |
Video Views | video_views | metrics.videoViews |
Completed Video Views | completed_video_views | metrics.video_quartile_p100_rate |
Video Views - 25% | video_views_25pct | metrics.video_quartile_p25_rate |
Video Views - 50% | video_views_50pct | metrics.video_quartile_p50_rate |
Video Views - 75% | video_views_75pct | metrics.video_quartile_p75_rate |
Singular also supports pulling campaign properties for this partner - please see more details here.
Field in Singular UI | Field in Singular API | Field in Google Video Breakdown |
Dimensions | ||
Account ID | adn_account_id | customer.id |
Account Name | adn_account_name | customer.descriptiveName |
App Site ID | app_site_id | campaign.appCampaignSetting.appId |
Asset ID | asset_id | asset.id |
Asset Name | asset_name | asset.name (for assets of type Video we use “asset.youtubeVideoAsset.youtubeVideoTitle”) |
Campaign URL | adn_campaign_url | ad.finalUrl if not available, then ad.trackingUrlTemplate |
City |
city_field |
geo_target_city |
Country | country_field | geographicView.countryCriterionId |
Creative Format | creative_format | ad.type |
Creative ID | creative_id | adGroupAd.ad.id |
Creative Name | creative_name | adGroupAd.ad.name |
Creative Reported URL | creative_reported_url | adGroupAd.ad.finalUrls.0 |
Date | date_field | segments.date |
DMA Name |
dma_name_field |
geo_target_metro |
Final URL | final_url | campaign.finalUrls OR adGroupCriterion.finalUrls OR adGroup.ad.finalUrls |
Keyword | keyword | ad_group_criterion.keyword.text |
Network Campaign ID | adn_campaign_id | campaign.id |
Network Campaign Name | adn_campaign_name | campaign.name |
Network Creative ID | adn_creative_id | adGroupAd.ad.id |
Network Creative Name | adn_creative_name | adGroupAd.ad.name |
Network Sub Campaign ID | adn_sub_campaign_id | adGroup.id |
Network Sub Campaign Name | adn_sub_campaign_name | adGroup.name |
OS | os | campaign.appCampaignSetting.appStore |
Platform | platform | A combination of campaign.appCampaignSetting.appStore and segments.device |
Public Id | site_public_id | campaign.appCampaignSetting.appId |
Publisher Site Name | publisher_site_name | adGroupCriterion.placement.url |
Retargeting | retention | campaign.advertisingChannelSubType == ‘APP_CAMPAIGN_FOR_ENGAGEMENT_’ |
Sub Ad Network | adn_subadnetwork | segments.adNetworkType |
Target Countries | target_countries_str | See country |
Text | creative_text | To create this field, we take any available text fields in the ad, which may differ based on the ad type. E.g., for UAC, the field in Google Ads is asset.textAsset.text. If there is more than one text (e.g. headline + description), we concatenate them into one string. |
Timezone | adn_timezone | customer.timeZone (with some extra logic) |
Tracking URL | tracking_url | adGroupAd.ad.trackingUrlTemplate |
Video ID | video_id | video_id |
Video Channel ID | video_channel_id | video_channel_id |
Video Duration Millis | video_duration_millis | video_duration_millis |
Video Title | video_title | video_title |
Metrics | ||
Cost | adn_cost | metrics.costMicro |
Network Clicks | adn_clicks | metrics.clicks |
Network Impressions | adn_impressions | metrics.impressions |
Network Installs | adn_installs | metrics.conversions / metrics.allConversions |
Original Cost | adn_original_cost | metrics.costMicro |
Original Currency | adn_original_currency | customer.currencyCode |
Video Views | video_views | metrics.videoViews |
Completed Video Views | completed_video_views | metrics.video_quartile_p100_rate |
Video Views - 25% | video_views_25pct | metrics.video_quartile_p25_rate |
Video Views - 50% | video_views_50pct | metrics.video_quartile_p50_rate |
Video Views - 75% | video_views_75pct | metrics.video_quartile_p75_rate |
Singular also supports pulling campaign properties for this partner - please see more details here.
Special Setup Instructions
Authentication
See the Data Connectors FAQ for general information about setting up a data connector.
When you set up the AdWords data connector you are asked to log in using a Google Ads account. We highly recommend signing in with a Google Ads Manager account (previously known as an MCC account).
A Google Manager account (MCC) gives us access to all your advertising accounts at once. Then you can pick and choose from the list which accounts you want to include in your Singular reports. If you don't use a Manager account (MCC), you will have to add a separate data connector for each advertising account.
To locate your customer ID (for both manager and individual accounts):
- Log into your Google Ads account.
- Click the help icon in the top right corner.
- Find Customer ID at the bottom of the menu.
Conversion Events
In addition to the default metrics in the table above, Singular can pull any metrics that you need from Google Ads and display their stats in your Singular reports.
If you're seeking more detailed insights at the asset level, consider adding 'biddable-app-post-install-conversion' as an events. This data is pulled from Google Ad's API. This feature allows you to get additional data on 'in-app actions' events into their respective campaigns. It's important to note that conversion events lack cohort data and are only associated with the 'actual' cohort period."
To setup conversion events in Singular, take the following steps:
- In Singular, go to Settings > Events. If you have both Custom Events and Conversion Events tabs, select Conversion Events.
- Click New Event.
-
In the AdWords dropdown, you will see a list of the metrics available from AdWords. You can map each activity into a separate Singular event or combine multiple metrics into a single event.
The next day, when Singular pulls daily data for your account, it will pull these activities' stats as well.
- After Singular has populated the new conversion event(s) with some data, when you run a report in the Reports page, choose the conversion event(s) from the Events dropdown.
FAQ and Troubleshooting
To locate your customer ID (for both manager and individual accounts):
- Log into your Google Ads account.
- Click the help icon in the top right corner.
- Find Customer ID at the bottom of the menu.
For more information, see About Google Ads Manager Accounts in Google's documentation.
In your Google Ads Manager account, go to Settings > Network Settings. Ensure that you've toggled on API access. Then attempt to re-authenticate your Google Ads Manager account in Singular.
When you use a breakdown that doesn't provide country information, Singular tries to provide country granularity anyway, by looking at the campaign targeting settings in Google and/or tracker data (if we have it):
- If the campaign is targeted at one country, we'll show that country in the report.
- If there are multiple countries targeted, and we also have tracker data for the same campaign, we'll estimate the cost per country based on the ratio of installs per country in the tracker data. See How is the Cost metric calculated per country?
Google Ads tracks different types of what it calls “conversion actions” - including app downloads, user sign-ups, purchases, and more. By default, since most of our customers are interested in app installs, we pull conversions of the type download and show their metrics in the Network Installs field in our reports.
Note: Network Installs is a metric in Singular that reflects the number of installs reported by the ad network - not to be confused with Installs, which is usually based on data from the attribution tracker. For Adwords, Network Installs is the number of "first_open" conversions reported by Adwords.
When you build a report query, you can select Network Installs in the Source Metrics section. See What are Source Metrics? for more information.
Yes, Singular pulls creative metrics as well as the creatives themselves (images, texts, videos, etc.). This is true whether you use the old version of the AdWords integration or the new one. However, only the new integration shows creatives for UAC campaigns.
Singular’s Creative corresponds to Google Ads’ Ad.
Singular’s new Asset dimension corresponds to Google Ads’ Asset. We have added this new level of granularity because in Google, some types of ads, such as UAC (mobile app) ads, contain multiple assets. Installs reported for asset as pulled from the metric "biddable_app_install_conversions"; which is different from other granularities that are using "metrics.conversions"
Singular supports the following Google ad types:
Ad Type | Ad Asset(s) Included | ||
Text | Image | Video | |
Gmail | |||
Hotel | |||
Local | |||
Text | |||
Expanded Text | |||
Expanded Dynamic Search | |||
Shopping Product | |||
Shopping Smart | |||
Call Only | |||
HTML5 Upload | |||
Dynamic HTML5 | |||
Responsive Search | |||
Legacy Responsive Search | |||
Legacy App Install | |||
Responsive Display | |||
Video | |||
VIDEO BUMPER | |||
VIDEO NON SKIPPABLE IN STREAM | |||
VIDEO OUTSTREAM | |||
VIDEO TRUEVIEW DISCOVERY | |||
VIDEO TRUEVIEW IN STREAM | |||
VIDEO RESPONSIVE | |||
App (UAC) | |||
App Engagement (UAC - deep linked ads) | |||
APP PRE REGISTRATION |
Note: Google's name for the ad type (“App Engagement”, “Responsive Search” etc.) does not appear in your Singular reports. The Creative Type dimension you see in your reports is unrelated - it shows whether the creative is an image, text, or video.
This can happen when there are discrepancies between the data that Google provides in different endpoints for the same campaigns.
When Singular pulls data from the Google Ads API, it performs the following steps:
- Pulls data in your selected breakdown from the corresponding Google Ads API endpoint, in this case - the location_view endpoint, which provides country information.
- Pulls data for the same campaigns from Google's campaign endpoint to get the full metrics.
- Compares the metrics for each campaign and if necessary, adds a row to align the data. See the illustration below for an example. Note that the campaign-level data is considered the source of truth.
Google’s privacy policy does not allow us to download YouTube videos. Therefore, for video creatives, we include the video thumbnail + a link to the video on YouTube.
The video views metric is a count of how many video views were initiated. It counts all impressions of your video, whether the video was viewed in its entirety or whether it was looked at for only a second.
The video views - 25%, 50%, and 75% metrics calculate how many of those impressions were people who viewed your video to the 25%, 50%, or 75% mark respectively. Similarly, the completed video views metric only calculates those impressions where the video was viewed in its entirety. To calculate these values, we use the formula suggested by Google: impressions * video_view_rate.
Depending on your needs, you may want to use one of the percentage metrics instead of the video views metric. See the "Video played to" section in Google's documentation.
Note: There's an inherent discrepancy between the views in YouTube videos and the views shown in Google Ads account. YouTube views and Google Ads account views are calculated using different metrics.
- YouTube counts a view as someone watching the video for at least 30 seconds or until the end of the video, whichever comes first.
- Google Ads counts a view as an ad impression that is counted when the ad is shown on YouTube or a partner site.
- As a result, we may see a difference between the views reported in YouTube analytics and the views shown in Google Ads account.
- Additionally, YouTube analytics are updated in real-time, while Google Ads data can take up to 48 hours to update.
Furthermore, YouTube ads and view metrics work differently from traditional online ads. When running a YouTube ad, there will be a charge only when someone watches the ad for 30 seconds or interacts with it in some way, such as clicking on a call-to-action overlay or a companion banner. Therefore, it is important to focus on engagement metrics, such as view-through rate and earned actions, rather than just views to gauge the effectiveness of YouTube ads.
A Media Bundle is another type of creative, along with "Image", "Text", and "Video". If any of your ad creatives are media bundles, you will be able to see metrics for these creatives, but not the creative itself, because the Google Ads API does not provide the creative.
For UAC creatives, Google does not provide a name, only an ID.