shapes
type: ShapeGeneration
shape reference chain limit: 5
omitted shape reference count: 0

AccountLinkShape
type: NodeShape
target class: AccountLink
property:
  path: accountLinkTarget
  name: account link target
  description: Required for CREATE requests. The properties in the Hotel Center account that can be managed using the linked Google Ads account.
  node: AccountLinkTargetShape
  class: AccountLinkTarget
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: googleAdsCustomerName
  name: google ads customer name
  description: Required for CREATE requests. The value representing the Google Ads customer ID in the format `customers/{google_ads_customer_id}`. For example: `customers/0123456789`. Note that the `googleAdsCustomerName` field is not returned in responses to GET requests.
  datatype: string
  max count: 1
property:
  path: status
  name: status
  description: The current status of the account link.
  datatype: string
  max count: 1
  in: ACCOUNT_LINK_STATUS_UNSPECIFIED
  in: ACCOUNT_LINK_STATUS_UNKNOWN
  in: REQUESTED_FROM_HOTEL_CENTER
  in: REQUESTED_FROM_GOOGLE_ADS
  in: APPROVED
property:
  path: name
  name: name
  description: The resource name for the account link in the format `accounts/{account_id}/accountLinks/{account_link_id}`.
  datatype: string
  max count: 1

AccountLinkTargetShape
type: NodeShape
target class: AccountLinkTarget
property:
  path: allHotels
  name: all hotels
  description: True if all properties under the Hotel Center account are made available to the account link. The default is `false`.
  datatype: boolean
  max count: 1
property:
  path: hotelList
  name: hotel list
  description: List of properties that is made available to the account link.
  node: HotelListShape
  class: HotelList
  node kind: BlankNodeOrIRI
  max count: 1

HotelListShape
type: NodeShape
target class: HotelList
property:
  path: partnerHotelIds
  name: partner hotel ids
  description: Hotel IDs.
  datatype: string

BrandShape
type: NodeShape
target class: Brand
property:
  path: propertyCount
  name: property count
  description: Output only. The number of properties with the corresponding brand ID.
  datatype: long
  max count: 1
property:
  path: iconState
  name: icon state
  description: Output only. The brand's icon's review state. If there are both submitted and active icons, this refers to the submitted icon.
  datatype: string
  max count: 1
  in: REVIEW_STATE_UNSPECIFIED
  in: REVIEW_STATE_NEW
  in: APPROVED
  in: REJECTED
property:
  path: name
  name: name
  description: Output only. The resource name for the brand in the format `accounts/{account_id}/brands/{brand_id}`. The `brand_id` corresponds to the partner's brand identifier used for landing page matching and the property-level brand identifier. A default brand is applied to properties that do not have a brand. The `brand_id` of the default brand is `NO_BRAND_ID`. It can be fetched and updated like any configured brand.
  datatype: string
  max count: 1
property:
  path: iconDisapprovalReasons
  name: icon disapproval reasons
  description: Output only. The icon's disapproval reason(s). Only applies to submitted icons with `REJECTED` state.
  datatype: string
  in: IMAGE_DISAPPROVAL_REASON_UNSPECIFIED
  in: NOT_LIKE_SITE
  in: OFFENSIVE
  in: LOW_QUALITY
  in: ANIMATED
  in: BAD_BACKGROUND
  in: TEXT_TOO_SMALL
property:
  path: icon
  name: icon
  description: Input only. The brand's [accounts.icon](/hotels/hotel-prices/api-reference/rest/v3/accounts.icons#resource:-iconresource) identifying the brand's icon. The value refers to the icons's resource name in the format `accounts/{account_id}/icons/{icon_id}`.
  datatype: string
  max count: 1
property:
  path: submittedIcon
  name: submitted icon
  description: Output only. The brand's submitted [accounts.icon](/hotels/hotel-prices/api-reference/rest/v3/accounts.icons#resource:-iconresource). The value refers to the icons's resource name in the format `accounts/{account_id}/icons/{icon_id}`. A submitted icon is one that is new or rejected.
  datatype: string
  max count: 1
property:
  path: displayNameDisapprovalReason
  name: display name disapproval reason
  description: Output only. Display name's disapproval reason. Only applies to display names with the review state 'REJECTED'.
  node: DisplayNameDisapprovalReasonShape
  class: DisplayNameDisapprovalReason
  node kind: BlankNodeOrIRI
property:
  path: activeDisplayNames
  name: active display names
  description: Output only. The brand's active display names in all provided languages, only present if the display name is approved for all provided languages.
  node: LocalizedTextShape
  class: LocalizedText
  node kind: BlankNodeOrIRI
property:
  path: displayNames
  name: display names
  description: Input only. The name Google displays for the brand's properties. Setting the display names is only necessary if you want to override the landing page display name or account-level display name for the brand. Google reviews the display names for appropriate content. When there are multiple languages, Google will only show the display names once Google approves all the languages.
  node: LocalizedTextShape
  class: LocalizedText
  node kind: BlankNodeOrIRI
property:
  path: activeIconUri
  name: active icon uri
  description: Output only. URL of the active icon, only present when the icon has been approved.
  datatype: string
  max count: 1
property:
  path: submittedDisplayNames
  name: submitted display names
  description: Output only. The brand's submitted display names in all provided languages, only present if the display name is new or rejected for any language.
  node: LocalizedTextShape
  class: LocalizedText
  node kind: BlankNodeOrIRI
property:
  path: displayNameState
  name: display name state
  description: Output only. The brand's display names review state, which applies to all display name language entries. If there are both submitted and active display names, this refers to the submitted display names.
  datatype: string
  max count: 1
  in: REVIEW_STATE_UNSPECIFIED
  in: REVIEW_STATE_NEW
  in: APPROVED
  in: REJECTED
property:
  path: activeIcon
  name: active icon
  description: Output only. The brand's active [accounts.icon](/hotels/hotel-prices/api-reference/rest/v3/accounts.icons#resource:-iconresource). The value refers to the icons's resource name in the format `accounts/{account_id}/icons/{icon_id}`. An active icon is one that has been approved.
  datatype: string
  max count: 1

DisplayNameDisapprovalReasonShape
type: NodeShape
target class: DisplayNameDisapprovalReason
property:
  path: languageCode
  name: language code
  description: Language of the disapproved display name.
  datatype: string
  max count: 1
property:
  path: disapprovalReason
  name: disapproval reason
  description: Disapproval reason.
  datatype: string
  max count: 1
  in: DISAPPROVAL_REASON_UNSPECIFIED
  in: PUNCTUATION
  in: MARKETING_LANGUAGE
  in: LANDING_PAGE_NOT_MATCHED
  in: NOT_BRAND_NAME

LocalizedTextShape
type: NodeShape
target class: LocalizedText
property:
  path: text
  name: text
  description: Localized string in the language corresponding to language_code below.
  datatype: string
  max count: 1
property:
  path: languageCode
  name: language code
  description: The text's BCP-47 language code, such as "en-US" or "sr-Latn". For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
  datatype: string
  max count: 1

CreateReconciliationReportResponseShape
type: NodeShape
target class: CreateReconciliationReportResponse
property:
  path: issues
  name: issues
  description: Issues that were encountered when validating the file.
  node: ReconciliationReportValidationIssueShape
  class: ReconciliationReportValidationIssue
  node kind: BlankNodeOrIRI
property:
  path: successfulRecordCount
  name: successful record count
  description: The number of commission records that were successfully saved.
  datatype: int
  max count: 1
property:
  path: reconciliationReport
  name: reconciliation report
  description: Resource name of the new reconciliation report. The format is `accounts/{account_id}`.
  node: ReconciliationReportShape
  class: ReconciliationReport
  node kind: BlankNodeOrIRI
  max count: 1

ReconciliationReportValidationIssueShape
type: NodeShape
target class: ReconciliationReportValidationIssue
property:
  path: description
  name: description
  description: Text description of the issue, typically including what was seen and why it was invalid.
  datatype: string
  max count: 1
property:
  path: lineNum
  name: line num
  description: The line number on which the issue was detected. If this field is 0, the issue applies to the whole file.
  datatype: int
  max count: 1
property:
  path: fieldName
  name: field name
  description: Name of the invalid field. If no field name is given, this issue applies to the whole line (or file).
  datatype: string
  max count: 1

ReconciliationReportShape
type: NodeShape
target class: ReconciliationReport
property:
  path: name
  name: name
  description: Resource name in the format `accounts/{account_id}/reconciliationReports/{datetime}~{filename}`. The value for `{datetime}` must be from 0001-01-01T00:00:00 to 9999-12-31T23:59:59 inclusive.
  datatype: string
  max count: 1
property:
  path: fileName
  name: file name
  description: Required. Desired filename of the reconciliation report.
  datatype: string
  max count: 1
property:
  path: contents
  name: contents
  description: Required. The contents of the commission report. Report contents must conform to the requirements specified in [Reconciliation reports] (//support.google.com/hotelprices/answer/7019060#creating).
  datatype: string
  max count: 1

DataIssueDetailShape
type: NodeShape
target class: DataIssueDetail
property:
  path: isSelfResolving
  name: is self resolving
  description: Whether or not the issue is self-resolving. If true, the issue is expected to resolve itself. If false or not set, action is needed to resolve the issue. Refer to documentation on the data issue’s type for further information.
  datatype: boolean
  max count: 1
property:
  path: dataIssueSeverity
  name: data issue severity
  description: The severity of the data issue.
  datatype: string
  max count: 1
  in: DATA_ISSUE_SEVERITY_UNSPECIFIED
  in: ERROR
  in: WARNING
  in: INFO
property:
  path: dataIssueType
  name: data issue type
  description: The type of the data issue.
  datatype: string
  max count: 1
  in: FEED_DATA_ISSUE_UNSPECIFIED
  in: FEED_DATA_ISSUE_UNKNOWN
  in: NO_DATA_ISSUE
  in: DUPLICATE_ADDRESS
  in: MISSING_PHYSICAL_STREET_ADDRESS
  in: MISSING_STREET_NAME
  in: MISSING_STREET_NUMBER
  in: MISSING_ADDRESS
  in: MISSING_COUNTRY
  in: INVALID_POSTAL_CODE
  in: INVALID_POSTAL_CODE_SUFFIX
  in: UNEXPECTED_POSTAL_CODE_SUFFIX
  in: UNEXPECTED_POSTAL_CODE
  in: INVALID_AMENITIES
  in: INVALID_EMAIL_ADDRESS
  in: DUPLICATE_LATLONG
  in: LATLONG_INCONSISTENT_WITH_ADDRESS
  in: MISSING_LATLONG
  in: COULD_NOT_GEOCODE
  in: MISSING_HOTEL_NAME
  in: HOTEL_NAME_EMPTY
  in: INVALID_HOTEL_NAME
  in: HOTEL_NAME_TOO_LONG
  in: PARSE_ERROR_IN_XML
  in: UNEXPECTED_ATTRIBUTE_IN_XML
  in: DUPLICATE_PHONE_NUMBER
  in: MISSING_PHONE_NUMBER
  in: MISSING_VOICE_PHONE_NUMBER
  in: INVALID_PHONE_NUMBER_FORMAT
  in: INVALID_PHONE_NUMBER
  in: INVALID_PHONE_NUMBER_COUNTRY_CODE
  in: PHONE_NUMBER_TOO_LONG
  in: PHONE_NUMBER_TOO_SHORT
  in: INVALID_WEBSITE_URL
  in: ADWORDS_ATTRIBUTE_TOO_LONG
  in: FLAGGED_DUE_TO_SUSPICIOUS_METADATA
  in: NOT_ENOUGH_IMAGES_PROVIDED
  in: IMAGE_PROCESSING_IN_PROGRESS
  in: CANNOT_FETCH_IMAGES
  in: INCOMPATIBLE_IMAGE_SIZE_OR_LOW_QUALITY
  in: MISSING_LANG_IN_RAW_LISTING
  in: IS_HOTEL
  in: MISSING_REQ_ATTR
  in: MISSING_NAME
  in: MISSING_LANG_IN_NAME
  in: VR_NAME_TOO_LONG
  in: NAME_AND_DESCRIPTION_ABUSE_VERIFIED
  in: TEST_PROPERTY
  in: NON_VR_ACCOMMODATION_TYPE_BASED_ON_LISTING_NAME
  in: NON_VR_ACCOMMODATION_TYPE
  in: BRAND_NAME_TOO_LONG
  in: MISSING_BRAND_NAME
  in: REVIEW_MISSING_VISIT_TIMESTAMP
  in: VR_ADDRESS_MISSING
  in: VR_ADDRESS_INVALID
  in: VR_ADDRESS_INCOMPLETE
  in: VR_ADDRESS_INCOMPLETE_NO_STREET_NAME
  in: VR_ADDRESS_INCOMPLETE_NO_STREET_NUMBER
  in: VR_ADDRESS_INCOMPLETE_NO_UNIT_NUMBER
  in: VR_ADDRESS_LATLONG_MISMATCH
  in: INVALID_REVIEW_RATING
  in: INVALID_CHECKIN_FORMAT
  in: INVALID_CHECKOUT_FORMAT
  in: INTERNAL_BLOCKLIST
  in: VR_LIVE_ON_GOOGLE_INACTIVE_ERROR
  in: VR_XML_FAILED_PARSING
  in: VR_ZIP_FILE_CORRUPT
  in: VR_PENDING_INITIAL_PROCESSING
  in: VR_WEBSITE_LINK_ROBOTED
  in: VR_PENDING_WEBSITE_CRAWLING
  in: VR_WEBSITE_LINK_WITH_CRAWLING_ERROR
  in: VR_BRAND_MISSING_LANDING_PAGE
  in: VR_INVALID_ROOM_TYPE

DateShape
type: NodeShape
target class: Date
property:
  path: year
  name: year
  description: Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
  datatype: int
  max count: 1
property:
  path: month
  name: month
  description: Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
  datatype: int
  max count: 1
property:
  path: day
  name: day
  description: Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.
  datatype: int
  max count: 1

FreeBookingLinksResultShape
type: NodeShape
target class: FreeBookingLinksResult
property:
  path: partnerHotelId
  name: partner hotel id
  description: Partner's hotel ID. Only present if `partnerHotelId` is specified in `aggregateBy` in the request.
  datatype: string
  max count: 1
property:
  path: date
  name: date
  description: A date within the requested date range. Only present if `date` is specified in `aggregateBy` in the request.
  node: DateShape
  class: Date
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: partnerHotelDisplayName
  name: partner hotel display name
  description: Partner's hotel name. Only present if `partnerHotelDisplayName` is specified in `aggregateBy` in the request.
  datatype: string
  max count: 1
property:
  path: deviceType
  name: device type
  description: The user’s device type. Only present if `deviceType` is specified in `aggregateBy` in the request.
  datatype: string
  max count: 1
  in: DEVICE_UNSPECIFIED
  in: DEVICE_UNKNOWN
  in: DESKTOP
  in: MOBILE
  in: TABLET
property:
  path: clickCount
  name: click count
  description: The total number of clicks that were recorded for this result.
  datatype: long
  max count: 1
property:
  path: userRegionCode
  name: user region code
  description: ISO 3116 region code of the country/region of the user. Only present if `userRegionCode` is specified in `aggregateBy` in the request
  datatype: string
  max count: 1

HotelPricePerItineraryShape
type: NodeShape
target class: HotelPricePerItinerary
property:
  path: currencyCode
  name: currency code
  description: Currency for `price`, `taxes`, and `fees`.
  datatype: string
  max count: 1
property:
  path: taxes
  name: taxes
  description: Taxes for this itinerary.
  datatype: float
  max count: 1
property:
  path: lengthOfStayDays
  name: length of stay days
  description: Number of nights for the itinerary.
  datatype: int
  max count: 1
property:
  path: price
  name: price
  description: Hotel price for this itinerary.
  datatype: float
  max count: 1
property:
  path: updateTime
  name: update time
  description: Update timestamp for this hotel price.
  datatype: dateTime
  max count: 1
property:
  path: fees
  name: fees
  description: Fees for this itinerary.
  datatype: float
  max count: 1
property:
  path: checkinDate
  name: checkin date
  description: Check-in date.
  node: DateShape
  class: Date
  node kind: BlankNodeOrIRI
  max count: 1

HotelViewShape
type: NodeShape
target class: HotelView
property:
  path: partnerHotelDisplayName
  name: partner hotel display name
  description: Partner's hotel name.
  datatype: string
  max count: 1
property:
  path: googleHotelDisplayName
  name: google hotel display name
  description: Google's hotel name.
  datatype: string
  max count: 1
property:
  path: matchStatus
  name: match status
  description: Current matching status of the hotel.
  datatype: string
  max count: 1
  in: MATCH_STATUS_UNSPECIFIED
  in: MATCH_STATUS_UNKNOWN
  in: NOT_MATCHED
  in: MATCHED
  in: MAP_OVERLAP
property:
  path: partnerHotelId
  name: partner hotel id
  description: The unique ID of the hotel that the partner provides in their Hotel List Feed.
  datatype: string
  max count: 1
property:
  path: propertyDetails
  name: property details
  description: Optional. A URL to the property on Google. Only available for properties that are listed.
  datatype: string
  max count: 1
property:
  path: primaryOverclusteredPartnerHotelId
  name: primary overclustered partner hotel id
  description: The primary hotel in the overclustered set.
  datatype: string
  max count: 1
property:
  path: liveOnGoogleStatus
  name: live on google status
  description: Optional. Whether the hotel appears in Google's hotel booking links. Declaration & behavior to get detection of presence/absence in JSON conversion.
  datatype: string
  max count: 1
  in: LIVE_ON_GOOGLE_STATUS_UNSPECIFIED
  in: LIVE_ON_GOOGLE_STATUS_ACTIVE
  in: LIVE_ON_GOOGLE_STATUS_INACTIVE
  in: LIVE_ON_GOOGLE_STATUS_ACTIVE_OUTSIDE_DSA_REGION
property:
  path: matchFailureReasons
  name: match failure reasons
  description: The reasons why a hotel failed to match to a property on Maps.
  datatype: string
property:
  path: googleHotelId
  name: google hotel id
  description: Google's canonical ID for the hotel.
  datatype: unsignedLong
  max count: 1
property:
  path: overclusteredPartnerHotelIds
  name: overclustered partner hotel ids
  description: Other hotels with which the hotel is overclustered. If your feed contains overclustered hotels, update the feed and resubmit it. To do this, you can use the manual match tool.
  datatype: string
property:
  path: dataIssues
  name: data issues
  description: DEPRECATED. Indicates that the hotel has data quality issues. The value of this field indicates the type of error. This has been replaced with the data_issue_detail field. If your feed contains data issues, update the feed and resubmit it. For more information, refer to this article.
  datatype: string
  in: FEED_DATA_ISSUE_UNSPECIFIED
  in: FEED_DATA_ISSUE_UNKNOWN
  in: NO_DATA_ISSUE
  in: DUPLICATE_ADDRESS
  in: MISSING_PHYSICAL_STREET_ADDRESS
  in: MISSING_STREET_NAME
  in: MISSING_STREET_NUMBER
  in: MISSING_ADDRESS
  in: MISSING_COUNTRY
  in: INVALID_POSTAL_CODE
  in: INVALID_POSTAL_CODE_SUFFIX
  in: UNEXPECTED_POSTAL_CODE_SUFFIX
  in: UNEXPECTED_POSTAL_CODE
  in: INVALID_AMENITIES
  in: INVALID_EMAIL_ADDRESS
  in: DUPLICATE_LATLONG
  in: LATLONG_INCONSISTENT_WITH_ADDRESS
  in: MISSING_LATLONG
  in: COULD_NOT_GEOCODE
  in: MISSING_HOTEL_NAME
  in: HOTEL_NAME_EMPTY
  in: INVALID_HOTEL_NAME
  in: HOTEL_NAME_TOO_LONG
  in: PARSE_ERROR_IN_XML
  in: UNEXPECTED_ATTRIBUTE_IN_XML
  in: DUPLICATE_PHONE_NUMBER
  in: MISSING_PHONE_NUMBER
  in: MISSING_VOICE_PHONE_NUMBER
  in: INVALID_PHONE_NUMBER_FORMAT
  in: INVALID_PHONE_NUMBER
  in: INVALID_PHONE_NUMBER_COUNTRY_CODE
  in: PHONE_NUMBER_TOO_LONG
  in: PHONE_NUMBER_TOO_SHORT
  in: INVALID_WEBSITE_URL
  in: ADWORDS_ATTRIBUTE_TOO_LONG
  in: FLAGGED_DUE_TO_SUSPICIOUS_METADATA
  in: NOT_ENOUGH_IMAGES_PROVIDED
  in: IMAGE_PROCESSING_IN_PROGRESS
  in: CANNOT_FETCH_IMAGES
  in: INCOMPATIBLE_IMAGE_SIZE_OR_LOW_QUALITY
  in: MISSING_LANG_IN_RAW_LISTING
  in: IS_HOTEL
  in: MISSING_REQ_ATTR
  in: MISSING_NAME
  in: MISSING_LANG_IN_NAME
  in: VR_NAME_TOO_LONG
  in: NAME_AND_DESCRIPTION_ABUSE_VERIFIED
  in: TEST_PROPERTY
  in: NON_VR_ACCOMMODATION_TYPE_BASED_ON_LISTING_NAME
  in: NON_VR_ACCOMMODATION_TYPE
  in: BRAND_NAME_TOO_LONG
  in: MISSING_BRAND_NAME
  in: REVIEW_MISSING_VISIT_TIMESTAMP
  in: VR_ADDRESS_MISSING
  in: VR_ADDRESS_INVALID
  in: VR_ADDRESS_INCOMPLETE
  in: VR_ADDRESS_INCOMPLETE_NO_STREET_NAME
  in: VR_ADDRESS_INCOMPLETE_NO_STREET_NUMBER
  in: VR_ADDRESS_INCOMPLETE_NO_UNIT_NUMBER
  in: VR_ADDRESS_LATLONG_MISMATCH
  in: INVALID_REVIEW_RATING
  in: INVALID_CHECKIN_FORMAT
  in: INVALID_CHECKOUT_FORMAT
  in: INTERNAL_BLOCKLIST
  in: VR_LIVE_ON_GOOGLE_INACTIVE_ERROR
  in: VR_XML_FAILED_PARSING
  in: VR_ZIP_FILE_CORRUPT
  in: VR_PENDING_INITIAL_PROCESSING
  in: VR_WEBSITE_LINK_ROBOTED
  in: VR_PENDING_WEBSITE_CRAWLING
  in: VR_WEBSITE_LINK_WITH_CRAWLING_ERROR
  in: VR_BRAND_MISSING_LANDING_PAGE
  in: VR_INVALID_ROOM_TYPE
property:
  path: liveOnGoogle
  name: live on google
  description: Optional. DEPRECATED. Prefer live_on_google_status. Whether the hotel appears in Google's hotel booking links. Declaration & behavior to get detection of presence/absence in JSON conversion.
  datatype: boolean
  max count: 1
property:
  path: googleClusterId
  name: google cluster id
  description: The Google Maps identifier for the hotel.
  datatype: unsignedLong
  max count: 1
property:
  path: dataIssueDetail
  name: data issue detail
  description: The type and severity of each data quality issue in the feed. If your feed contains data issues, update the feed and resubmit it. For more information, refer to this article.
  node: DataIssueDetailShape
  class: DataIssueDetail
  node kind: BlankNodeOrIRI

IconShape
type: NodeShape
target class: Icon
property:
  path: name
  name: name
  description: Required. Output only. The resource name for the icon in the format `accounts/{account_id}/icons/{icon_id}`. Google generates the `icon_id` during the `create` operation. Use the `icon_id` to associate the icon with a brand using the [accounts.brands](/hotels/hotel-prices/api-reference/rest/v3/accounts.brands#resource:-brand) API.
  datatype: string
  max count: 1
property:
  path: disapprovalReasons
  name: disapproval reasons
  description: Output only. The icon's disapproval reason(s). Only applies to icons with `REJECTED` state.
  datatype: string
  in: IMAGE_DISAPPROVAL_REASON_UNSPECIFIED
  in: NOT_LIKE_SITE
  in: OFFENSIVE
  in: LOW_QUALITY
  in: ANIMATED
  in: BAD_BACKGROUND
  in: TEXT_TOO_SMALL
property:
  path: iconUri
  name: icon uri
  description: Output only. The approved icon's Google-hosted URI. Only applies to icons with `APPROVED` state.
  datatype: string
  max count: 1
property:
  path: state
  name: state
  description: Output only. The icon's current state.
  datatype: string
  max count: 1
  in: STATE_UNSPECIFIED
  in: NEW
  in: APPROVED
  in: REJECTED
property:
  path: reference
  name: reference
  description: Optional. Value for tracking the icon. It could be the primary key to your icon in your system, or the icon's filename. Google does not use this value.
  datatype: string
  max count: 1
property:
  path: imageData
  name: image data
  description: Required. Input only. The icon contents, which must be in PNG format, or convertible to PNG.
  datatype: base64Binary
  max count: 1

ImageShape
type: NodeShape
target class: Image
property:
  path: galleryUri
  name: gallery uri
  description: URL that is deeplink to the image in a gallery (or a webpage).
  node: LocalizedTextShape
  class: LocalizedText
  node kind: BlankNodeOrIRI
property:
  path: uri
  name: uri
  description: URL that points to the binary image content directly.
  datatype: string
  max count: 1
property:
  path: title
  name: title
  description: Title of the image.
  node: LocalizedTextShape
  class: LocalizedText
  node kind: BlankNodeOrIRI

KeyShape
type: NodeShape
target class: Key
property:
  path: partnerHotelId
  name: partner hotel id
  description: Partner's hotel ID. If `partnerHotelId` is not a value of the `aggregateBy` parameter in the request call, then the `partnerHotelId` field is not returned in the `Key`.
  datatype: string
  max count: 1
property:
  path: lengthOfStayDays
  name: length of stay days
  description: The number of nights for the itinerary. If `lengthOfStayDays` is not a value of the `aggregateBy` parameter in the request call, then the `lengthOfStayDays` field is not returned in the `Key`.
  datatype: int
  max count: 1
property:
  path: occupancy
  name: occupancy
  description: The total occupancy of the itinerary. If `occupancy` is not a value of the `aggregateBy` parameter in the request call, then the `occupancy` field is not returned in the `Key`.
  datatype: int
  max count: 1
property:
  path: advanceBookingWindow
  name: advance booking window
  description: The number of days in advance the user wants to book the itinerary. If `advanceBookingWindow` is not a value of the `aggregateBy` parameter in the request call, then the `advanceBookingWindow` field is not returned in the `Key`.
  datatype: int
  max count: 1
property:
  path: checkinDate
  name: checkin date
  description: The check-in date of the itinerary. If `checkinDate` is not a value of the `aggregateBy` parameter in the request call, then the `checkinDate` field is not returned in the `Key`.
  node: DateShape
  class: Date
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: hotelRegionCode
  name: hotel region code
  description: CLDR region code of the country/region of the hotel. If `hotelRegionCode` is not a value of the `aggregateBy` parameter in the request call, then the `hotelRegionCode` field is not returned in the `Key`.
  datatype: string
  max count: 1
property:
  path: deviceType
  name: device type
  description: The user’s device type. If `deviceType` is not a value of the `aggregateBy` parameter in the request call, then the `deviceType` field is not returned in the `Key`.
  datatype: string
  max count: 1
  in: DEVICE_UNSPECIFIED
  in: DEVICE_UNKNOWN
  in: DESKTOP
  in: MOBILE
  in: TABLET
property:
  path: userRegionCode
  name: user region code
  description: ISO 3116 region code of the country/region of the user. If `userRegionCode` is not a value of the `aggregateBy` parameter in the request call, then the `userRegionCode` field is not returned in the `Key`.
  datatype: string
  max count: 1
property:
  path: date
  name: date
  description: The date for which you are requesting metrics. If `date` is not a value of the `aggregateBy` parameter in the request call, then the `date` field is not returned in the `Key`.
  node: DateShape
  class: Date
  node kind: BlankNodeOrIRI
  max count: 1

LatLngShape
type: NodeShape
target class: LatLng
property:
  path: longitude
  name: longitude
  description: The longitude in degrees. It must be in the range [-180.0, +180.0].
  datatype: double
  max count: 1
property:
  path: latitude
  name: latitude
  description: The latitude in degrees. It must be in the range [-90.0, +90.0].
  datatype: double
  max count: 1

ListAccountLinksResponseShape
type: NodeShape
target class: ListAccountLinksResponse
property:
  path: accountLinks
  name: account links
  description: A list of all account links associated with the Hotel Center account being queried.
  node: AccountLinkShape
  class: AccountLink
  node kind: BlankNodeOrIRI

ListBrandsResponseShape
type: NodeShape
target class: ListBrandsResponse
property:
  path: brands
  name: brands
  description: A list of brands for the current page associated with the Hotel Center account being queried.
  node: BrandShape
  class: Brand
  node kind: BlankNodeOrIRI
property:
  path: nextPageToken
  name: next page token
  description: Token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
  datatype: string
  max count: 1

ListHotelViewsResponseShape
type: NodeShape
target class: ListHotelViewsResponse
property:
  path: hotelViews
  name: hotel views
  description: The list of rows that match the query.
  node: HotelViewShape
  class: HotelView
  node kind: BlankNodeOrIRI
property:
  path: nextPageToken
  name: next page token
  description: Pagination token used to retrieve the next page of results.
  datatype: string
  max count: 1

ListIconsResponseShape
type: NodeShape
target class: ListIconsResponse
property:
  path: icons
  name: icons
  description: A list of all icons associated with the queried partner account.
  node: IconShape
  class: Icon
  node kind: BlankNodeOrIRI

ListPriceAccuracyViewsResponseShape
type: NodeShape
target class: ListPriceAccuracyViewsResponse
property:
  path: priceAccuracyViews
  name: price accuracy views
  description: The list of rows that match the query.
  node: PriceAccuracyViewShape
  class: PriceAccuracyView
  node kind: BlankNodeOrIRI

PriceAccuracyViewShape
type: NodeShape
target class: PriceAccuracyView
property:
  path: name
  name: name
  description: Resource name should be in the format `accounts/{account_id}/priceAccuracyViews/{report_date}`.
  datatype: string
  max count: 1
property:
  path: results
  name: results
  description: The list of rows that match the query.
  node: PriceAccuracyRowShape
  class: PriceAccuracyRow
  node kind: BlankNodeOrIRI

PriceAccuracyRowShape
type: NodeShape
target class: PriceAccuracyRow
property:
  path: mismatchReason
  name: mismatch reason
  description: The reason why the fetched price didn't match the cached price.
  datatype: string
  max count: 1
  in: MISMATCH_REASON_UNSPECIFIED
  in: MISMATCH_REASON_UNKNOWN
  in: TAX_MISMATCH
  in: ROOM_UNAVAILABLE
  in: SITE_ERROR
  in: PRICE_FEED_DELAYED
  in: DISCOUNT_MISSING
  in: INCORRECT_DISCOUNT_VALUE
  in: WRONG_ITINERARY
property:
  path: deviceType
  name: device type
  description: The user's device type.
  datatype: string
  max count: 1
  in: DEVICE_UNSPECIFIED
  in: DEVICE_UNKNOWN
  in: DESKTOP
  in: MOBILE
  in: TABLET
property:
  path: hotel
  name: hotel
  description: Partner-defined hotel ID.
  datatype: string
  max count: 1
property:
  path: rateRuleId
  name: rate rule id
  description: The rate rule of the advertised price for non-public rates.
  datatype: string
  max count: 1
property:
  path: finalDomain
  name: final domain
  description: The domain of the final page from which prices are read.
  datatype: string
  max count: 1
property:
  path: cachedPriceRecord
  name: cached price record
  description: Price as advertised.
  node: PriceRecordShape
  class: PriceRecord
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: checkinDate
  name: checkin date
  description: Check-in date.
  node: DateShape
  class: Date
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: lengthOfStayDays
  name: length of stay days
  description: Length of stay.
  datatype: int
  max count: 1
property:
  path: hotelCountryCode
  name: hotel country code
  description: The country of the hotel (based on address).
  datatype: string
  max count: 1
property:
  path: fetchedPriceRecord
  name: fetched price record
  description: Price as read from the partner website.
  node: PriceRecordShape
  class: PriceRecord
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: correctionTime
  name: correction time
  description: Time at which an incorrect price is updated to a correct price.
  datatype: dateTime
  max count: 1
property:
  path: signalSource
  name: signal source
  description: Source of the price accuracy signal.
  datatype: string
  max count: 1
  in: SIGNAL_SOURCE_UNSPECIFIED
  in: SIGNAL_SOURCE_UNKNOWN
  in: FETCHED
  in: PIXEL
property:
  path: url
  name: url
  description: Initial URL visited on the partner website.
  datatype: string
  max count: 1
property:
  path: childOccupancy
  name: child occupancy
  description: The number of children in the occupancy details of the validation query. Note: This field may not be consistently populated. If missing, partners should assume a default of 0 children.
  datatype: int
  max count: 1
property:
  path: userRegionCode
  name: user region code
  description: The user's region.
  datatype: string
  max count: 1
property:
  path: affectsScore
  name: affects score
  description: True if this row affects the overall price accuracy score.
  datatype: boolean
  max count: 1
property:
  path: adultOccupancy
  name: adult occupancy
  description: The number of adults in the occupancy details of the validation query. Note: This field may not be consistently populated due to technical constraints. If missing, partners should assume a default of 2 adults.
  datatype: int
  max count: 1

PriceRecordShape
type: NodeShape
target class: PriceRecord
property:
  path: time
  name: time
  description: Timestamp of this price record.
  datatype: dateTime
  max count: 1
property:
  path: taxesAndFees
  name: taxes and fees
  description: Taxes and fees.
  datatype: float
  max count: 1
property:
  path: currencyCode
  name: currency code
  description: ISO 4217 currency code.
  datatype: string
  max count: 1
property:
  path: basePrice
  name: base price
  description: Base price.
  datatype: float
  max count: 1

ListPriceCoverageViewsResponseShape
type: NodeShape
target class: ListPriceCoverageViewsResponse
property:
  path: priceCoverageViews
  name: price coverage views
  description: Hotel price coverage stats.
  node: PriceCoverageViewShape
  class: PriceCoverageView
  node kind: BlankNodeOrIRI

PriceCoverageViewShape
type: NodeShape
target class: PriceCoverageView
property:
  path: priceCoverageBuckets
  name: price coverage buckets
  description: Price coverage stats for combinations of advance booking window and length of stay ranges.
  node: PriceCoverageBucketShape
  class: PriceCoverageBucket
  node kind: BlankNodeOrIRI
property:
  path: priceCoverageBinaryPercent
  name: price coverage binary percent
  description: The ratio between the number of hotels which have at least one price for the calculation period and `matched_property_count`.
  datatype: double
  max count: 1
property:
  path: matchedPropertyCount
  name: matched property count
  description: The total number of properties that have prices for the given itineraries.
  datatype: int
  max count: 1
property:
  path: calculationDate
  name: calculation date
  description: The date on which the calculations were made.
  node: DateShape
  class: Date
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: priceCoveragePercent
  name: price coverage percent
  description: The overall price coverage for an account. This value is the ratio between the number of hotel prices for the calculation booking window and length of stay range divided by the number of all possible prices, which is `matched_property_count` times 330 (for advance book window) times 30 (for length of stay).
  datatype: double
  max count: 1

PriceCoverageBucketShape
type: NodeShape
target class: PriceCoverageBucket
property:
  path: advanceBookingWindowRange
  name: advance booking window range
  description: Advance booking window range.
  datatype: string
  max count: 1
  in: ADVANCE_BOOKING_WINDOW_RANGE_UNSPECIFIED
  in: ADVANCE_BOOKING_WINDOW_RANGE_UNKNOWN
  in: DAYS_0_TO_30
  in: DAYS_31_TO_60
  in: DAYS_61_TO_90
  in: DAYS_91_TO_120
  in: DAYS_121_TO_150
  in: DAYS_151_TO_180
  in: DAYS_181_TO_210
  in: DAYS_211_TO_240
  in: DAYS_241_TO_270
  in: DAYS_271_TO_300
  in: DAYS_301_TO_330
property:
  path: lengthOfStayRange
  name: length of stay range
  description: Length of stay range.
  datatype: string
  max count: 1
  in: LENGTH_OF_STAY_RANGE_UNSPECIFIED
  in: LENGTH_OF_STAY_RANGE_UNKNOWN
  in: LENGTH_OF_STAY_1_TO_7
  in: LENGTH_OF_STAY_8_TO_14
  in: LENGTH_OF_STAY_15_TO_30
property:
  path: priceCoveragePercent
  name: price coverage percent
  description: The percent of itineraries for which you have coverage for this advance booking window bucket and length of stay bucket.
  datatype: double
  max count: 1
property:
  path: availablePriceCount
  name: available price count
  description: Number of prices for this advance booking window bucket and length of stay bucket.
  datatype: long
  max count: 1

ListReconciliationReportsResponseShape
type: NodeShape
target class: ListReconciliationReportsResponse
property:
  path: reconciliationReports
  name: reconciliation reports
  description: The list of names of reconciliation reports. Note that the `contents` and `fileName` fields of each `ReconciliationReport` object are not returned by this call.
  node: ReconciliationReportShape
  class: ReconciliationReport
  node kind: BlankNodeOrIRI

MissedParticipationCountDetailsShape
type: NodeShape
target class: MissedParticipationCountDetails
property:
  path: priceUnavailableCountDetails
  name: price unavailable count details
  description: The reasons that contributed to the price unavailable count.
  node: PriceUnavailableCountDetailsShape
  class: PriceUnavailableCountDetails
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: noPriceCountDetails
  name: no price count details
  description: The reasons that contributed to the no price count (for example, live pricing not available) and the total count for each reason.
  node: NoPriceCountDetailsShape
  class: NoPriceCountDetails
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: priceMissingCount
  name: price missing count
  description: The total number of missed participations due to either a price not being present in Google's cache or failing to successfully respond to live pricing. Comprised of the following: * Bandwidth depleted * Cache rate missing * Itinerary blocked * Live pricing not set up * Live pricing timeout * Live pricing error
  datatype: long
  max count: 1
property:
  path: noTaxBreakdownCount
  name: no tax breakdown count
  description: The total number of missed participation due to one or more of your hotels not specifying taxes and fees separately.
  datatype: long
  max count: 1
property:
  path: priceMissingCountDetails
  name: price missing count details
  description: The reasons that contributed to the price missing count.
  node: PriceMissingCountDetailsShape
  class: PriceMissingCountDetails
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: noLandingPageCount
  name: no landing page count
  description: No landing page matched the user.
  datatype: long
  max count: 1
property:
  path: hotelSuspendedCount
  name: hotel suspended count
  description: The total number of missed participations due to one or more of your hotels being suspended due to price accuracy violations.
  datatype: long
  max count: 1
property:
  path: otherReasonCount
  name: other reason count
  description: Hotel did not participate for an unknown reason.
  datatype: long
  max count: 1
property:
  path: noAvailabilityCount
  name: no availability count
  description: The total number of missed participation due to the hotel/itinerary combination being unavailable, or the traveler was ineligible for the rates. To participate in these auctions, you may need to provide more pricing information.
  datatype: long
  max count: 1
property:
  path: priceUnavailableCount
  name: price unavailable count
  description: The total number of missed participation due to price listed as unavailable (-1) for the requested itinerary. Comprised of the following: * Price unavailable * Participation not likely * Other
  datatype: long
  max count: 1
property:
  path: priceProblemCount
  name: price problem count
  description: The total number of missed participation due to an issue with the accuracy of the price provided for the itinerary. Comprised of the following: * Hotel suspended * Price unusually high * Price unusually low * Taxes and feeds missing
  datatype: long
  max count: 1
property:
  path: priceProblemCountDetails
  name: price problem count details
  description: The reasons that contributed to the price problem count.
  node: PriceProblemCountDetailsShape
  class: PriceProblemCountDetails
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: noPriceCount
  name: no price count
  description: The total number of missed participations due to a price not being offered for the requested itinerary.
  datatype: long
  max count: 1

PriceUnavailableCountDetailsShape
type: NodeShape
target class: PriceUnavailableCountDetails
property:
  path: participationNotLikelyCount
  name: participation not likely count
  description: No price was cached for this itinerary, and no live query was done because your server usually tells us the hotel is unavailable or sold out.
  datatype: long
  max count: 1
property:
  path: priceUnavailableCount
  name: price unavailable count
  description: Hotel did not participate because it wasn't available for the itinerary dates.
  datatype: long
  max count: 1

NoPriceCountDetailsShape
type: NodeShape
target class: NoPriceCountDetails
property:
  path: livePricingTechnicalIssueCount
  name: live pricing technical issue count
  description: The total number of missed participation due to technical issues with live pricing for any of the following reasons: * You didn’t respond quickly enough and exceeded the response deadline (around 4000 milliseconds). * You returned an error. * Your response was malformed.
  datatype: long
  max count: 1
property:
  path: livePricingNotTriggeredCount
  name: live pricing not triggered count
  description: The total number of missed participation due to live pricing not being triggered for any of the following reasons: * You didn't set a bid. * You didn't have a valid landing page. * There weren't enough prices in the cache.
  datatype: long
  max count: 1
property:
  path: livePricingConfigIssueCount
  name: live pricing config issue count
  description: The total number of missed participation due to live pricing not being triggered for any of the following reasons: * You didn't have live pricing configured for these searches. * You restricted Google from accessing the hotel itinerary in question.
  datatype: long
  max count: 1
property:
  path: livePricingOtherReasonCount
  name: live pricing other reason count
  description: The number of missed participations due to other issues with live pricing.
  datatype: long
  max count: 1
property:
  path: livePricingNotAvailableCount
  name: live pricing not available count
  description: The total number of missed participation due to live pricing being unavailable. Live pricing will not be triggered for certain default itineraries or UIs. In this scenario, partners will need a cached price to participate.
  datatype: long
  max count: 1

PriceMissingCountDetailsShape
type: NodeShape
target class: PriceMissingCountDetails
property:
  path: livePricingErrorCount
  name: live pricing error count
  description: No price was cached for this itinerary. A live query did not time out, but your system returned an error.
  datatype: long
  max count: 1
property:
  path: cacheRateMissingCount
  name: cache rate missing count
  description: No price exists in the cache for this itinerary. A live query was not done due to page constraints.
  datatype: long
  max count: 1
property:
  path: livePricingNotSetupCount
  name: live pricing not setup count
  description: No price was cached for this itinerary, and live query was not configured for this account.
  datatype: long
  max count: 1
property:
  path: bandwidthDepletedCount
  name: bandwidth depleted count
  description: No price was cached for this itinerary, and there was no live query quota remaining.
  datatype: long
  max count: 1
property:
  path: livePricingTimeoutCount
  name: live pricing timeout count
  description: No price was cached for this itinerary, and a live query sent to your system timed out.
  datatype: long
  max count: 1
property:
  path: itineraryBlockedCount
  name: itinerary blocked count
  description: The itinerary was outside of your basic parameters, so no price was pulled for the itinerary from either live query or cache fill.
  datatype: long
  max count: 1

PriceProblemCountDetailsShape
type: NodeShape
target class: PriceProblemCountDetails
property:
  path: taxesAndFeesMissingCount
  name: taxes and fees missing count
  description: Taxes and fees were missing from pricing.
  datatype: long
  max count: 1
property:
  path: basePriceViolationsCount
  name: base price violations count
  description: Base price too low relative to total price.
  datatype: long
  max count: 1
property:
  path: priceAccuracyIssueCount
  name: price accuracy issue count
  description: Price accuracy issue.
  datatype: long
  max count: 1
property:
  path: priceUnusuallyHighCount
  name: price unusually high count
  description: The price given for this itinerary seemed oddly high compared to regional trends.
  datatype: long
  max count: 1
property:
  path: hotelSuspendedCount
  name: hotel suspended count
  description: The hotel was suspended. This may be due to persistent problems in areas such as incorrect taxes and fees.
  datatype: long
  max count: 1
property:
  path: priceUnusuallyLowCount
  name: price unusually low count
  description: The price given for this itinerary seemed oddly low compared to regional trends.
  datatype: long
  max count: 1

ParsedListingShape
type: NodeShape
target class: ParsedListing
property:
  path: imprecisionRadiusMeters
  name: imprecision radius meters
  description: Represents the accuracy of the location. The listing can be anywhere within the defined circular area.
  datatype: int
  max count: 1
property:
  path: unitAttributes
  name: unit attributes
  description: VR List attribute.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: partnerListId
  name: partner list id
  description: The list ID on partner LEC feed, provided by partner.
  datatype: string
  max count: 1
property:
  path: dataIssueDetail
  name: data issue detail
  description: Data issues about this listing
  node: DataIssueDetailShape
  class: DataIssueDetail
  node kind: BlankNodeOrIRI
property:
  path: location
  name: location
  description: Location of listing using latitude and longitude (degrees).
  node: LatLngShape
  class: LatLng
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: review
  name: review
  description: Reviews associated with this listing. Each review has a single language attached to it.
  node: ReviewShape
  class: Review
  node kind: BlankNodeOrIRI
property:
  path: brand
  name: brand
  description: If not empty, it indicates that this listing belongs to a brand of the feed.
  datatype: string
  max count: 1
property:
  path: listingName
  name: listing name
  description: List of localized names.
  node: LocalizedTextShape
  class: LocalizedText
  node kind: BlankNodeOrIRI
property:
  path: description
  name: description
  description: Description of the property.
  node: LocalizedTextShape
  class: LocalizedText
  node kind: BlankNodeOrIRI
property:
  path: image
  name: image
  description: Images associated with this listing, localized.
  node: ImageShape
  class: Image
  node kind: BlankNodeOrIRI
property:
  path: category
  name: category
  description: The partner provided category (accommodation type) of the property.
  node: LocalizedTextShape
  class: LocalizedText
  node kind: BlankNodeOrIRI
property:
  path: isServed
  name: is served
  description: Whether the listing can be served based on non image data alone.
  datatype: boolean
  max count: 1
property:
  path: regionCode
  name: region code
  description: The country code where the listing is located.
  datatype: string
  max count: 1

ReviewShape
type: NodeShape
target class: Review
property:
  path: title
  name: title
  description: The title of the review, for example: Great three bedrooms.
  datatype: string
  max count: 1
property:
  path: link
  name: link
  description: The url of the review.
  datatype: string
  max count: 1
property:
  path: languageCode
  name: language code
  description: Language of the review in ISO639 format, such as "en", "de", etc.
  datatype: string
  max count: 1
property:
  path: author
  name: author
  description: The author of the review.
  datatype: string
  max count: 1
property:
  path: reviewTime
  name: review time
  description: Unix timestamp (in seconds) of the review, in UTC+0.
  datatype: dateTime
  max count: 1
property:
  path: body
  name: body
  description: The body of the review.
  datatype: string
  max count: 1
property:
  path: visitTime
  name: visit time
  description: Unix timestamp (in seconds) of when the stay was, in UTC+0.
  datatype: dateTime
  max count: 1
property:
  path: rating
  name: rating
  description: Any ratings associated with this review. This is repeated because reviews can include ratings on different aspects of a listing, e.g. location, cleanliness, etc.
  node: RatingShape
  class: Rating
  node kind: BlankNodeOrIRI
property:
  path: type
  name: type
  description: The type of the review.
  datatype: string
  max count: 1
  in: UNKNOWN
  in: EDITORIAL
  in: USER

RatingShape
type: NodeShape
target class: Rating
property:
  path: score
  name: score
  description: The rating score. (e.g. 8.5)
  datatype: float
  max count: 1
property:
  path: ratingScale
  name: rating scale
  description: Maximum rating possible.
  datatype: int
  max count: 1
property:
  path: type
  name: type
  description: The type of the rating.
  datatype: string
  max count: 1
  in: TYPE_UNSPECIFIED
  in: OVERALL

ParticipationResultShape
type: NodeShape
target class: ParticipationResult
property:
  path: participationPercent
  name: participation percent
  description: The percentage rate of participation where the number of successfully participated opportunities is divided by the total number of opportunities. For example, if a property was eligible to enter the Google Ads auction 90 times out of 100 opportunities, the participation rate is 90%.
  datatype: double
  max count: 1
property:
  path: participationCount
  name: participation count
  description: The total number of opportunities for which you were eligible to enter in the Google Ads auction process.
  datatype: long
  max count: 1
property:
  path: missedParticipationCount
  name: missed participation count
  description: The total number of opportunities **not** eligible for the Google Ads auction process. Comprised of the following: * Landing page missing * Price missing * Price problem * Price unavailable * Other
  datatype: long
  max count: 1
property:
  path: partnerHotelDisplayName
  name: partner hotel display name
  description: Partner's hotel display name. This field is only populated when the result is aggregated by `partnerHotelId`.
  datatype: string
  max count: 1
property:
  path: opportunityCount
  name: opportunity count
  description: For a specific hotel, the total number of opportunities that were available. Opportunities are the total number of instances when a hotel ad could have been displayed to a user.
  datatype: long
  max count: 1
property:
  path: key
  name: key
  description: Key of the result.
  node: KeyShape
  class: Key
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: missedParticipationCountDetails
  name: missed participation count details
  description: The reasons that contributed to the missed participation count (for example, no availability) and a total count for each reason.
  node: MissedParticipationCountDetailsShape
  class: MissedParticipationCountDetails
  node kind: BlankNodeOrIRI
  max count: 1

PriceViewShape
type: NodeShape
target class: PriceView
property:
  path: name
  name: name
  description: Resource name in the format `accounts/{account_id}/priceViews/{partner_hotel_id}`.
  datatype: string
  max count: 1
property:
  path: perItineraryPrices
  name: per itinerary prices
  description: Price for each itinerary.
  node: HotelPricePerItineraryShape
  class: HotelPricePerItinerary
  node kind: BlankNodeOrIRI

PropertyPerformanceResultShape
type: NodeShape
target class: PropertyPerformanceResult
property:
  path: deviceType
  name: device type
  description: The user’s device type. Only present if `deviceType` is specified in `aggregateBy` in the request.
  datatype: string
  max count: 1
  in: DEVICE_UNSPECIFIED
  in: DEVICE_UNKNOWN
  in: DESKTOP
  in: MOBILE
  in: TABLET
property:
  path: propertyRegionCode
  name: property region code
  description: ISO 3116 region code of the country/region of the property. Only present if `propertyRegionCode` is specified in `aggregateBy` in the request
  datatype: string
  max count: 1
property:
  path: adsImpressionCount
  name: ads impression count
  description: The total number of ad impressions that were recorded for this result.
  datatype: long
  max count: 1
property:
  path: adsClickthroughRate
  name: ads clickthrough rate
  description: Equal to `ads_click_count` divided by `ads_impression_count`.
  datatype: double
  max count: 1
property:
  path: vrWebsiteButtonClicks
  name: vr website button clicks
  description: The total number of clicks on the "Website" button on Google for vacation rentals.
  datatype: long
  max count: 1
property:
  path: occupancy
  name: occupancy
  description: Requested number of people staying at the property. Only present if `partnerPropertyId` is specified in `aggregateBy` in the request.
  datatype: string
  max count: 1
  in: OCCUPANCY_UNSPECIFIED
  in: OCCUPANCY_1
  in: OCCUPANCY_2
  in: OCCUPANCY_3
  in: OCCUPANCY_4
  in: OCCUPANCY_OVER_4
property:
  path: advanceBookingWindow
  name: advance booking window
  description: Difference in days between query date and check-in date in property's local timezone. Only present if `advanceBookingWindow` is specified in `aggregateBy` in the request.
  datatype: string
  max count: 1
  in: ADVANCE_BOOKING_WINDOW_UNSPECIFIED
  in: ADVANCE_BOOKING_WINDOW_SAME_DAY
  in: ADVANCE_BOOKING_WINDOW_NEXT_DAY
  in: ADVANCE_BOOKING_WINDOW_DAYS_2_TO_7
  in: ADVANCE_BOOKING_WINDOW_DAYS_8_TO_14
  in: ADVANCE_BOOKING_WINDOW_DAYS_15_TO_30
  in: ADVANCE_BOOKING_WINDOW_DAYS_31_TO_60
  in: ADVANCE_BOOKING_WINDOW_DAYS_61_TO_90
  in: ADVANCE_BOOKING_WINDOW_DAYS_91_TO_120
  in: ADVANCE_BOOKING_WINDOW_DAYS_121_TO_150
  in: ADVANCE_BOOKING_WINDOW_DAYS_151_TO_180
  in: ADVANCE_BOOKING_WINDOW_DAYS_OVER_180
property:
  path: brand
  name: brand
  description: Partner-specified brand for the property. Only present if `brand` is specified in `aggregateBy` in the request.
  datatype: string
  max count: 1
property:
  path: partnerPropertyDisplayName
  name: partner property display name
  description: Partner's property name. Only present if `partnerPropertyDisplayName` is specified in `aggregateBy` in the request.
  datatype: string
  max count: 1
property:
  path: userRegionCode
  name: user region code
  description: ISO 3116 region code of the country/region of the user. Only present if `userRegionCode` is specified in `aggregateBy` in the request
  datatype: string
  max count: 1
property:
  path: adsClickCount
  name: ads click count
  description: The total number of ad clicks that were recorded for this result.
  datatype: long
  max count: 1
property:
  path: clickCount
  name: click count
  description: The total number of free booking link clicks that were recorded for this result.
  datatype: long
  max count: 1
property:
  path: highIntentUsers
  name: high intent users
  description: Whether the user’s query indicated a strong interest in booking. Only present if `highIntentUsers` is specified in `aggregateBy` in the request.
  datatype: boolean
  max count: 1
property:
  path: impressionCount
  name: impression count
  description: The total number of free booking link impressions that were recorded for this result. This value is rounded to preserve user privacy.
  datatype: long
  max count: 1
property:
  path: date
  name: date
  description: A date within the requested date range. Only present if `date` is specified in `aggregateBy` in the request.
  node: DateShape
  class: Date
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: lengthOfStay
  name: length of stay
  description: Number of nights between check-in and check-out dates specified by user. Only present if `lengthOfStay` is specified in `aggregateBy` in the request.
  datatype: string
  max count: 1
  in: LENGTH_OF_STAY_UNSPECIFIED
  in: LENGTH_OF_STAY_NIGHTS_1
  in: LENGTH_OF_STAY_NIGHTS_2
  in: LENGTH_OF_STAY_NIGHTS_3
  in: LENGTH_OF_STAY_NIGHTS_4_TO_7
  in: LENGTH_OF_STAY_NIGHTS_8_TO_14
  in: LENGTH_OF_STAY_NIGHTS_15_TO_21
  in: LENGTH_OF_STAY_NIGHTS_22_TO_30
  in: LENGTH_OF_STAY_NIGHTS_OVER_30
property:
  path: partnerPropertyId
  name: partner property id
  description: Partner's property ID. Only present if `partnerPropertyId` is specified in `aggregateBy` in the request.
  datatype: string
  max count: 1
property:
  path: clickthroughRate
  name: clickthrough rate
  description: Equal to `click_count` divided by `impression_count`.
  datatype: double
  max count: 1

QueryFreeBookingLinksReportResponseShape
type: NodeShape
target class: QueryFreeBookingLinksReportResponse
property:
  path: results
  name: results
  description: The list of results that match the query.
  node: FreeBookingLinksResultShape
  class: FreeBookingLinksResult
  node kind: BlankNodeOrIRI
property:
  path: nextPageToken
  name: next page token
  description: Pagination token used to retrieve the next page of results. If this field is omitted, there are no subsequent pages.
  datatype: string
  max count: 1

QueryParticipationReportResponseShape
type: NodeShape
target class: QueryParticipationReportResponse
property:
  path: nextPageToken
  name: next page token
  description: Pagination token used to retrieve the next page of results.
  datatype: string
  max count: 1
property:
  path: results
  name: results
  description: The list of results that matches the query.
  node: ParticipationResultShape
  class: ParticipationResult
  node kind: BlankNodeOrIRI

QueryPropertyPerformanceReportResponseShape
type: NodeShape
target class: QueryPropertyPerformanceReportResponse
property:
  path: results
  name: results
  description: The list of results that match the query.
  node: PropertyPerformanceResultShape
  class: PropertyPerformanceResult
  node kind: BlankNodeOrIRI
property:
  path: nextPageToken
  name: next page token
  description: Pagination token used to retrieve the next page of results. If this field is omitted, there are no subsequent pages.
  datatype: string
  max count: 1

SetLiveOnGoogleRequestShape
type: NodeShape
target class: SetLiveOnGoogleRequest
property:
  path: partnerHotelIds
  name: partner hotel ids
  description: Required. Identifies the properties to update with the liveOnGoogle setting.
  datatype: string
property:
  path: liveOnGoogleStatus
  name: live on google status
  description: Optional. Whether the property will show on Google, with more granular controls than the original `live_on_google` boolean field. Only one of `live_on_google` or `live_on_google_status` should be set; if both are set, `live_on_google_status` will be used. **Note:** This field should be enclosed in quotes. For example, `"LIVE_ON_GOOGLE_STATUS_INACTIVE"`.
  datatype: string
  max count: 1
  in: LIVE_ON_GOOGLE_STATUS_UNSPECIFIED
  in: LIVE_ON_GOOGLE_STATUS_ACTIVE
  in: LIVE_ON_GOOGLE_STATUS_INACTIVE
  in: LIVE_ON_GOOGLE_STATUS_ACTIVE_OUTSIDE_DSA_REGION
property:
  path: liveOnGoogle
  name: live on google
  description: Optional. DEPRECATED. Whether the property will show on Google. When true, Google will show the properties if their integration is complete and the property is available. When false, Google will never show the properties. Superseded by `live_on_google_status`. Only one of `live_on_google` or `live_on_google_status` should be set; if both are set, `live_on_google_status` will be used.
  datatype: boolean
  max count: 1

SetLiveOnGoogleResponseShape
type: NodeShape
target class: SetLiveOnGoogleResponse
property:
  path: updatedHotelIds
  name: updated hotel ids
  description: Identifies the updated properties.
  datatype: string
property:
  path: failedHotelIds
  name: failed hotel ids
  description: Identifies properties that Google could not update.
  datatype: string

SummarizeHotelViewsResponseShape
type: NodeShape
target class: SummarizeHotelViewsResponse
property:
  path: lastManifestUpdateTime
  name: last manifest update time
  description: Timestamp of the last hotel manifest update.
  datatype: dateTime
  max count: 1
property:
  path: lastFeedSubmissionTime
  name: last feed submission time
  description: Timestamp of the last hotel feed submission.
  datatype: dateTime
  max count: 1
property:
  path: unmatchedPropertyWithErrorsCount
  name: unmatched property with errors count
  description: The number of unmatched properties that have data-related errors.
  datatype: long
  max count: 1
property:
  path: overclusteredPropertyCount
  name: overclustered property count
  description: The number of hotels that are considered overclustered.
  datatype: long
  max count: 1
property:
  path: overclusteredPropertyWithErrorsCount
  name: overclustered property with errors count
  description: The number of overclustered properties that have data-related errors.
  datatype: long
  max count: 1
property:
  path: unmatchedPropertyCount
  name: unmatched property count
  description: The number of properties that are considered unmatched.
  datatype: long
  max count: 1
property:
  path: matchedPropertyCount
  name: matched property count
  description: The number of properties that match Google's manifest.
  datatype: long
  max count: 1
property:
  path: liveOnGooglePropertyCount
  name: live on google property count
  description: The number of properties that are Live on Google. This includes properties that are conditionally active, e.g. LIVE_ON_GOOGLE_STATUS_ACTIVE_OUTSIDE_DSA_REGION.
  datatype: long
  max count: 1

SummarizePriceAccuracyResponseShape
type: NodeShape
target class: SummarizePriceAccuracyResponse
property:
  path: predictedBookOnGoogleScore
  name: predicted book on google score
  description: The predicted Book on Google price accuracy score.
  datatype: string
  max count: 1
  in: PRICE_ACCURACY_STATE_UNSPECIFIED
  in: PRICE_ACCURACY_STATE_UNKNOWN
  in: EXCELLENT
  in: GOOD
  in: POOR
  in: AT_RISK
  in: FAILED
property:
  path: currentBookOnGoogleScore
  name: current book on google score
  description: The current Book on Google price accuracy score.
  datatype: string
  max count: 1
  in: PRICE_ACCURACY_STATE_UNSPECIFIED
  in: PRICE_ACCURACY_STATE_UNKNOWN
  in: EXCELLENT
  in: GOOD
  in: POOR
  in: AT_RISK
  in: FAILED
property:
  path: currentOverallScore
  name: current overall score
  description: The current price accuracy score combining both website and Book on Google scores.
  datatype: string
  max count: 1
  in: PRICE_ACCURACY_STATE_UNSPECIFIED
  in: PRICE_ACCURACY_STATE_UNKNOWN
  in: EXCELLENT
  in: GOOD
  in: POOR
  in: AT_RISK
  in: FAILED
property:
  path: predictedOverallScore
  name: predicted overall score
  description: The predicted price accuracy score combining both website and Book on Google scores.
  datatype: string
  max count: 1
  in: PRICE_ACCURACY_STATE_UNSPECIFIED
  in: PRICE_ACCURACY_STATE_UNKNOWN
  in: EXCELLENT
  in: GOOD
  in: POOR
  in: AT_RISK
  in: FAILED
property:
  path: updateTime
  name: update time
  description: The update timestamp for the current score.
  datatype: dateTime
  max count: 1
property:
  path: currentWebsiteScore
  name: current website score
  description: The current website price accuracy score.
  datatype: string
  max count: 1
  in: PRICE_ACCURACY_STATE_UNSPECIFIED
  in: PRICE_ACCURACY_STATE_UNKNOWN
  in: EXCELLENT
  in: GOOD
  in: POOR
  in: AT_RISK
  in: FAILED
property:
  path: predictedWebsiteScore
  name: predicted website score
  description: The predicted website price accuracy score.
  datatype: string
  max count: 1
  in: PRICE_ACCURACY_STATE_UNSPECIFIED
  in: PRICE_ACCURACY_STATE_UNKNOWN
  in: EXCELLENT
  in: GOOD
  in: POOR
  in: AT_RISK
  in: FAILED
property:
  path: currentScore
  name: current score
  description: The current price accuracy score. Contains the same value as `current_website_score`. For clarity, use either `current_website_score` or 'current_overall_score` depending upon which is needed.
  datatype: string
  max count: 1
  in: PRICE_ACCURACY_STATE_UNSPECIFIED
  in: PRICE_ACCURACY_STATE_UNKNOWN
  in: EXCELLENT
  in: GOOD
  in: POOR
  in: AT_RISK
  in: FAILED
property:
  path: predictedScore
  name: predicted score
  description: The predicted price accuracy score. Contains the same value as `predicted_website_score`. For clarity, use either `predicted_website_score` or 'predicted_overall_score` depending upon which is needed.
  datatype: string
  max count: 1
  in: PRICE_ACCURACY_STATE_UNSPECIFIED
  in: PRICE_ACCURACY_STATE_UNKNOWN
  in: EXCELLENT
  in: GOOD
  in: POOR
  in: AT_RISK
  in: FAILED

ValidateReconciliationReportResponseShape
type: NodeShape
target class: ValidateReconciliationReportResponse
property:
  path: successfulRecordCount
  name: successful record count
  description: The number of commission records that were successfully validated.
  datatype: int
  max count: 1
property:
  path: issues
  name: issues
  description: Issues that were encountered when validating the file.
  node: ReconciliationReportValidationIssueShape
  class: ReconciliationReportValidationIssue
  node kind: BlankNodeOrIRI

VerifyListingsRequestShape
type: NodeShape
target class: VerifyListingsRequest
property:
  path: xmlListing
  name: xml listing
  description: A listing that follows the XML format specified in https://developers.google.com/hotels/hotel-prices/xml-reference/hotel-list-feed.
  datatype: string
  max count: 1

VerifyListingsResponseShape
type: NodeShape
target class: VerifyListingsResponse
property:
  path: parsedListing
  name: parsed listing
  description: The parsed listing output.
  node: ParsedListingShape
  class: ParsedListing
  node kind: BlankNodeOrIRI
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: unitAttributes
  class: ParsedListing
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/key> ?key . ?right <https://relay.inferal.com/ontology/googlehotels/record/Googlehotels.ParsedListing/unitAttributes/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: string
  min count: 1
  max count: 1