Skip to content

Resources and fields reference

This page lists every field you can put in SELECT, WHERE or ORDER BY, grouped by resource, with its JSON type and a real example value. Field names are written as you type them in GAQL (snake_case); the response uses the camelCase form shown in the JSON path column (see Reporting › Result shape).

Types

GAQL type JSON representation Example Notes
int64 string "22245080429", "345860000" All ids, counts and micros. Parse to a 64-bit integer.
double number 286.0, 127.06, 0.009998 Conversions, values, rates.
string string "DMS_GG_AND_SEA_VALUE_202512"
enum string "ENABLED" Fixed set of upper-case constants.
bool boolean false
date string YYYY-MM-DD "2026-10-25"
resource string "customers/5423891542/campaigns/22245080429" A resource name.
list array of strings ["https://play.google.com/…"]

Resources

Five resources can appear in FROM. The attributed resources column lists the attribute prefixes you may select together with the resource's own fields; metrics and segments are available on the first four only.

Resource Attributed resources (selectable prefixes) Metrics & segments One row per
customer customer yes account
campaign customer, campaign, campaign_budget yes campaign
ad_group customer, campaign, ad_group yes ad group
ad_group_ad customer, campaign, ad_group, ad_group_ad yes ad
geo_target_constant geo_target_constant no country (14 rows)

customer

Field Type JSON path Example Description
customer.id int64 customer.id "5423891542" Customer id (same as in the URL)
customer.descriptive_name string customer.descriptiveName "Dragon Merge Saga (Android)" Game name and OS
customer.currency_code string customer.currencyCode "USD" Always USD
customer.time_zone string customer.timeZone "Etc/UTC" Report dates are UTC days
customer.manager bool customer.manager false Client accounts are never managers
customer.status enum customer.status "ENABLED"
customer.resource_name resource customer.resourceName "customers/5423891542"

campaign

Field Type JSON path Example Description
campaign.id int64 campaign.id "22245080429"
campaign.name string campaign.name "DMS_GG_AND_SEA_VALUE_202512" Follows {GAME}_{PLATFORM}_{OS}_{GEO}_{OBJECTIVE}_{YYYYMM} — see Accounts
campaign.status enum campaign.status "ENABLED" ENABLED or PAUSED
campaign.serving_status enum campaign.servingStatus "SERVING" SERVING or ENDED
campaign.advertising_channel_type enum campaign.advertisingChannelType "VIDEO" Always VIDEO
campaign.advertising_channel_sub_type enum campaign.advertisingChannelSubType "VIDEO_ACTION" Always VIDEO_ACTION
campaign.start_date date campaign.startDate "2025-12-10"
campaign.end_date date campaign.endDate "2037-12-30" 2037-12-30 means no end date
campaign.app_campaign_setting.app_id string campaign.appCampaignSetting.appId "com.novaplay.dragonmerge" Store app id of the promoted game (Android package name or iOS id…)
campaign.app_campaign_setting.app_store enum campaign.appCampaignSetting.appStore "GOOGLE_APP_STORE" GOOGLE_APP_STORE or APPLE_APP_STORE
campaign.app_campaign_setting.bidding_strategy_goal_type enum campaign.appCampaignSetting.biddingStrategyGoalType "OPTIMIZE_RETURN_ON_ADVERTISING_SPEND" OPTIMIZE_INSTALLS_TARGET_INSTALL_COST for INSTALL campaigns, OPTIMIZE_RETURN_ON_ADVERTISING_SPEND for VALUE campaigns
campaign.bidding_strategy_type enum campaign.biddingStrategyType "MAXIMIZE_CONVERSION_VALUE" TARGET_CPA (INSTALL) or MAXIMIZE_CONVERSION_VALUE (VALUE)
campaign.resource_name resource campaign.resourceName "customers/5423891542/campaigns/22245080429"
campaign.campaign_budget resource campaign.campaignBudget "customers/5423891542/campaignBudgets/32245080429" Link to the budget resource
campaign_budget.id int64 campaignBudget.id "32245080429"
campaign_budget.amount_micros int64 campaignBudget.amountMicros "400000000" Daily budget in micros ($400.00)
campaign_budget.resource_name resource campaignBudget.resourceName "customers/5423891542/campaignBudgets/32245080429"

Example:

curl -s -X POST "https://googleads.huydata.com/v18/customers/5423891542/googleAds:searchStream" \
  -H "Authorization: Bearer $GOOGLE_ACCESS_TOKEN" \
  -H "developer-token: $GOOGLE_DEVELOPER_TOKEN" \
  -H "login-customer-id: 9990001111" \
  -H "Content-Type: application/json" \
  -d '{"query": "SELECT campaign.id, campaign.name, campaign.status, campaign.serving_status, campaign.start_date, campaign.end_date, campaign.app_campaign_setting.app_id, campaign.app_campaign_setting.app_store, campaign.bidding_strategy_type, campaign_budget.amount_micros FROM campaign"}'
[
  {
    "results": [
      {
        "campaign": {
          "id": "22245080429",
          "name": "DMS_GG_AND_SEA_VALUE_202512",
          "status": "ENABLED",
          "servingStatus": "SERVING",
          "startDate": "2025-12-10",
          "endDate": "2037-12-30",
          "appCampaignSetting": { "appId": "com.novaplay.dragonmerge", "appStore": "GOOGLE_APP_STORE" },
          "biddingStrategyType": "MAXIMIZE_CONVERSION_VALUE"
        },
        "campaignBudget": { "amountMicros": "400000000" }
      },
      {
        "campaign": {
          "id": "28585815842",
          "name": "DMS_GG_AND_SEA_INSTALL_202608",
          "status": "ENABLED",
          "servingStatus": "ENDED",
          "startDate": "2026-08-28",
          "endDate": "2026-10-13",
          "appCampaignSetting": { "appId": "com.novaplay.dragonmerge", "appStore": "GOOGLE_APP_STORE" },
          "biddingStrategyType": "TARGET_CPA"
        },
        "campaignBudget": { "amountMicros": "260000000" }
      },
      "..."
    ],
    "fieldMask": "campaign.id,campaign.name,campaign.status,campaign.servingStatus,campaign.startDate,campaign.endDate,campaign.appCampaignSetting.appId,campaign.appCampaignSetting.appStore,campaign.biddingStrategyType,campaignBudget.amountMicros",
    "requestId": "09671fad0fec419aa873"
  }
]

ad_group

Field Type JSON path Example Description
ad_group.id int64 adGroup.id "22395831285"
ad_group.name string adGroup.name "SEA_Broad_ID-PH-VN" {GEO}_{AUDIENCE}_{COUNTRIES}
ad_group.status enum adGroup.status "ENABLED" ENABLED or PAUSED (follows the campaign)
ad_group.type enum adGroup.type "VIDEO_RESPONSIVE" Always VIDEO_RESPONSIVE
ad_group.campaign resource adGroup.campaign "customers/5423891542/campaigns/22245080429" Parent campaign
ad_group.resource_name resource adGroup.resourceName "customers/5423891542/adGroups/22395831285"
{
  "campaign": { "id": "22245080429" },
  "adGroup": {
    "id": "22395831285",
    "name": "SEA_Broad_ID-PH-VN",
    "status": "ENABLED",
    "type": "VIDEO_RESPONSIVE",
    "campaign": "customers/5423891542/campaigns/22245080429",
    "resourceName": "customers/5423891542/adGroups/22395831285"
  }
}

ad_group_ad

Field Type JSON path Example Description
ad_group_ad.ad.id int64 adGroupAd.ad.id "20923328157" Ad (creative) id
ad_group_ad.ad.name string adGroupAd.ad.name "VID_BossFight_v2" {FORMAT}_{CONCEPT}_v{N}
ad_group_ad.ad.type enum adGroupAd.ad.type "VIDEO_RESPONSIVE_AD" VIDEO_RESPONSIVE_AD for video and playable creatives, IMAGE_AD for image creatives
ad_group_ad.ad.final_urls list adGroupAd.ad.finalUrls ["https://play.google.com/store/apps/details?id=com.novaplay.dragonmerge"] Store landing page
ad_group_ad.ad.resource_name resource adGroupAd.ad.resourceName "customers/5423891542/ads/20923328157"
ad_group_ad.status enum adGroupAd.status "PAUSED" ENABLED or PAUSED
ad_group_ad.ad_group resource adGroupAd.adGroup "customers/5423891542/adGroups/22395831285" Parent ad group
ad_group_ad.resource_name resource adGroupAd.resourceName "customers/5423891542/adGroupAds/22395831285~20923328157" {adGroupId}~{adId}
{
  "adGroup": { "id": "22395831285" },
  "adGroupAd": {
    "ad": {
      "id": "20923328157",
      "name": "VID_BossFight_v2",
      "type": "VIDEO_RESPONSIVE_AD",
      "finalUrls": ["https://play.google.com/store/apps/details?id=com.novaplay.dragonmerge"],
      "resourceName": "customers/5423891542/ads/20923328157"
    },
    "status": "PAUSED",
    "adGroup": "customers/5423891542/adGroups/22395831285",
    "resourceName": "customers/5423891542/adGroupAds/22395831285~20923328157"
  }
}

geo_target_constant

A lookup table of the 14 countries Nova Play advertises in. It has no metrics and no segments; the customer id in the URL does not matter (every customer sees the same 14 rows). See Geo targets for the full mapping.

Field Type JSON path Example Description
geo_target_constant.id int64 geoTargetConstant.id "2840" Criterion id — the number in geoTargetConstants/2840
geo_target_constant.name string geoTargetConstant.name "United States"
geo_target_constant.country_code string geoTargetConstant.countryCode "US" ISO 3166-1 alpha-2
geo_target_constant.target_type string geoTargetConstant.targetType "Country" Always Country
geo_target_constant.status enum geoTargetConstant.status "ENABLED"
geo_target_constant.canonical_name string geoTargetConstant.canonicalName "United States"
geo_target_constant.resource_name resource geoTargetConstant.resourceName "geoTargetConstants/2840" Same string that segments.geo_target_country returns

Metrics

Metrics are available with FROM customer, campaign, ad_group and ad_group_ad. They are summed over the rows that match the date filter and grouped by the selected segments; without segments you get one total per entity for the whole filtered period. Derived metrics (rates, averages) are computed from the aggregated sums, not averaged across days.

Field Type JSON path Example Definition
metrics.impressions int64 metrics.impressions "200898" Ad impressions
metrics.clicks int64 metrics.clicks "1729" Clicks
metrics.cost_micros int64 metrics.costMicros "345860000" Spend in micros of USD: divide by 1,000,000 to get dollars ($345.86)
metrics.conversions double metrics.conversions 286.0 App installs attributed to the ad. Subject to the 3-day attribution window
metrics.conversions_value double metrics.conversionsValue 127.06 Attributed in-app purchase value in USD (2 decimals). Subject to the 3-day attribution window
metrics.all_conversions double metrics.allConversions 836.0 Installs + purchase events
metrics.video_views int64 metrics.videoViews "65774" Video views
metrics.ctr double metrics.ctr 0.009998 clicks / impressions (6 decimals; 0.0 when no impressions)
metrics.average_cpc double metrics.averageCpc 382844.73 cost_micros / clicks — in micros
metrics.average_cpm double metrics.averageCpm 3827857.42 cost_micros / impressions × 1000 — in micros
metrics.cost_per_conversion double metrics.costPerConversion 2401437.42 cost_micros / conversions — in micros (cost per install)
metrics.conversions_from_interactions_rate double metrics.conversionsFromInteractionsRate 0.159423 conversions / clicks
metrics.video_view_rate double metrics.videoViewRate 0.290601 video_views / impressions

Example — every metric for one account on one day:

SELECT customer.id, segments.date,
       metrics.cost_micros, metrics.impressions, metrics.clicks,
       metrics.conversions, metrics.conversions_value, metrics.all_conversions, metrics.video_views,
       metrics.ctr, metrics.average_cpc, metrics.average_cpm, metrics.cost_per_conversion,
       metrics.conversions_from_interactions_rate, metrics.video_view_rate
FROM customer
WHERE segments.date = '2026-10-25'
{
  "customer": { "id": "5423891542" },
  "segments": { "date": "2026-10-25" },
  "metrics": {
    "costMicros": "1937960000",
    "impressions": "506278",
    "clicks": "5062",
    "conversions": 807.0,
    "conversionsValue": 736.0,
    "allConversions": 836.0,
    "videoViews": "147125",
    "ctr": 0.009998,
    "averageCpc": 382844.73,
    "averageCpm": 3827857.42,
    "costPerConversion": 2401437.42,
    "conversionsFromInteractionsRate": 0.159423,
    "videoViewRate": 0.290601
  }
}

Reading this row: the account spent $1,937.96, got 807 installs at a cost per install of $2.40 (2,401,437.42 micros), and those installs generated $736.00 of purchases so far.

Segments

Selecting a segment splits every entity's metrics into one row per distinct segment value. Segments are available on the same four resources as metrics.

Field Type JSON path Example Description In WHERE?
segments.date date segments.date "2026-10-25" Report date (UTC day) Yes — and required when any date segment is selected
segments.week date segments.week "2026-10-19" Monday of the report date's week No
segments.month date segments.month "2026-10-01" First day of the report date's month No
segments.day_of_week enum segments.dayOfWeek "MONDAY" MONDAY … SUNDAY No
segments.geo_target_country resource segments.geoTargetCountry "geoTargetConstants/2392" Country of the user who saw the ad, as a geo target constant resource name — see Geo targets Yes (=, !=, IN, NOT IN)

Selecting segments.week, segments.month or segments.day_of_week requires a segments.date filter in WHERE even though those fields themselves cannot be filtered. Example:

SELECT segments.week, segments.month, segments.day_of_week, metrics.clicks
FROM customer
WHERE segments.date BETWEEN '2026-10-19' AND '2026-10-21'
[
  {
    "results": [
      { "segments": { "week": "2026-10-19", "month": "2026-10-01", "dayOfWeek": "MONDAY" },    "metrics": { "clicks": "4014" } },
      { "segments": { "week": "2026-10-19", "month": "2026-10-01", "dayOfWeek": "TUESDAY" },   "metrics": { "clicks": "4042" } },
      { "segments": { "week": "2026-10-19", "month": "2026-10-01", "dayOfWeek": "WEDNESDAY" }, "metrics": { "clicks": "4104" } }
    ],
    "fieldMask": "segments.week,segments.month,segments.dayOfWeek,metrics.clicks",
    "requestId": "0d53aaf4fd9e450b8ddb"
  }
]

Field availability matrix

Field group customer campaign ad_group ad_group_ad geo_target_constant
customer.* yes yes yes yes —
campaign.*, campaign_budget.* — yes yes yes —
ad_group.* — — yes yes —
ad_group_ad.* — — — yes —
geo_target_constant.* — — — — yes
metrics.* yes yes yes yes —
segments.* yes yes yes yes —