<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="analyticsadmin_v1alpha.html">Google Analytics Admin API</a> . <a href="analyticsadmin_v1alpha.accounts.html">accounts</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="analyticsadmin_v1alpha.accounts.accessBindings.html">accessBindings()</a></code>
</p>
<p class="firstline">Returns the accessBindings Resource.</p>

<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Marks target Account as soft-deleted (ie: "trashed") and returns it. This API does not have a method to restore soft-deleted accounts. However, they can be restored using the Trash Can UI. If the accounts are not restored before the expiration time, the account and all child resources (eg: Properties, GoogleAdsLinks, Streams, AccessBindings) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Lookup for a single Account.</p>
<p class="toc_element">
  <code><a href="#getDataSharingSettings">getDataSharingSettings(name, x__xgafv=None)</a></code></p>
<p class="firstline">Get data sharing settings on an account. Data sharing settings are singletons.</p>
<p class="toc_element">
  <code><a href="#list">list(pageSize=None, pageToken=None, showDeleted=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns all accounts accessible by the caller. Note that these accounts might not currently have GA properties. Soft-deleted (ie: "trashed") accounts are excluded by default. Returns an empty list if no relevant accounts are found.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an account.</p>
<p class="toc_element">
  <code><a href="#provisionAccountTicket">provisionAccountTicket(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Requests a ticket for creating an account.</p>
<p class="toc_element">
  <code><a href="#runAccessReport">runAccessReport(entity, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. Reports may be requested for any property, but dimensions that aren't related to quota can only be requested on Google Analytics 360 properties. This method is only available to Administrators. These data access records include GA UI Reporting, GA UI Explorations, GA Data API, and other products like Firebase & Admob that can retrieve data from Google Analytics through a linkage. These records don't include property configuration changes like adding a stream or changing a property's time zone. For configuration change history, see [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents). To give your feedback on this API, complete the [Google Analytics Access Reports feedback](https://docs.google.com/forms/d/e/1FAIpQLSdmEBUrMzAEdiEKk5TV5dEHvDUZDRlgWYdQdAeSdtR4hVjEhw/viewform) form.</p>
<p class="toc_element">
  <code><a href="#searchChangeHistoryEvents">searchChangeHistoryEvents(account, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Searches through all changes to an account or its children given the specified set of filters. Only returns the subset of changes supported by the API. The UI may return additional changes.</p>
<p class="toc_element">
  <code><a href="#searchChangeHistoryEvents_next">searchChangeHistoryEvents_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
  <pre>Marks target Account as soft-deleted (ie: &quot;trashed&quot;) and returns it. This API does not have a method to restore soft-deleted accounts. However, they can be restored using the Trash Can UI. If the accounts are not restored before the expiration time, the account and all child resources (eg: Properties, GoogleAdsLinks, Streams, AccessBindings) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found.

Args:
  name: string, Required. The name of the Account to soft-delete. Format: accounts/{account} Example: &quot;accounts/100&quot; (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Lookup for a single Account.

Args:
  name: string, Required. The name of the account to lookup. Format: accounts/{account} Example: &quot;accounts/100&quot; (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A resource message representing a Google Analytics account.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this account was originally created.
  &quot;deleted&quot;: True or False, # Output only. Indicates whether this Account is soft-deleted or not. Deleted accounts are excluded from List results unless specifically requested.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this account.
  &quot;gmpOrganization&quot;: &quot;A String&quot;, # Output only. The URI for a Google Marketing Platform organization resource. Only set when this account is connected to a GMP organization. Format: marketingplatformadmin.googleapis.com/organizations/{org_id}
  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this account. Format: accounts/{account} Example: &quot;accounts/100&quot;
  &quot;regionCode&quot;: &quot;A String&quot;, # Country of business. Must be a Unicode CLDR region code.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when account payload fields were last updated.
}</pre>
</div>

<div class="method">
    <code class="details" id="getDataSharingSettings">getDataSharingSettings(name, x__xgafv=None)</code>
  <pre>Get data sharing settings on an account. Data sharing settings are singletons.

Args:
  name: string, Required. The name of the settings to lookup. Format: accounts/{account}/dataSharingSettings Example: `accounts/1000/dataSharingSettings` (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A resource message representing data sharing settings of a Google Analytics account.
  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name. Format: accounts/{account}/dataSharingSettings Example: &quot;accounts/1000/dataSharingSettings&quot;
  &quot;sharingWithGoogleAnySalesEnabled&quot;: True or False, # Deprecated. This field is no longer used and always returns false.
  &quot;sharingWithGoogleAssignedSalesEnabled&quot;: True or False, # Allows Google access to your Google Analytics account data, including account usage and configuration data, product spending, and users associated with your Google Analytics account, so that Google can help you make the most of Google products, providing you with insights, offers, recommendations, and optimization tips across Google Analytics and other Google products for business. This field maps to the &quot;Recommendations for your business&quot; field in the Google Analytics Admin UI.
  &quot;sharingWithGoogleProductsEnabled&quot;: True or False, # Allows Google to use the data to improve other Google products or services. This fields maps to the &quot;Google products &amp; services&quot; field in the Google Analytics Admin UI.
  &quot;sharingWithGoogleSupportEnabled&quot;: True or False, # Allows Google technical support representatives access to your Google Analytics data and account when necessary to provide service and find solutions to technical issues. This field maps to the &quot;Technical support&quot; field in the Google Analytics Admin UI.
  &quot;sharingWithOthersEnabled&quot;: True or False, # Enable features like predictions, modeled data, and benchmarking that can provide you with richer business insights when you contribute aggregated measurement data. The data you share (including information about the property from which it is shared) is aggregated and de-identified before being used to generate business insights. This field maps to the &quot;Modeling contributions &amp; business insights&quot; field in the Google Analytics Admin UI.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(pageSize=None, pageToken=None, showDeleted=None, x__xgafv=None)</code>
  <pre>Returns all accounts accessible by the caller. Note that these accounts might not currently have GA properties. Soft-deleted (ie: &quot;trashed&quot;) accounts are excluded by default. Returns an empty list if no relevant accounts are found.

Args:
  pageSize: integer, The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)
  pageToken: string, A page token, received from a previous `ListAccounts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAccounts` must match the call that provided the page token.
  showDeleted: boolean, Whether to include soft-deleted (ie: &quot;trashed&quot;) Accounts in the results. Accounts can be inspected to determine whether they are deleted or not.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Request message for ListAccounts RPC.
  &quot;accounts&quot;: [ # Results that were accessible to the caller.
    { # A resource message representing a Google Analytics account.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this account was originally created.
      &quot;deleted&quot;: True or False, # Output only. Indicates whether this Account is soft-deleted or not. Deleted accounts are excluded from List results unless specifically requested.
      &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this account.
      &quot;gmpOrganization&quot;: &quot;A String&quot;, # Output only. The URI for a Google Marketing Platform organization resource. Only set when this account is connected to a GMP organization. Format: marketingplatformadmin.googleapis.com/organizations/{org_id}
      &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this account. Format: accounts/{account} Example: &quot;accounts/100&quot;
      &quot;regionCode&quot;: &quot;A String&quot;, # Country of business. Must be a Unicode CLDR region code.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when account payload fields were last updated.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates an account.

Args:
  name: string, Output only. Resource name of this account. Format: accounts/{account} Example: &quot;accounts/100&quot; (required)
  body: object, The request body.
    The object takes the form of:

{ # A resource message representing a Google Analytics account.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this account was originally created.
  &quot;deleted&quot;: True or False, # Output only. Indicates whether this Account is soft-deleted or not. Deleted accounts are excluded from List results unless specifically requested.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this account.
  &quot;gmpOrganization&quot;: &quot;A String&quot;, # Output only. The URI for a Google Marketing Platform organization resource. Only set when this account is connected to a GMP organization. Format: marketingplatformadmin.googleapis.com/organizations/{org_id}
  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this account. Format: accounts/{account} Example: &quot;accounts/100&quot;
  &quot;regionCode&quot;: &quot;A String&quot;, # Country of business. Must be a Unicode CLDR region code.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when account payload fields were last updated.
}

  updateMask: string, Required. The list of fields to be updated. Field names must be in snake case (for example, &quot;field_to_update&quot;). Omitted fields will not be updated. To replace the entire entity, use one path with the string &quot;*&quot; to match all fields.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A resource message representing a Google Analytics account.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this account was originally created.
  &quot;deleted&quot;: True or False, # Output only. Indicates whether this Account is soft-deleted or not. Deleted accounts are excluded from List results unless specifically requested.
  &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this account.
  &quot;gmpOrganization&quot;: &quot;A String&quot;, # Output only. The URI for a Google Marketing Platform organization resource. Only set when this account is connected to a GMP organization. Format: marketingplatformadmin.googleapis.com/organizations/{org_id}
  &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this account. Format: accounts/{account} Example: &quot;accounts/100&quot;
  &quot;regionCode&quot;: &quot;A String&quot;, # Country of business. Must be a Unicode CLDR region code.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when account payload fields were last updated.
}</pre>
</div>

<div class="method">
    <code class="details" id="provisionAccountTicket">provisionAccountTicket(body=None, x__xgafv=None)</code>
  <pre>Requests a ticket for creating an account.

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request message for ProvisionAccountTicket RPC.
  &quot;account&quot;: { # A resource message representing a Google Analytics account. # The account to create.
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this account was originally created.
    &quot;deleted&quot;: True or False, # Output only. Indicates whether this Account is soft-deleted or not. Deleted accounts are excluded from List results unless specifically requested.
    &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this account.
    &quot;gmpOrganization&quot;: &quot;A String&quot;, # Output only. The URI for a Google Marketing Platform organization resource. Only set when this account is connected to a GMP organization. Format: marketingplatformadmin.googleapis.com/organizations/{org_id}
    &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this account. Format: accounts/{account} Example: &quot;accounts/100&quot;
    &quot;regionCode&quot;: &quot;A String&quot;, # Country of business. Must be a Unicode CLDR region code.
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when account payload fields were last updated.
  },
  &quot;redirectUri&quot;: &quot;A String&quot;, # Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in Cloud Console as a Redirect URI.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for ProvisionAccountTicket RPC.
  &quot;accountTicketId&quot;: &quot;A String&quot;, # The param to be passed in the ToS link.
}</pre>
</div>

<div class="method">
    <code class="details" id="runAccessReport">runAccessReport(entity, body=None, x__xgafv=None)</code>
  <pre>Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. Reports may be requested for any property, but dimensions that aren&#x27;t related to quota can only be requested on Google Analytics 360 properties. This method is only available to Administrators. These data access records include GA UI Reporting, GA UI Explorations, GA Data API, and other products like Firebase &amp; Admob that can retrieve data from Google Analytics through a linkage. These records don&#x27;t include property configuration changes like adding a stream or changing a property&#x27;s time zone. For configuration change history, see [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents). To give your feedback on this API, complete the [Google Analytics Access Reports feedback](https://docs.google.com/forms/d/e/1FAIpQLSdmEBUrMzAEdiEKk5TV5dEHvDUZDRlgWYdQdAeSdtR4hVjEhw/viewform) form.

Args:
  entity: string, The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for all properties under that account. To request at the property level, entity should be for example &#x27;properties/123&#x27; if &quot;123&quot; is your Google Analytics property ID. To request at the account level, entity should be for example &#x27;accounts/1234&#x27; if &quot;1234&quot; is your Google Analytics Account ID. (required)
  body: object, The request body.
    The object takes the form of:

{ # The request for a Data Access Record Report.
  &quot;dateRanges&quot;: [ # Date ranges of access records to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two date ranges overlap, the access records for the overlapping days is included in the response rows for both date ranges. Requests are allowed up to 2 date ranges.
    { # A contiguous range of days: startDate, startDate + 1, ..., endDate.
      &quot;endDate&quot;: &quot;A String&quot;, # The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `startDate`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the current time in the request&#x27;s time zone.
      &quot;startDate&quot;: &quot;A String&quot;, # The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `endDate`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the current time in the request&#x27;s time zone.
    },
  ],
  &quot;dimensionFilter&quot;: { # Expresses dimension or metric filters. The fields in the same expression need to be either all dimensions or all metrics. # Dimension filters let you restrict report response to specific dimension values which match the filter. For example, filtering on access records of a single user. To learn more, see [Fundamentals of Dimension Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) for examples. Metrics cannot be used in this filter.
    &quot;accessFilter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. In the same FilterExpression, all of the filter&#x27;s field names need to be either all dimensions or all metrics.
      &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
        &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
          &quot;doubleValue&quot;: 3.14, # Double value
          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
        },
        &quot;toValue&quot;: { # To represent a number. # Ends with this number.
          &quot;doubleValue&quot;: 3.14, # Double value
          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
        },
      },
      &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name.
      &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
        &quot;values&quot;: [ # The list of string values. Must be non-empty.
          &quot;A String&quot;,
        ],
      },
      &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
        &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
        &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
          &quot;doubleValue&quot;: 3.14, # Double value
          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
        },
      },
      &quot;stringFilter&quot;: { # The filter for strings. # Strings related filter.
        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
        &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
        &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
      },
    },
    &quot;andGroup&quot;: { # A list of filter expressions. # Each of the FilterExpressions in the and_group has an AND relationship.
      &quot;expressions&quot;: [ # A list of filter expressions.
        # Object with schema name: GoogleAnalyticsAdminV1alphaAccessFilterExpression
      ],
    },
    &quot;notExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaAccessFilterExpression # The FilterExpression is NOT of not_expression.
    &quot;orGroup&quot;: { # A list of filter expressions. # Each of the FilterExpressions in the or_group has an OR relationship.
      &quot;expressions&quot;: [ # A list of filter expressions.
        # Object with schema name: GoogleAnalyticsAdminV1alphaAccessFilterExpression
      ],
    },
  },
  &quot;dimensions&quot;: [ # The dimensions requested and displayed in the response. Requests are allowed up to 9 dimensions.
    { # Dimensions are attributes of your data. For example, the dimension `userEmail` indicates the email of the user that accessed reporting data. Dimension values in report responses are strings.
      &quot;dimensionName&quot;: &quot;A String&quot;, # The API name of the dimension. See [Data Access Schema](https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema) for the list of dimensions supported in this API. Dimensions are referenced by name in `dimensionFilter` and `orderBys`.
    },
  ],
  &quot;expandGroups&quot;: True or False, # Optional. Decides whether to return the users within user groups. This field works only when include_all_users is set to true. If true, it will return all users with access to the specified property or account. If false, only the users with direct access will be returned.
  &quot;includeAllUsers&quot;: True or False, # Optional. Determines whether to include users who have never made an API call in the response. If true, all users with access to the specified property or account are included in the response, regardless of whether they have made an API call or not. If false, only the users who have made an API call will be included.
  &quot;limit&quot;: &quot;A String&quot;, # The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for. `limit` must be positive. The API may return fewer rows than the requested `limit`, if there aren&#x27;t as many remaining rows as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can&#x27;t get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
  &quot;metricFilter&quot;: { # Expresses dimension or metric filters. The fields in the same expression need to be either all dimensions or all metrics. # Metric filters allow you to restrict report response to specific metric values which match the filter. Metric filters are applied after aggregating the report&#x27;s rows, similar to SQL having-clause. Dimensions cannot be used in this filter.
    &quot;accessFilter&quot;: { # An expression to filter dimension or metric values. # A primitive filter. In the same FilterExpression, all of the filter&#x27;s field names need to be either all dimensions or all metrics.
      &quot;betweenFilter&quot;: { # To express that the result needs to be between two numbers (inclusive). # A filter for two values.
        &quot;fromValue&quot;: { # To represent a number. # Begins with this number.
          &quot;doubleValue&quot;: 3.14, # Double value
          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
        },
        &quot;toValue&quot;: { # To represent a number. # Ends with this number.
          &quot;doubleValue&quot;: 3.14, # Double value
          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
        },
      },
      &quot;fieldName&quot;: &quot;A String&quot;, # The dimension name or metric name.
      &quot;inListFilter&quot;: { # The result needs to be in a list of string values. # A filter for in list values.
        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
        &quot;values&quot;: [ # The list of string values. Must be non-empty.
          &quot;A String&quot;,
        ],
      },
      &quot;numericFilter&quot;: { # Filters for numeric or date values. # A filter for numeric or date values.
        &quot;operation&quot;: &quot;A String&quot;, # The operation type for this filter.
        &quot;value&quot;: { # To represent a number. # A numeric value or a date value.
          &quot;doubleValue&quot;: 3.14, # Double value
          &quot;int64Value&quot;: &quot;A String&quot;, # Integer value
        },
      },
      &quot;stringFilter&quot;: { # The filter for strings. # Strings related filter.
        &quot;caseSensitive&quot;: True or False, # If true, the string value is case sensitive.
        &quot;matchType&quot;: &quot;A String&quot;, # The match type for this filter.
        &quot;value&quot;: &quot;A String&quot;, # The string value used for the matching.
      },
    },
    &quot;andGroup&quot;: { # A list of filter expressions. # Each of the FilterExpressions in the and_group has an AND relationship.
      &quot;expressions&quot;: [ # A list of filter expressions.
        # Object with schema name: GoogleAnalyticsAdminV1alphaAccessFilterExpression
      ],
    },
    &quot;notExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaAccessFilterExpression # The FilterExpression is NOT of not_expression.
    &quot;orGroup&quot;: { # A list of filter expressions. # Each of the FilterExpressions in the or_group has an OR relationship.
      &quot;expressions&quot;: [ # A list of filter expressions.
        # Object with schema name: GoogleAnalyticsAdminV1alphaAccessFilterExpression
      ],
    },
  },
  &quot;metrics&quot;: [ # The metrics requested and displayed in the response. Requests are allowed up to 10 metrics.
    { # The quantitative measurements of a report. For example, the metric `accessCount` is the total number of data access records.
      &quot;metricName&quot;: &quot;A String&quot;, # The API name of the metric. See [Data Access Schema](https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema) for the list of metrics supported in this API. Metrics are referenced by name in `metricFilter` &amp; `orderBys`.
    },
  ],
  &quot;offset&quot;: &quot;A String&quot;, # The row count of the start row. The first row is counted as row 0. If offset is unspecified, it is treated as 0. If offset is zero, then this method will return the first page of results with `limit` entries. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
  &quot;orderBys&quot;: [ # Specifies how rows are ordered in the response.
    { # Order bys define how rows will be sorted in the response. For example, ordering rows by descending access count is one ordering, and ordering rows by the country string is a different ordering.
      &quot;desc&quot;: True or False, # If true, sorts by descending order. If false or unspecified, sorts in ascending order.
      &quot;dimension&quot;: { # Sorts by dimension values. # Sorts results by a dimension&#x27;s values.
        &quot;dimensionName&quot;: &quot;A String&quot;, # A dimension name in the request to order by.
        &quot;orderType&quot;: &quot;A String&quot;, # Controls the rule for dimension value ordering.
      },
      &quot;metric&quot;: { # Sorts by metric values. # Sorts results by a metric&#x27;s values.
        &quot;metricName&quot;: &quot;A String&quot;, # A metric name in the request to order by.
      },
    },
  ],
  &quot;returnEntityQuota&quot;: True or False, # Toggles whether to return the current state of this Analytics Property&#x27;s quota. Quota is returned in [AccessQuota](#AccessQuota). For account-level requests, this field must be false.
  &quot;timeZone&quot;: &quot;A String&quot;, # This request&#x27;s time zone if specified. If unspecified, the property&#x27;s time zone is used. The request&#x27;s time zone is used to interpret the start &amp; end dates of the report. Formatted as strings from the IANA Time Zone database (https://www.iana.org/time-zones); for example &quot;America/New_York&quot; or &quot;Asia/Tokyo&quot;.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The customized Data Access Record Report response.
  &quot;dimensionHeaders&quot;: [ # The header for a column in the report that corresponds to a specific dimension. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows.
    { # Describes a dimension column in the report. Dimensions requested in a report produce column entries within rows and DimensionHeaders. However, dimensions used exclusively within filters or expressions do not produce columns in a report; correspondingly, those dimensions do not produce headers.
      &quot;dimensionName&quot;: &quot;A String&quot;, # The dimension&#x27;s name; for example &#x27;userEmail&#x27;.
    },
  ],
  &quot;metricHeaders&quot;: [ # The header for a column in the report that corresponds to a specific metric. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows.
    { # Describes a metric column in the report. Visible metrics requested in a report produce column entries within rows and MetricHeaders. However, metrics used exclusively within filters or expressions do not produce columns in a report; correspondingly, those metrics do not produce headers.
      &quot;metricName&quot;: &quot;A String&quot;, # The metric&#x27;s name; for example &#x27;accessCount&#x27;.
    },
  ],
  &quot;quota&quot;: { # Current state of all quotas for this Analytics property. If any quota for a property is exhausted, all requests to that property will return Resource Exhausted errors. # The quota state for this Analytics property including this request. This field doesn&#x27;t work with account-level requests.
    &quot;concurrentRequests&quot;: { # Current state for a particular quota group. # Properties can use up to 50 concurrent requests.
      &quot;consumed&quot;: 42, # Quota consumed by this request.
      &quot;remaining&quot;: 42, # Quota remaining after this request.
    },
    &quot;serverErrorsPerProjectPerHour&quot;: { # Current state for a particular quota group. # Properties and cloud project pairs can have up to 50 server errors per hour.
      &quot;consumed&quot;: 42, # Quota consumed by this request.
      &quot;remaining&quot;: 42, # Quota remaining after this request.
    },
    &quot;tokensPerDay&quot;: { # Current state for a particular quota group. # Properties can use 250,000 tokens per day. Most requests consume fewer than 10 tokens.
      &quot;consumed&quot;: 42, # Quota consumed by this request.
      &quot;remaining&quot;: 42, # Quota remaining after this request.
    },
    &quot;tokensPerHour&quot;: { # Current state for a particular quota group. # Properties can use 50,000 tokens per hour. An API request consumes a single number of tokens, and that number is deducted from all of the hourly, daily, and per project hourly quotas.
      &quot;consumed&quot;: 42, # Quota consumed by this request.
      &quot;remaining&quot;: 42, # Quota remaining after this request.
    },
    &quot;tokensPerProjectPerHour&quot;: { # Current state for a particular quota group. # Properties can use up to 25% of their tokens per project per hour. This amounts to Analytics 360 Properties can use 12,500 tokens per project per hour. An API request consumes a single number of tokens, and that number is deducted from all of the hourly, daily, and per project hourly quotas.
      &quot;consumed&quot;: 42, # Quota consumed by this request.
      &quot;remaining&quot;: 42, # Quota remaining after this request.
    },
  },
  &quot;rowCount&quot;: 42, # The total number of rows in the query result. `rowCount` is independent of the number of rows returned in the response, the `limit` request parameter, and the `offset` request parameter. For example if a query returns 175 rows and includes `limit` of 50 in the API request, the response will contain `rowCount` of 175 but only 50 rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).
  &quot;rows&quot;: [ # Rows of dimension value combinations and metric values in the report.
    { # Access report data for each row.
      &quot;dimensionValues&quot;: [ # List of dimension values. These values are in the same order as specified in the request.
        { # The value of a dimension.
          &quot;value&quot;: &quot;A String&quot;, # The dimension value. For example, this value may be &#x27;France&#x27; for the &#x27;country&#x27; dimension.
        },
      ],
      &quot;metricValues&quot;: [ # List of metric values. These values are in the same order as specified in the request.
        { # The value of a metric.
          &quot;value&quot;: &quot;A String&quot;, # The measurement value. For example, this value may be &#x27;13&#x27;.
        },
      ],
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="searchChangeHistoryEvents">searchChangeHistoryEvents(account, body=None, x__xgafv=None)</code>
  <pre>Searches through all changes to an account or its children given the specified set of filters. Only returns the subset of changes supported by the API. The UI may return additional changes.

Args:
  account: string, Required. The account resource for which to return change history resources. Format: accounts/{account} Example: `accounts/100` (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for SearchChangeHistoryEvents RPC.
  &quot;action&quot;: [ # Optional. If set, only return changes that match one or more of these types of actions.
    &quot;A String&quot;,
  ],
  &quot;actorEmail&quot;: [ # Optional. If set, only return changes if they are made by a user in this list.
    &quot;A String&quot;,
  ],
  &quot;earliestChangeTime&quot;: &quot;A String&quot;, # Optional. If set, only return changes made after this time (inclusive).
  &quot;latestChangeTime&quot;: &quot;A String&quot;, # Optional. If set, only return changes made before this time (inclusive).
  &quot;pageSize&quot;: 42, # Optional. The maximum number of ChangeHistoryEvent items to return. If unspecified, at most 50 items will be returned. The maximum value is 200 (higher values will be coerced to the maximum). Note that the service may return a page with fewer items than this value specifies (potentially even zero), and that there still may be additional pages. If you want a particular number of items, you&#x27;ll need to continue requesting additional pages using `page_token` until you get the needed number.
  &quot;pageToken&quot;: &quot;A String&quot;, # Optional. A page token, received from a previous `SearchChangeHistoryEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `SearchChangeHistoryEvents` must match the call that provided the page token.
  &quot;property&quot;: &quot;A String&quot;, # Optional. Resource name for a child property. If set, only return changes made to this property or its child resources. Format: properties/{propertyId} Example: `properties/100`
  &quot;resourceType&quot;: [ # Optional. If set, only return changes if they are for a resource that matches at least one of these types.
    &quot;A String&quot;,
  ],
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for SearchAccounts RPC.
  &quot;changeHistoryEvents&quot;: [ # Results that were accessible to the caller.
    { # A set of changes within a Google Analytics account or its child properties that resulted from the same cause. Common causes would be updates made in the Google Analytics UI, changes from customer support, or automatic Google Analytics system changes.
      &quot;actorType&quot;: &quot;A String&quot;, # The type of actor that made this change.
      &quot;changeTime&quot;: &quot;A String&quot;, # Time when change was made.
      &quot;changes&quot;: [ # A list of changes made in this change history event that fit the filters specified in SearchChangeHistoryEventsRequest.
        { # A description of a change to a single Google Analytics resource.
          &quot;action&quot;: &quot;A String&quot;, # The type of action that changed this resource.
          &quot;resource&quot;: &quot;A String&quot;, # Resource name of the resource whose changes are described by this entry.
          &quot;resourceAfterChange&quot;: { # A snapshot of a resource as before or after the result of a change in change history. # Resource contents from after the change was made. If this resource was deleted in this change, this field will be missing.
            &quot;account&quot;: { # A resource message representing a Google Analytics account. # A snapshot of an Account resource in change history.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this account was originally created.
              &quot;deleted&quot;: True or False, # Output only. Indicates whether this Account is soft-deleted or not. Deleted accounts are excluded from List results unless specifically requested.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this account.
              &quot;gmpOrganization&quot;: &quot;A String&quot;, # Output only. The URI for a Google Marketing Platform organization resource. Only set when this account is connected to a GMP organization. Format: marketingplatformadmin.googleapis.com/organizations/{org_id}
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this account. Format: accounts/{account} Example: &quot;accounts/100&quot;
              &quot;regionCode&quot;: &quot;A String&quot;, # Country of business. Must be a Unicode CLDR region code.
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when account payload fields were last updated.
            },
            &quot;adsenseLink&quot;: { # A link between a Google Analytics property and an AdSense for Content ad client. # A snapshot of an AdSenseLink resource in change history.
              &quot;adClientCode&quot;: &quot;A String&quot;, # Immutable. The AdSense ad client code that the Google Analytics property is linked to. Example format: &quot;ca-pub-1234567890&quot;
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this AdSense Link resource. Format: properties/{propertyId}/adSenseLinks/{linkId} Example: properties/1234/adSenseLinks/6789
            },
            &quot;attributionSettings&quot;: { # The attribution settings used for a given property. This is a singleton resource. # A snapshot of AttributionSettings resource in change history.
              &quot;acquisitionConversionEventLookbackWindow&quot;: &quot;A String&quot;, # Required. The lookback window configuration for acquisition conversion events. The default window size is 30 days.
              &quot;adsWebConversionDataExportScope&quot;: &quot;A String&quot;, # Required. The Conversion Export Scope for data exported to linked Ads Accounts.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this attribution settings resource. Format: properties/{property_id}/attributionSettings Example: &quot;properties/1000/attributionSettings&quot;
              &quot;otherConversionEventLookbackWindow&quot;: &quot;A String&quot;, # Required. The lookback window for all other, non-acquisition conversion events. The default window size is 90 days.
              &quot;reportingAttributionModel&quot;: &quot;A String&quot;, # Required. The reporting attribution model used to calculate conversion credit in this property&#x27;s reports. Changing the attribution model will apply to both historical and future data. These changes will be reflected in reports with conversion and revenue data. User and session data will be unaffected.
            },
            &quot;audience&quot;: { # A resource message representing an Audience. # A snapshot of an Audience resource in change history.
              &quot;adsPersonalizationEnabled&quot;: True or False, # Output only. It is automatically set by GA to false if this is an NPA Audience and is excluded from ads personalization.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the Audience was created.
              &quot;description&quot;: &quot;A String&quot;, # Required. The description of the Audience.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the Audience.
              &quot;eventTrigger&quot;: { # Specifies an event to log when a user joins the Audience. # Optional. Specifies an event to log when a user joins the Audience. If not set, no event is logged when a user joins the Audience.
                &quot;eventName&quot;: &quot;A String&quot;, # Required. The event name that will be logged.
                &quot;logCondition&quot;: &quot;A String&quot;, # Required. When to log the event.
              },
              &quot;exclusionDurationMode&quot;: &quot;A String&quot;, # Immutable. Specifies how long an exclusion lasts for users that meet the exclusion filter. It is applied to all EXCLUDE filter clauses and is ignored when there is no EXCLUDE filter clause in the Audience.
              &quot;filterClauses&quot;: [ # Required. Immutable. Unordered list. Filter clauses that define the Audience. All clauses will be AND’ed together.
                { # A clause for defining either a simple or sequence filter. A filter can be inclusive (For example, users satisfying the filter clause are included in the Audience) or exclusive (For example, users satisfying the filter clause are excluded from the Audience).
                  &quot;clauseType&quot;: &quot;A String&quot;, # Required. Specifies whether this is an include or exclude filter clause.
                  &quot;sequenceFilter&quot;: { # Defines filters that must occur in a specific order for the user to be a member of the Audience. # Filters that must occur in a specific order for the user to be a member of the Audience.
                    &quot;scope&quot;: &quot;A String&quot;, # Required. Immutable. Specifies the scope for this filter.
                    &quot;sequenceMaximumDuration&quot;: &quot;A String&quot;, # Optional. Defines the time period in which the whole sequence must occur.
                    &quot;sequenceSteps&quot;: [ # Required. An ordered sequence of steps. A user must complete each step in order to join the sequence filter.
                      { # A condition that must occur in the specified step order for this user to match the sequence.
                        &quot;constraintDuration&quot;: &quot;A String&quot;, # Optional. When set, this step must be satisfied within the constraint_duration of the previous step (For example, t[i] - t[i-1] &lt;= constraint_duration). If not set, there is no duration requirement (the duration is effectively unlimited). It is ignored for the first step.
                        &quot;filterExpression&quot;: { # A logical expression of Audience dimension, metric, or event filters. # Required. Immutable. A logical expression of Audience dimension, metric, or event filters in each step.
                          &quot;andGroup&quot;: { # A list of Audience filter expressions. # A list of expressions to be AND’ed together. It can only contain AudienceFilterExpressions with or_group. This must be set for the top level AudienceFilterExpression.
                            &quot;filterExpressions&quot;: [ # A list of Audience filter expressions.
                              # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression
                            ],
                          },
                          &quot;dimensionOrMetricFilter&quot;: { # A specific filter for a single dimension or metric. # A filter on a single dimension or metric. This cannot be set on the top level AudienceFilterExpression.
                            &quot;atAnyPointInTime&quot;: True or False, # Optional. Indicates whether this filter needs dynamic evaluation or not. If set to true, users join the Audience if they ever met the condition (static evaluation). If unset or set to false, user evaluation for an Audience is dynamic; users are added to an Audience when they meet the conditions and then removed when they no longer meet them. This can only be set when Audience scope is ACROSS_ALL_SESSIONS.
                            &quot;betweenFilter&quot;: { # A filter for numeric or date values between certain values on a dimension or metric. # A filter for numeric or date values between certain values on a dimension or metric.
                              &quot;fromValue&quot;: { # To represent a number. # Required. Begins with this number, inclusive.
                                &quot;doubleValue&quot;: 3.14, # Double value.
                                &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                              },
                              &quot;toValue&quot;: { # To represent a number. # Required. Ends with this number, inclusive.
                                &quot;doubleValue&quot;: 3.14, # Double value.
                                &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                              },
                            },
                            &quot;fieldName&quot;: &quot;A String&quot;, # Required. Immutable. The dimension name or metric name to filter. If the field name refers to a custom dimension or metric, a scope prefix will be added to the front of the custom dimensions or metric name. For more on scope prefixes or custom dimensions/metrics, reference the [Google Analytics Data API documentation] (https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#custom_dimensions).
                            &quot;inAnyNDayPeriod&quot;: 42, # Optional. If set, specifies the time window for which to evaluate data in number of days. If not set, then audience data is evaluated against lifetime data (For example, infinite time window). For example, if set to 1 day, only the current day&#x27;s data is evaluated. The reference point is the current day when at_any_point_in_time is unset or false. It can only be set when Audience scope is ACROSS_ALL_SESSIONS and cannot be greater than 60 days.
                            &quot;inListFilter&quot;: { # A filter for a string dimension that matches a particular list of options. # A filter for a string dimension that matches a particular list of options.
                              &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive.
                              &quot;values&quot;: [ # Required. The list of possible string values to match against. Must be non-empty.
                                &quot;A String&quot;,
                              ],
                            },
                            &quot;numericFilter&quot;: { # A filter for numeric or date values on a dimension or metric. # A filter for numeric or date values on a dimension or metric.
                              &quot;operation&quot;: &quot;A String&quot;, # Required. The operation applied to a numeric filter.
                              &quot;value&quot;: { # To represent a number. # Required. The numeric or date value to match against.
                                &quot;doubleValue&quot;: 3.14, # Double value.
                                &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                              },
                            },
                            &quot;stringFilter&quot;: { # A filter for a string-type dimension that matches a particular pattern. # A filter for a string-type dimension that matches a particular pattern.
                              &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive.
                              &quot;matchType&quot;: &quot;A String&quot;, # Required. The match type for the string filter.
                              &quot;value&quot;: &quot;A String&quot;, # Required. The string value to be matched against.
                            },
                          },
                          &quot;eventFilter&quot;: { # A filter that matches events of a single event name. If an event parameter is specified, only the subset of events that match both the single event name and the parameter filter expressions match this event filter. # Creates a filter that matches a specific event. This cannot be set on the top level AudienceFilterExpression.
                            &quot;eventName&quot;: &quot;A String&quot;, # Required. Immutable. The name of the event to match against.
                            &quot;eventParameterFilterExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression # Optional. If specified, this filter matches events that match both the single event name and the parameter filter expressions. AudienceEventFilter inside the parameter filter expression cannot be set (For example, nested event filters are not supported). This should be a single and_group of dimension_or_metric_filter or not_expression; ANDs of ORs are not supported. Also, if it includes a filter for &quot;eventCount&quot;, only that one will be considered; all the other filters will be ignored.
                          },
                          &quot;notExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression # A filter expression to be NOT&#x27;ed (For example, inverted, complemented). It can only include a dimension_or_metric_filter. This cannot be set on the top level AudienceFilterExpression.
                          &quot;orGroup&quot;: { # A list of Audience filter expressions. # A list of expressions to OR’ed together. It cannot contain AudienceFilterExpressions with and_group or or_group.
                            &quot;filterExpressions&quot;: [ # A list of Audience filter expressions.
                              # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression
                            ],
                          },
                        },
                        &quot;immediatelyFollows&quot;: True or False, # Optional. If true, the event satisfying this step must be the very next event after the event satisfying the last step. If unset or false, this step indirectly follows the prior step; for example, there may be events between the prior step and this step. It is ignored for the first step.
                        &quot;scope&quot;: &quot;A String&quot;, # Required. Immutable. Specifies the scope for this step.
                      },
                    ],
                  },
                  &quot;simpleFilter&quot;: { # Defines a simple filter that a user must satisfy to be a member of the Audience. # A simple filter that a user must satisfy to be a member of the Audience.
                    &quot;filterExpression&quot;: { # A logical expression of Audience dimension, metric, or event filters. # Required. Immutable. A logical expression of Audience dimension, metric, or event filters.
                      &quot;andGroup&quot;: { # A list of Audience filter expressions. # A list of expressions to be AND’ed together. It can only contain AudienceFilterExpressions with or_group. This must be set for the top level AudienceFilterExpression.
                        &quot;filterExpressions&quot;: [ # A list of Audience filter expressions.
                          # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression
                        ],
                      },
                      &quot;dimensionOrMetricFilter&quot;: { # A specific filter for a single dimension or metric. # A filter on a single dimension or metric. This cannot be set on the top level AudienceFilterExpression.
                        &quot;atAnyPointInTime&quot;: True or False, # Optional. Indicates whether this filter needs dynamic evaluation or not. If set to true, users join the Audience if they ever met the condition (static evaluation). If unset or set to false, user evaluation for an Audience is dynamic; users are added to an Audience when they meet the conditions and then removed when they no longer meet them. This can only be set when Audience scope is ACROSS_ALL_SESSIONS.
                        &quot;betweenFilter&quot;: { # A filter for numeric or date values between certain values on a dimension or metric. # A filter for numeric or date values between certain values on a dimension or metric.
                          &quot;fromValue&quot;: { # To represent a number. # Required. Begins with this number, inclusive.
                            &quot;doubleValue&quot;: 3.14, # Double value.
                            &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                          },
                          &quot;toValue&quot;: { # To represent a number. # Required. Ends with this number, inclusive.
                            &quot;doubleValue&quot;: 3.14, # Double value.
                            &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                          },
                        },
                        &quot;fieldName&quot;: &quot;A String&quot;, # Required. Immutable. The dimension name or metric name to filter. If the field name refers to a custom dimension or metric, a scope prefix will be added to the front of the custom dimensions or metric name. For more on scope prefixes or custom dimensions/metrics, reference the [Google Analytics Data API documentation] (https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#custom_dimensions).
                        &quot;inAnyNDayPeriod&quot;: 42, # Optional. If set, specifies the time window for which to evaluate data in number of days. If not set, then audience data is evaluated against lifetime data (For example, infinite time window). For example, if set to 1 day, only the current day&#x27;s data is evaluated. The reference point is the current day when at_any_point_in_time is unset or false. It can only be set when Audience scope is ACROSS_ALL_SESSIONS and cannot be greater than 60 days.
                        &quot;inListFilter&quot;: { # A filter for a string dimension that matches a particular list of options. # A filter for a string dimension that matches a particular list of options.
                          &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive.
                          &quot;values&quot;: [ # Required. The list of possible string values to match against. Must be non-empty.
                            &quot;A String&quot;,
                          ],
                        },
                        &quot;numericFilter&quot;: { # A filter for numeric or date values on a dimension or metric. # A filter for numeric or date values on a dimension or metric.
                          &quot;operation&quot;: &quot;A String&quot;, # Required. The operation applied to a numeric filter.
                          &quot;value&quot;: { # To represent a number. # Required. The numeric or date value to match against.
                            &quot;doubleValue&quot;: 3.14, # Double value.
                            &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                          },
                        },
                        &quot;stringFilter&quot;: { # A filter for a string-type dimension that matches a particular pattern. # A filter for a string-type dimension that matches a particular pattern.
                          &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive.
                          &quot;matchType&quot;: &quot;A String&quot;, # Required. The match type for the string filter.
                          &quot;value&quot;: &quot;A String&quot;, # Required. The string value to be matched against.
                        },
                      },
                      &quot;eventFilter&quot;: { # A filter that matches events of a single event name. If an event parameter is specified, only the subset of events that match both the single event name and the parameter filter expressions match this event filter. # Creates a filter that matches a specific event. This cannot be set on the top level AudienceFilterExpression.
                        &quot;eventName&quot;: &quot;A String&quot;, # Required. Immutable. The name of the event to match against.
                        &quot;eventParameterFilterExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression # Optional. If specified, this filter matches events that match both the single event name and the parameter filter expressions. AudienceEventFilter inside the parameter filter expression cannot be set (For example, nested event filters are not supported). This should be a single and_group of dimension_or_metric_filter or not_expression; ANDs of ORs are not supported. Also, if it includes a filter for &quot;eventCount&quot;, only that one will be considered; all the other filters will be ignored.
                      },
                      &quot;notExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression # A filter expression to be NOT&#x27;ed (For example, inverted, complemented). It can only include a dimension_or_metric_filter. This cannot be set on the top level AudienceFilterExpression.
                      &quot;orGroup&quot;: { # A list of Audience filter expressions. # A list of expressions to OR’ed together. It cannot contain AudienceFilterExpressions with and_group or or_group.
                        &quot;filterExpressions&quot;: [ # A list of Audience filter expressions.
                          # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression
                        ],
                      },
                    },
                    &quot;scope&quot;: &quot;A String&quot;, # Required. Immutable. Specifies the scope for this filter.
                  },
                },
              ],
              &quot;membershipDurationDays&quot;: 42, # Required. Immutable. The duration a user should stay in an Audience. It cannot be set to more than 540 days.
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Audience resource. Format: properties/{propertyId}/audiences/{audienceId}
            },
            &quot;bigqueryLink&quot;: { # A link between a Google Analytics property and BigQuery project. # A snapshot of a BigQuery link resource in change history.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the link was created.
              &quot;dailyExportEnabled&quot;: True or False, # If set true, enables daily data export to the linked Google Cloud project.
              &quot;datasetLocation&quot;: &quot;A String&quot;, # Required. Immutable. The geographic location where the created BigQuery dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.
              &quot;excludedEvents&quot;: [ # The list of event names that will be excluded from exports.
                &quot;A String&quot;,
              ],
              &quot;exportStreams&quot;: [ # The list of streams under the parent property for which data will be exported. Format: properties/{property_id}/dataStreams/{stream_id} Example: [&#x27;properties/1000/dataStreams/2000&#x27;]
                &quot;A String&quot;,
              ],
              &quot;freshDailyExportEnabled&quot;: True or False, # If set true, enables fresh daily export to the linked Google Cloud project.
              &quot;includeAdvertisingId&quot;: True or False, # If set true, exported data will include advertising identifiers for mobile app streams.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this BigQuery link. Format: &#x27;properties/{property_id}/bigQueryLinks/{bigquery_link_id}&#x27; Format: &#x27;properties/1234/bigQueryLinks/abc567&#x27;
              &quot;project&quot;: &quot;A String&quot;, # Immutable. The linked Google Cloud project. When creating a BigQueryLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, the returned project will always have a project that contains a project number. Format: &#x27;projects/{project number}&#x27; Example: &#x27;projects/1234&#x27;
              &quot;streamingExportEnabled&quot;: True or False, # If set true, enables streaming export to the linked Google Cloud project.
            },
            &quot;calculatedMetric&quot;: { # A definition for a calculated metric. # A snapshot of a CalculatedMetric resource in change history.
              &quot;calculatedMetricId&quot;: &quot;A String&quot;, # Output only. The ID to use for the calculated metric. In the UI, this is referred to as the &quot;API name.&quot; The calculated_metric_id is used when referencing this calculated metric from external APIs. For example, &quot;calcMetric:{calculated_metric_id}&quot;.
              &quot;description&quot;: &quot;A String&quot;, # Optional. Description for this calculated metric. Max length of 4096 characters.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Display name for this calculated metric as shown in the Google Analytics UI. Max length 82 characters.
              &quot;formula&quot;: &quot;A String&quot;, # Required. The calculated metric&#x27;s definition. Maximum number of unique referenced custom metrics is 5. Formulas supports the following operations: + (addition), - (subtraction), - (negative), * (multiplication), / (division), () (parenthesis). Any valid real numbers are acceptable that fit in a Long (64bit integer) or a Double (64 bit floating point number). Example formula: &quot;( customEvent:parameter_name + cartPurchaseQuantity ) / 2.0&quot;
              &quot;invalidMetricReference&quot;: True or False, # Output only. If true, this calculated metric has a invalid metric reference. Anything using a calculated metric with invalid_metric_reference set to true may fail, produce warnings, or produce unexpected results.
              &quot;metricUnit&quot;: &quot;A String&quot;, # Required. The type for the calculated metric&#x27;s value.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for this CalculatedMetric. Format: &#x27;properties/{property_id}/calculatedMetrics/{calculated_metric_id}&#x27;
              &quot;restrictedMetricType&quot;: [ # Output only. Types of restricted data that this metric contains.
                &quot;A String&quot;,
              ],
            },
            &quot;channelGroup&quot;: { # A resource message representing a Channel Group. # A snapshot of a ChannelGroup resource in change history.
              &quot;description&quot;: &quot;A String&quot;, # The description of the Channel Group. Max length of 256 characters.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the Channel Group. Max length of 80 characters.
              &quot;groupingRule&quot;: [ # Required. The grouping rules of channels. Maximum number of rules is 50.
                { # The rules that govern how traffic is grouped into one channel.
                  &quot;displayName&quot;: &quot;A String&quot;, # Required. Customer defined display name for the channel.
                  &quot;expression&quot;: { # A logical expression of Channel Group dimension filters. # Required. The Filter Expression that defines the Grouping Rule.
                    &quot;andGroup&quot;: { # A list of Channel Group filter expressions. # A list of expressions to be AND’ed together. It can only contain ChannelGroupFilterExpressions with or_group. This must be set for the top level ChannelGroupFilterExpression.
                      &quot;filterExpressions&quot;: [ # A list of Channel Group filter expressions.
                        # Object with schema name: GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression
                      ],
                    },
                    &quot;filter&quot;: { # A specific filter for a single dimension. # A filter on a single dimension. This cannot be set on the top level ChannelGroupFilterExpression.
                      &quot;fieldName&quot;: &quot;A String&quot;, # Required. Immutable. The dimension name to filter.
                      &quot;inListFilter&quot;: { # A filter for a string dimension that matches a particular list of options. The match is case insensitive. # A filter for a string dimension that matches a particular list of options.
                        &quot;values&quot;: [ # Required. The list of possible string values to match against. Must be non-empty.
                          &quot;A String&quot;,
                        ],
                      },
                      &quot;stringFilter&quot;: { # Filter where the field value is a String. The match is case insensitive. # A filter for a string-type dimension that matches a particular pattern.
                        &quot;matchType&quot;: &quot;A String&quot;, # Required. The match type for the string filter.
                        &quot;value&quot;: &quot;A String&quot;, # Required. The string value to be matched against.
                      },
                    },
                    &quot;notExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression # A filter expression to be NOT&#x27;ed (that is inverted, complemented). It can only include a dimension_or_metric_filter. This cannot be set on the top level ChannelGroupFilterExpression.
                    &quot;orGroup&quot;: { # A list of Channel Group filter expressions. # A list of expressions to OR’ed together. It cannot contain ChannelGroupFilterExpressions with and_group or or_group.
                      &quot;filterExpressions&quot;: [ # A list of Channel Group filter expressions.
                        # Object with schema name: GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression
                      ],
                    },
                  },
                },
              ],
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Channel Group resource. Format: properties/{property}/channelGroups/{channel_group}
              &quot;primary&quot;: True or False, # Optional. If true, this channel group will be used as the default channel group for reports. Only one channel group can be set as `primary` at any time. If the `primary` field gets set on a channel group, it will get unset on the previous primary channel group. The Google Analytics predefined channel group is the primary by default.
              &quot;systemDefined&quot;: True or False, # Output only. If true, then this channel group is the Default Channel Group predefined by Google Analytics. Display name and grouping rules cannot be updated for this channel group.
            },
            &quot;conversionEvent&quot;: { # A conversion event in a Google Analytics property. # A snapshot of a ConversionEvent resource in change history.
              &quot;countingMethod&quot;: &quot;A String&quot;, # Optional. The method by which conversions will be counted across multiple events within a session. If this value is not provided, it will be set to `ONCE_PER_EVENT`.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this conversion event was created in the property.
              &quot;custom&quot;: True or False, # Output only. If set to true, this conversion event refers to a custom event. If set to false, this conversion event refers to a default event in GA. Default events typically have special meaning in GA. Default events are usually created for you by the GA system, but in some cases can be created by property admins. Custom events count towards the maximum number of custom conversion events that may be created per property.
              &quot;defaultConversionValue&quot;: { # Defines a default value/currency for a conversion event. Both value and currency must be provided. # Optional. Defines a default value/currency for a conversion event.
                &quot;currencyCode&quot;: &quot;A String&quot;, # When a conversion event for this event_name has no set currency, this currency will be applied as the default. Must be in ISO 4217 currency code format. See https://en.wikipedia.org/wiki/ISO_4217 for more information.
                &quot;value&quot;: 3.14, # This value will be used to populate the value for all conversions of the specified event_name where the event &quot;value&quot; parameter is unset.
              },
              &quot;deletable&quot;: True or False, # Output only. If set, this event can currently be deleted with DeleteConversionEvent.
              &quot;eventName&quot;: &quot;A String&quot;, # Immutable. The event name for this conversion event. Examples: &#x27;click&#x27;, &#x27;purchase&#x27;
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this conversion event. Format: properties/{property}/conversionEvents/{conversion_event}
            },
            &quot;customDimension&quot;: { # A definition for a CustomDimension. # A snapshot of a CustomDimension resource in change history.
              &quot;description&quot;: &quot;A String&quot;, # Optional. Description for this custom dimension. Max length of 150 characters.
              &quot;disallowAdsPersonalization&quot;: True or False, # Optional. If set to true, sets this dimension as NPA and excludes it from ads personalization. This is currently only supported by user-scoped custom dimensions.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Display name for this custom dimension as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for this CustomDimension resource. Format: properties/{property}/customDimensions/{customDimension}
              &quot;parameterName&quot;: &quot;A String&quot;, # Required. Immutable. Tagging parameter name for this custom dimension. If this is a user-scoped dimension, then this is the user property name. If this is an event-scoped dimension, then this is the event parameter name. If this is an item-scoped dimension, then this is the parameter name found in the eCommerce items array. May only contain alphanumeric and underscore characters, starting with a letter. Max length of 24 characters for user-scoped dimensions, 40 characters for event-scoped dimensions.
              &quot;scope&quot;: &quot;A String&quot;, # Required. Immutable. The scope of this dimension.
            },
            &quot;customMetric&quot;: { # A definition for a custom metric. # A snapshot of a CustomMetric resource in change history.
              &quot;description&quot;: &quot;A String&quot;, # Optional. Description for this custom dimension. Max length of 150 characters.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets.
              &quot;measurementUnit&quot;: &quot;A String&quot;, # Required. The type for the custom metric&#x27;s value.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric}
              &quot;parameterName&quot;: &quot;A String&quot;, # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics.
              &quot;restrictedMetricType&quot;: [ # Optional. Types of restricted data that this metric may contain. Required for metrics with CURRENCY measurement unit. Must be empty for metrics with a non-CURRENCY measurement unit.
                &quot;A String&quot;,
              ],
              &quot;scope&quot;: &quot;A String&quot;, # Required. Immutable. The scope of this custom metric.
            },
            &quot;dataRedactionSettings&quot;: { # Settings for client-side data redaction. Singleton resource under a Web Stream. # A snapshot of DataRedactionSettings resource in change history.
              &quot;emailRedactionEnabled&quot;: True or False, # If enabled, any event parameter or user property values that look like an email will be redacted.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Name of this Data Redaction Settings resource. Format: properties/{property_id}/dataStreams/{data_stream}/dataRedactionSettings Example: &quot;properties/1000/dataStreams/2000/dataRedactionSettings&quot;
              &quot;queryParameterKeys&quot;: [ # The query parameter keys to apply redaction logic to if present in the URL. Query parameter matching is case-insensitive. Must contain at least one element if query_parameter_replacement_enabled is true. Keys cannot contain commas.
                &quot;A String&quot;,
              ],
              &quot;queryParameterRedactionEnabled&quot;: True or False, # Query Parameter redaction removes the key and value portions of a query parameter if it is in the configured set of query parameters. If enabled, URL query replacement logic will be run for the Stream. Any query parameters defined in query_parameter_keys will be redacted.
            },
            &quot;dataRetentionSettings&quot;: { # Settings values for data retention. This is a singleton resource. # A snapshot of a data retention settings resource in change history.
              &quot;eventDataRetention&quot;: &quot;A String&quot;, # Required. The length of time that event-level data is retained.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for this DataRetentionSetting resource. Format: properties/{property}/dataRetentionSettings
              &quot;resetUserDataOnNewActivity&quot;: True or False, # If true, reset the retention period for the user identifier with every event from that user.
              &quot;userDataRetention&quot;: &quot;A String&quot;, # Required. The length of time that user-level data is retained.
            },
            &quot;dataStream&quot;: { # A resource message representing a data stream. # A snapshot of a DataStream resource in change history.
              &quot;androidAppStreamData&quot;: { # Data specific to Android app streams. # Data specific to Android app streams. Must be populated if type is ANDROID_APP_DATA_STREAM.
                &quot;firebaseAppId&quot;: &quot;A String&quot;, # Output only. ID of the corresponding Android app in Firebase, if any. This ID can change if the Android app is deleted and recreated.
                &quot;packageName&quot;: &quot;A String&quot;, # Immutable. The package name for the app being measured. Example: &quot;com.example.myandroidapp&quot;
              },
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this stream was originally created.
              &quot;displayName&quot;: &quot;A String&quot;, # Human-readable display name for the Data Stream. Required for web data streams. The max allowed display name length is 255 UTF-16 code units.
              &quot;iosAppStreamData&quot;: { # Data specific to iOS app streams. # Data specific to iOS app streams. Must be populated if type is IOS_APP_DATA_STREAM.
                &quot;bundleId&quot;: &quot;A String&quot;, # Required. Immutable. The Apple App Store Bundle ID for the app Example: &quot;com.example.myiosapp&quot;
                &quot;firebaseAppId&quot;: &quot;A String&quot;, # Output only. ID of the corresponding iOS app in Firebase, if any. This ID can change if the iOS app is deleted and recreated.
              },
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this Data Stream. Format: properties/{property_id}/dataStreams/{stream_id} Example: &quot;properties/1000/dataStreams/2000&quot;
              &quot;type&quot;: &quot;A String&quot;, # Required. Immutable. The type of this DataStream resource.
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when stream payload fields were last updated.
              &quot;webStreamData&quot;: { # Data specific to web streams. # Data specific to web streams. Must be populated if type is WEB_DATA_STREAM.
                &quot;defaultUri&quot;: &quot;A String&quot;, # Domain name of the web app being measured, or empty. Example: &quot;http://www.google.com&quot;, &quot;https://www.google.com&quot;
                &quot;firebaseAppId&quot;: &quot;A String&quot;, # Output only. ID of the corresponding web app in Firebase, if any. This ID can change if the web app is deleted and recreated.
                &quot;measurementId&quot;: &quot;A String&quot;, # Output only. Analytics Measurement ID. Example: &quot;G-1A2BCD345E&quot;
              },
            },
            &quot;displayVideo360AdvertiserLink&quot;: { # A link between a Google Analytics property and a Display &amp; Video 360 advertiser. # A snapshot of a DisplayVideo360AdvertiserLink resource in change history.
              &quot;adsPersonalizationEnabled&quot;: True or False, # Enables personalized advertising features with this integration. If this field is not set on create/update, it will be defaulted to true.
              &quot;advertiserDisplayName&quot;: &quot;A String&quot;, # Output only. The display name of the Display &amp; Video 360 Advertiser.
              &quot;advertiserId&quot;: &quot;A String&quot;, # Immutable. The Display &amp; Video 360 Advertiser&#x27;s advertiser ID.
              &quot;campaignDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of campaign data from Display &amp; Video 360 into the Google Analytics property. After link creation, this can only be updated from the Display &amp; Video 360 product. If this field is not set on create, it will be defaulted to true.
              &quot;costDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of cost data from Display &amp; Video 360 into the Google Analytics property. This can only be enabled if `campaign_data_sharing_enabled` is true. After link creation, this can only be updated from the Display &amp; Video 360 product. If this field is not set on create, it will be defaulted to true.
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this DisplayVideo360AdvertiserLink resource. Format: properties/{propertyId}/displayVideo360AdvertiserLinks/{linkId} Note: linkId is not the Display &amp; Video 360 Advertiser ID
            },
            &quot;displayVideo360AdvertiserLinkProposal&quot;: { # A proposal for a link between a Google Analytics property and a Display &amp; Video 360 advertiser. A proposal is converted to a DisplayVideo360AdvertiserLink once approved. Google Analytics admins approve inbound proposals while Display &amp; Video 360 admins approve outbound proposals. # A snapshot of a DisplayVideo360AdvertiserLinkProposal resource in change history.
              &quot;adsPersonalizationEnabled&quot;: True or False, # Immutable. Enables personalized advertising features with this integration. If this field is not set on create, it will be defaulted to true.
              &quot;advertiserDisplayName&quot;: &quot;A String&quot;, # Output only. The display name of the Display &amp; Video Advertiser. Only populated for proposals that originated from Display &amp; Video 360.
              &quot;advertiserId&quot;: &quot;A String&quot;, # Immutable. The Display &amp; Video 360 Advertiser&#x27;s advertiser ID.
              &quot;campaignDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of campaign data from Display &amp; Video 360. If this field is not set on create, it will be defaulted to true.
              &quot;costDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of cost data from Display &amp; Video 360. This can only be enabled if campaign_data_sharing_enabled is enabled. If this field is not set on create, it will be defaulted to true.
              &quot;linkProposalStatusDetails&quot;: { # Status information for a link proposal. # Output only. The status information for this link proposal.
                &quot;linkProposalInitiatingProduct&quot;: &quot;A String&quot;, # Output only. The source of this proposal.
                &quot;linkProposalState&quot;: &quot;A String&quot;, # Output only. The state of this proposal.
                &quot;requestorEmail&quot;: &quot;A String&quot;, # Output only. The email address of the user that proposed this linkage.
              },
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this DisplayVideo360AdvertiserLinkProposal resource. Format: properties/{propertyId}/displayVideo360AdvertiserLinkProposals/{proposalId} Note: proposalId is not the Display &amp; Video 360 Advertiser ID
              &quot;validationEmail&quot;: &quot;A String&quot;, # Input only. On a proposal being sent to Display &amp; Video 360, this field must be set to the email address of an admin on the target advertiser. This is used to verify that the Google Analytics admin is aware of at least one admin on the Display &amp; Video 360 Advertiser. This does not restrict approval of the proposal to a single user. Any admin on the Display &amp; Video 360 Advertiser may approve the proposal.
            },
            &quot;enhancedMeasurementSettings&quot;: { # Singleton resource under a web DataStream, configuring measurement of additional site interactions and content. # A snapshot of EnhancedMeasurementSettings resource in change history.
              &quot;fileDownloadsEnabled&quot;: True or False, # If enabled, capture a file download event each time a link is clicked with a common document, compressed file, application, video, or audio extension.
              &quot;formInteractionsEnabled&quot;: True or False, # If enabled, capture a form interaction event each time a visitor interacts with a form on your website. False by default.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the Enhanced Measurement Settings. Format: properties/{property_id}/dataStreams/{data_stream}/enhancedMeasurementSettings Example: &quot;properties/1000/dataStreams/2000/enhancedMeasurementSettings&quot;
              &quot;outboundClicksEnabled&quot;: True or False, # If enabled, capture an outbound click event each time a visitor clicks a link that leads them away from your domain.
              &quot;pageChangesEnabled&quot;: True or False, # If enabled, capture a page view event each time the website changes the browser history state.
              &quot;scrollsEnabled&quot;: True or False, # If enabled, capture scroll events each time a visitor gets to the bottom of a page.
              &quot;searchQueryParameter&quot;: &quot;A String&quot;, # Required. URL query parameters to interpret as site search parameters. Max length is 1024 characters. Must not be empty.
              &quot;siteSearchEnabled&quot;: True or False, # If enabled, capture a view search results event each time a visitor performs a search on your site (based on a query parameter).
              &quot;streamEnabled&quot;: True or False, # Indicates whether Enhanced Measurement Settings will be used to automatically measure interactions and content on this web stream. Changing this value does not affect the settings themselves, but determines whether they are respected.
              &quot;uriQueryParameter&quot;: &quot;A String&quot;, # Additional URL query parameters. Max length is 1024 characters.
              &quot;videoEngagementEnabled&quot;: True or False, # If enabled, capture video play, progress, and complete events as visitors view embedded videos on your site.
            },
            &quot;eventCreateRule&quot;: { # An Event Create Rule defines conditions that will trigger the creation of an entirely new event based upon matched criteria of a source event. Additional mutations of the parameters from the source event can be defined. Unlike Event Edit rules, Event Creation Rules have no defined order. They will all be run independently. Event Edit and Event Create rules can&#x27;t be used to modify an event created from an Event Create rule. # A snapshot of an EventCreateRule resource in change history.
              &quot;destinationEvent&quot;: &quot;A String&quot;, # Required. The name of the new event to be created. This value must: * be less than 40 characters * consist only of letters, digits or _ (underscores) * start with a letter
              &quot;eventConditions&quot;: [ # Required. Must have at least one condition, and can have up to 10 max. Conditions on the source event must match for this rule to be applied.
                { # Defines a condition for when an Event Edit or Event Creation rule applies to an event.
                  &quot;comparisonType&quot;: &quot;A String&quot;, # Required. The type of comparison to be applied to the value.
                  &quot;field&quot;: &quot;A String&quot;, # Required. The name of the field that is compared against for the condition. If &#x27;event_name&#x27; is specified this condition will apply to the name of the event. Otherwise the condition will apply to a parameter with the specified name. This value cannot contain spaces.
                  &quot;negated&quot;: True or False, # Whether or not the result of the comparison should be negated. For example, if `negated` is true, then &#x27;equals&#x27; comparisons would function as &#x27;not equals&#x27;.
                  &quot;value&quot;: &quot;A String&quot;, # Required. The value being compared against for this condition. The runtime implementation may perform type coercion of this value to evaluate this condition based on the type of the parameter value.
                },
              ],
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for this EventCreateRule resource. Format: properties/{property}/dataStreams/{data_stream}/eventCreateRules/{event_create_rule}
              &quot;parameterMutations&quot;: [ # Parameter mutations define parameter behavior on the new event, and are applied in order. A maximum of 20 mutations can be applied.
                { # Defines an event parameter to mutate.
                  &quot;parameter&quot;: &quot;A String&quot;, # Required. The name of the parameter to mutate. This value must: * be less than 40 characters. * be unique across across all mutations within the rule * consist only of letters, digits or _ (underscores) For event edit rules, the name may also be set to &#x27;event_name&#x27; to modify the event_name in place.
                  &quot;parameterValue&quot;: &quot;A String&quot;, # Required. The value mutation to perform. * Must be less than 100 characters. * To specify a constant value for the param, use the value&#x27;s string. * To copy value from another parameter, use syntax like &quot;[[other_parameter]]&quot; For more details, see this [help center article](https://support.google.com/analytics/answer/10085872#modify-an-event&amp;zippy=%2Cin-this-article%2Cmodify-parameters).
                },
              ],
              &quot;sourceCopyParameters&quot;: True or False, # If true, the source parameters are copied to the new event. If false, or unset, all non-internal parameters are not copied from the source event. Parameter mutations are applied after the parameters have been copied.
            },
            &quot;expandedDataSet&quot;: { # A resource message representing an `ExpandedDataSet`. # A snapshot of an ExpandedDataSet resource in change history.
              &quot;dataCollectionStartTime&quot;: &quot;A String&quot;, # Output only. Time when expanded data set began (or will begin) collecing data.
              &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the ExpandedDataSet. Max 50 chars.
              &quot;dimensionFilterExpression&quot;: { # A logical expression of EnhancedDataSet dimension filters. # Immutable. A logical expression of ExpandedDataSet filters applied to dimension included in the ExpandedDataSet. This filter is used to reduce the number of rows and thus the chance of encountering `other` row.
                &quot;andGroup&quot;: { # A list of ExpandedDataSet filter expressions. # A list of expressions to be AND’ed together. It must contain a ExpandedDataSetFilterExpression with either not_expression or dimension_filter. This must be set for the top level ExpandedDataSetFilterExpression.
                  &quot;filterExpressions&quot;: [ # A list of ExpandedDataSet filter expressions.
                    # Object with schema name: GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpression
                  ],
                },
                &quot;filter&quot;: { # A specific filter for a single dimension # A filter on a single dimension. This cannot be set on the top level ExpandedDataSetFilterExpression.
                  &quot;fieldName&quot;: &quot;A String&quot;, # Required. The dimension name to filter.
                  &quot;inListFilter&quot;: { # A filter for a string dimension that matches a particular list of options. # A filter for a string dimension that matches a particular list of options.
                    &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive. Must be true.
                    &quot;values&quot;: [ # Required. The list of possible string values to match against. Must be non-empty.
                      &quot;A String&quot;,
                    ],
                  },
                  &quot;stringFilter&quot;: { # A filter for a string-type dimension that matches a particular pattern. # A filter for a string-type dimension that matches a particular pattern.
                    &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive. Must be true when match_type is EXACT. Must be false when match_type is CONTAINS.
                    &quot;matchType&quot;: &quot;A String&quot;, # Required. The match type for the string filter.
                    &quot;value&quot;: &quot;A String&quot;, # Required. The string value to be matched against.
                  },
                },
                &quot;notExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpression # A filter expression to be NOT&#x27;ed (that is, inverted, complemented). It must include a dimension_filter. This cannot be set on the top level ExpandedDataSetFilterExpression.
              },
              &quot;dimensionNames&quot;: [ # Immutable. The list of dimensions included in the ExpandedDataSet. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) for the list of dimension names.
                &quot;A String&quot;,
              ],
              &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the ExpandedDataSet. Max 200 chars.
              &quot;metricNames&quot;: [ # Immutable. The list of metrics included in the ExpandedDataSet. See the [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) for the list of dimension names.
                &quot;A String&quot;,
              ],
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this ExpandedDataSet resource. Format: properties/{property_id}/expandedDataSets/{expanded_data_set}
            },
            &quot;firebaseLink&quot;: { # A link between a Google Analytics property and a Firebase project. # A snapshot of a FirebaseLink resource in change history.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this FirebaseLink was originally created.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Example format: properties/1234/firebaseLinks/5678
              &quot;project&quot;: &quot;A String&quot;, # Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: &#x27;projects/{project number}&#x27; Example: &#x27;projects/1234&#x27;
            },
            &quot;googleAdsLink&quot;: { # A link between a Google Analytics property and a Google Ads account. # A snapshot of a GoogleAdsLink resource in change history.
              &quot;adsPersonalizationEnabled&quot;: True or False, # Enable personalized advertising features with this integration. Automatically publish my Google Analytics audience lists and Google Analytics remarketing events/parameters to the linked Google Ads account. If this field is not set on create/update, it will be defaulted to true.
              &quot;canManageClients&quot;: True or False, # Output only. If true, this link is for a Google Ads manager account.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this link was originally created.
              &quot;creatorEmailAddress&quot;: &quot;A String&quot;, # Output only. Email address of the user that created the link. An empty string will be returned if the email address can&#x27;t be retrieved.
              &quot;customerId&quot;: &quot;A String&quot;, # Immutable. Google Ads customer ID.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId is not the Google Ads customer ID.
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when this link was last updated.
            },
            &quot;googleSignalsSettings&quot;: { # Settings values for Google Signals. This is a singleton resource. # A snapshot of a GoogleSignalsSettings resource in change history.
              &quot;consent&quot;: &quot;A String&quot;, # Output only. Terms of Service acceptance.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this setting. Format: properties/{property_id}/googleSignalsSettings Example: &quot;properties/1000/googleSignalsSettings&quot;
              &quot;state&quot;: &quot;A String&quot;, # Status of this setting.
            },
            &quot;keyEvent&quot;: { # A key event in a Google Analytics property. # A snapshot of a KeyEvent resource in change history.
              &quot;countingMethod&quot;: &quot;A String&quot;, # Required. The method by which Key Events will be counted across multiple events within a session.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this key event was created in the property.
              &quot;custom&quot;: True or False, # Output only. If set to true, this key event refers to a custom event. If set to false, this key event refers to a default event in GA. Default events typically have special meaning in GA. Default events are usually created for you by the GA system, but in some cases can be created by property admins. Custom events count towards the maximum number of custom key events that may be created per property.
              &quot;defaultValue&quot;: { # Defines a default value/currency for a key event. # Optional. Defines a default value/currency for a key event.
                &quot;currencyCode&quot;: &quot;A String&quot;, # Required. When an occurrence of this Key Event (specified by event_name) has no set currency this currency will be applied as the default. Must be in ISO 4217 currency code format. See https://en.wikipedia.org/wiki/ISO_4217 for more information.
                &quot;numericValue&quot;: 3.14, # Required. This will be used to populate the &quot;value&quot; parameter for all occurrences of this Key Event (specified by event_name) where that parameter is unset.
              },
              &quot;deletable&quot;: True or False, # Output only. If set to true, this event can be deleted.
              &quot;eventName&quot;: &quot;A String&quot;, # Immutable. The event name for this key event. Examples: &#x27;click&#x27;, &#x27;purchase&#x27;
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this key event. Format: properties/{property}/keyEvents/{key_event}
            },
            &quot;measurementProtocolSecret&quot;: { # A secret value used for sending hits to Measurement Protocol. # A snapshot of a MeasurementProtocolSecret resource in change history.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this secret.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}
              &quot;secretValue&quot;: &quot;A String&quot;, # Output only. The measurement protocol secret value. Pass this value to the api_secret field of the Measurement Protocol API when sending hits to this secret&#x27;s parent property.
            },
            &quot;property&quot;: { # A resource message representing a Google Analytics property. # A snapshot of a Property resource in change history.
              &quot;account&quot;: &quot;A String&quot;, # Immutable. The resource name of the parent account Format: accounts/{account_id} Example: &quot;accounts/123&quot;
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
              &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
              &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
              &quot;expireTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
              &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
              &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account}, properties/{property} Example: &quot;accounts/100&quot;, &quot;properties/101&quot;
              &quot;propertyType&quot;: &quot;A String&quot;, # Immutable. The property type for this Property resource. When creating a property, if the type is &quot;PROPERTY_TYPE_UNSPECIFIED&quot;, then &quot;ORDINARY_PROPERTY&quot; will be implied.
              &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
              &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
            },
            &quot;reportingDataAnnotation&quot;: { # A Reporting Data Annotation is a comment connected to certain dates for reporting data. # A snapshot of a ReportingDataAnnotation resource in change history.
              &quot;annotationDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # If set, the Reporting Data Annotation is for a specific date represented by this field. The date must be a valid date with year, month and day set. The date may be in the past, present, or future.
                &quot;day&quot;: 42, # 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&#x27;t significant.
                &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
                &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
              },
              &quot;annotationDateRange&quot;: { # Represents a Reporting Data Annotation&#x27;s date range, both start and end dates are inclusive. Time zones are based on the parent property. # If set, the Reporting Data Annotation is for a range of dates represented by this field.
                &quot;endDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Required. The end date for this range. Must be a valid date with year, month, and day set. This date must be greater than or equal to the start date.
                  &quot;day&quot;: 42, # 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&#x27;t significant.
                  &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
                  &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
                },
                &quot;startDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Required. The start date for this range. Must be a valid date with year, month, and day set. The date may be in the past, present, or future.
                  &quot;day&quot;: 42, # 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&#x27;t significant.
                  &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
                  &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
                },
              },
              &quot;color&quot;: &quot;A String&quot;, # Required. The color used for display of this Reporting Data Annotation.
              &quot;description&quot;: &quot;A String&quot;, # Optional. Description for this Reporting Data Annotation.
              &quot;name&quot;: &quot;A String&quot;, # Required. Identifier. Resource name of this Reporting Data Annotation. Format: &#x27;properties/{property_id}/reportingDataAnnotations/{reporting_data_annotation}&#x27; Format: &#x27;properties/123/reportingDataAnnotations/456&#x27;
              &quot;systemGenerated&quot;: True or False, # Output only. If true, this annotation was generated by the Google Analytics system. System-generated annotations cannot be updated or deleted.
              &quot;title&quot;: &quot;A String&quot;, # Required. Human-readable title for this Reporting Data Annotation.
            },
            &quot;reportingIdentitySettings&quot;: { # A resource containing settings related to reporting identity. # A snapshot of a ReportingIdentitySettings resource in change history.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Identifier. Resource name for this reporting identity settings singleton resource. Format: properties/{property_id}/reportingIdentitySettings Example: &quot;properties/1234/reportingIdentitySettings&quot;
              &quot;reportingIdentity&quot;: &quot;A String&quot;, # The strategy used for identifying user identities in reports.
            },
            &quot;searchAds360Link&quot;: { # A link between a Google Analytics property and a Search Ads 360 entity. # A snapshot of a SearchAds360Link resource in change history.
              &quot;adsPersonalizationEnabled&quot;: True or False, # Enables personalized advertising features with this integration. If this field is not set on create, it will be defaulted to true.
              &quot;advertiserDisplayName&quot;: &quot;A String&quot;, # Output only. The display name of the Search Ads 360 Advertiser. Allows users to easily identify the linked resource.
              &quot;advertiserId&quot;: &quot;A String&quot;, # Immutable. This field represents the Advertiser ID of the Search Ads 360 Advertiser. that has been linked.
              &quot;campaignDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of campaign data from Search Ads 360 into the Google Analytics property. After link creation, this can only be updated from the Search Ads 360 product. If this field is not set on create, it will be defaulted to true.
              &quot;costDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of cost data from Search Ads 360 to the Google Analytics property. This can only be enabled if campaign_data_sharing_enabled is enabled. After link creation, this can only be updated from the Search Ads 360 product. If this field is not set on create, it will be defaulted to true.
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this SearchAds360Link resource. Format: properties/{propertyId}/searchAds360Links/{linkId} Note: linkId is not the Search Ads 360 advertiser ID
              &quot;siteStatsSharingEnabled&quot;: True or False, # Enables export of site stats with this integration. If this field is not set on create, it will be defaulted to true.
            },
            &quot;skadnetworkConversionValueSchema&quot;: { # SKAdNetwork conversion value schema of an iOS stream. # A snapshot of SKAdNetworkConversionValueSchema resource in change history.
              &quot;applyConversionValues&quot;: True or False, # If enabled, the GA SDK will set conversion values using this schema definition, and schema will be exported to any Google Ads accounts linked to this property. If disabled, the GA SDK will not automatically set conversion values, and also the schema will not be exported to Ads.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the schema. This will be child of ONLY an iOS stream, and there can be at most one such child under an iOS stream. Format: properties/{property}/dataStreams/{dataStream}/sKAdNetworkConversionValueSchema
              &quot;postbackWindowOne&quot;: { # Settings for a SKAdNetwork conversion postback window. # Required. The conversion value settings for the first postback window. These differ from values for postback window two and three in that they contain a &quot;Fine&quot; grained conversion value (a numeric value). Conversion values for this postback window must be set. The other windows are optional and may inherit this window&#x27;s settings if unset or disabled.
                &quot;conversionValues&quot;: [ # Ordering of the repeated field will be used to prioritize the conversion value settings. Lower indexed entries are prioritized higher. The first conversion value setting that evaluates to true will be selected. It must have at least one entry if enable_postback_window_settings is set to true. It can have maximum of 128 entries.
                  { # Conversion value settings for a postback window for SKAdNetwork conversion value schema.
                    &quot;coarseValue&quot;: &quot;A String&quot;, # Required. A coarse grained conversion value. This value is not guaranteed to be unique.
                    &quot;displayName&quot;: &quot;A String&quot;, # Display name of the SKAdNetwork conversion value. The max allowed display name length is 50 UTF-16 code units.
                    &quot;eventMappings&quot;: [ # Event conditions that must be met for this Conversion Value to be achieved. The conditions in this list are ANDed together. It must have minimum of 1 entry and maximum of 3 entries, if the postback window is enabled.
                      { # Event setting conditions to match an event.
                        &quot;eventName&quot;: &quot;A String&quot;, # Required. Name of the Google Analytics event. It must always be set. The max allowed display name length is 40 UTF-16 code units.
                        &quot;maxEventCount&quot;: &quot;A String&quot;, # The maximum number of times the event occurred. If not set, maximum event count won&#x27;t be checked.
                        &quot;maxEventValue&quot;: 3.14, # The maximum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, maximum event value won&#x27;t be checked.
                        &quot;minEventCount&quot;: &quot;A String&quot;, # At least one of the following four min/max values must be set. The values set will be ANDed together to qualify an event. The minimum number of times the event occurred. If not set, minimum event count won&#x27;t be checked.
                        &quot;minEventValue&quot;: 3.14, # The minimum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, minimum event value won&#x27;t be checked.
                      },
                    ],
                    &quot;fineValue&quot;: 42, # The fine-grained conversion value. This is applicable only to the first postback window. Its valid values are [0,63], both inclusive. It must be set for postback window 1, and must not be set for postback window 2 &amp; 3. This value is not guaranteed to be unique. If the configuration for the first postback window is re-used for second or third postback windows this field has no effect.
                    &quot;lockEnabled&quot;: True or False, # If true, the SDK should lock to this conversion value for the current postback window.
                  },
                ],
                &quot;postbackWindowSettingsEnabled&quot;: True or False, # If enable_postback_window_settings is true, conversion_values must be populated and will be used for determining when and how to set the Conversion Value on a client device and exporting schema to linked Ads accounts. If false, the settings are not used, but are retained in case they may be used in the future. This must always be true for postback_window_one.
              },
              &quot;postbackWindowThree&quot;: { # Settings for a SKAdNetwork conversion postback window. # The conversion value settings for the third postback window. This field should only be set if the user chose to define different conversion values for this postback window. It is allowed to configure window 3 without setting window 2. In case window 1 &amp; 2 settings are set and enable_postback_window_settings for this postback window is set to false, the schema will inherit settings from postback_window_two.
                &quot;conversionValues&quot;: [ # Ordering of the repeated field will be used to prioritize the conversion value settings. Lower indexed entries are prioritized higher. The first conversion value setting that evaluates to true will be selected. It must have at least one entry if enable_postback_window_settings is set to true. It can have maximum of 128 entries.
                  { # Conversion value settings for a postback window for SKAdNetwork conversion value schema.
                    &quot;coarseValue&quot;: &quot;A String&quot;, # Required. A coarse grained conversion value. This value is not guaranteed to be unique.
                    &quot;displayName&quot;: &quot;A String&quot;, # Display name of the SKAdNetwork conversion value. The max allowed display name length is 50 UTF-16 code units.
                    &quot;eventMappings&quot;: [ # Event conditions that must be met for this Conversion Value to be achieved. The conditions in this list are ANDed together. It must have minimum of 1 entry and maximum of 3 entries, if the postback window is enabled.
                      { # Event setting conditions to match an event.
                        &quot;eventName&quot;: &quot;A String&quot;, # Required. Name of the Google Analytics event. It must always be set. The max allowed display name length is 40 UTF-16 code units.
                        &quot;maxEventCount&quot;: &quot;A String&quot;, # The maximum number of times the event occurred. If not set, maximum event count won&#x27;t be checked.
                        &quot;maxEventValue&quot;: 3.14, # The maximum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, maximum event value won&#x27;t be checked.
                        &quot;minEventCount&quot;: &quot;A String&quot;, # At least one of the following four min/max values must be set. The values set will be ANDed together to qualify an event. The minimum number of times the event occurred. If not set, minimum event count won&#x27;t be checked.
                        &quot;minEventValue&quot;: 3.14, # The minimum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, minimum event value won&#x27;t be checked.
                      },
                    ],
                    &quot;fineValue&quot;: 42, # The fine-grained conversion value. This is applicable only to the first postback window. Its valid values are [0,63], both inclusive. It must be set for postback window 1, and must not be set for postback window 2 &amp; 3. This value is not guaranteed to be unique. If the configuration for the first postback window is re-used for second or third postback windows this field has no effect.
                    &quot;lockEnabled&quot;: True or False, # If true, the SDK should lock to this conversion value for the current postback window.
                  },
                ],
                &quot;postbackWindowSettingsEnabled&quot;: True or False, # If enable_postback_window_settings is true, conversion_values must be populated and will be used for determining when and how to set the Conversion Value on a client device and exporting schema to linked Ads accounts. If false, the settings are not used, but are retained in case they may be used in the future. This must always be true for postback_window_one.
              },
              &quot;postbackWindowTwo&quot;: { # Settings for a SKAdNetwork conversion postback window. # The conversion value settings for the second postback window. This field should only be configured if there is a need to define different conversion values for this postback window. If enable_postback_window_settings is set to false for this postback window, the values from postback_window_one will be used.
                &quot;conversionValues&quot;: [ # Ordering of the repeated field will be used to prioritize the conversion value settings. Lower indexed entries are prioritized higher. The first conversion value setting that evaluates to true will be selected. It must have at least one entry if enable_postback_window_settings is set to true. It can have maximum of 128 entries.
                  { # Conversion value settings for a postback window for SKAdNetwork conversion value schema.
                    &quot;coarseValue&quot;: &quot;A String&quot;, # Required. A coarse grained conversion value. This value is not guaranteed to be unique.
                    &quot;displayName&quot;: &quot;A String&quot;, # Display name of the SKAdNetwork conversion value. The max allowed display name length is 50 UTF-16 code units.
                    &quot;eventMappings&quot;: [ # Event conditions that must be met for this Conversion Value to be achieved. The conditions in this list are ANDed together. It must have minimum of 1 entry and maximum of 3 entries, if the postback window is enabled.
                      { # Event setting conditions to match an event.
                        &quot;eventName&quot;: &quot;A String&quot;, # Required. Name of the Google Analytics event. It must always be set. The max allowed display name length is 40 UTF-16 code units.
                        &quot;maxEventCount&quot;: &quot;A String&quot;, # The maximum number of times the event occurred. If not set, maximum event count won&#x27;t be checked.
                        &quot;maxEventValue&quot;: 3.14, # The maximum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, maximum event value won&#x27;t be checked.
                        &quot;minEventCount&quot;: &quot;A String&quot;, # At least one of the following four min/max values must be set. The values set will be ANDed together to qualify an event. The minimum number of times the event occurred. If not set, minimum event count won&#x27;t be checked.
                        &quot;minEventValue&quot;: 3.14, # The minimum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, minimum event value won&#x27;t be checked.
                      },
                    ],
                    &quot;fineValue&quot;: 42, # The fine-grained conversion value. This is applicable only to the first postback window. Its valid values are [0,63], both inclusive. It must be set for postback window 1, and must not be set for postback window 2 &amp; 3. This value is not guaranteed to be unique. If the configuration for the first postback window is re-used for second or third postback windows this field has no effect.
                    &quot;lockEnabled&quot;: True or False, # If true, the SDK should lock to this conversion value for the current postback window.
                  },
                ],
                &quot;postbackWindowSettingsEnabled&quot;: True or False, # If enable_postback_window_settings is true, conversion_values must be populated and will be used for determining when and how to set the Conversion Value on a client device and exporting schema to linked Ads accounts. If false, the settings are not used, but are retained in case they may be used in the future. This must always be true for postback_window_one.
              },
            },
            &quot;subpropertySyncConfig&quot;: { # Subproperty synchronization configuration controls how ordinary property configurations are synchronized to subproperties. This resource is provisioned automatically for each subproperty. # A snapshot of a SubpropertySyncConfig resource in change history.
              &quot;applyToProperty&quot;: &quot;A String&quot;, # Output only. Immutable. Resource name of the subproperty that these settings apply to.
              &quot;customDimensionAndMetricSyncMode&quot;: &quot;A String&quot;, # Required. Specifies the Custom Dimension / Metric synchronization mode for the subproperty. If set to ALL, Custom Dimension / Metric synchronization will be immediately enabled. Local configuration of Custom Dimensions / Metrics will not be allowed on the subproperty so long as the synchronization mode is set to ALL. If set to NONE, Custom Dimensions / Metric synchronization is disabled. Custom Dimensions / Metrics must be configured explicitly on the Subproperty.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Identifier. Format: properties/{ordinary_property_id}/subpropertySyncConfigs/{subproperty_id} Example: properties/1234/subpropertySyncConfigs/5678
            },
          },
          &quot;resourceBeforeChange&quot;: { # A snapshot of a resource as before or after the result of a change in change history. # Resource contents from before the change was made. If this resource was created in this change, this field will be missing.
            &quot;account&quot;: { # A resource message representing a Google Analytics account. # A snapshot of an Account resource in change history.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this account was originally created.
              &quot;deleted&quot;: True or False, # Output only. Indicates whether this Account is soft-deleted or not. Deleted accounts are excluded from List results unless specifically requested.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this account.
              &quot;gmpOrganization&quot;: &quot;A String&quot;, # Output only. The URI for a Google Marketing Platform organization resource. Only set when this account is connected to a GMP organization. Format: marketingplatformadmin.googleapis.com/organizations/{org_id}
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this account. Format: accounts/{account} Example: &quot;accounts/100&quot;
              &quot;regionCode&quot;: &quot;A String&quot;, # Country of business. Must be a Unicode CLDR region code.
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when account payload fields were last updated.
            },
            &quot;adsenseLink&quot;: { # A link between a Google Analytics property and an AdSense for Content ad client. # A snapshot of an AdSenseLink resource in change history.
              &quot;adClientCode&quot;: &quot;A String&quot;, # Immutable. The AdSense ad client code that the Google Analytics property is linked to. Example format: &quot;ca-pub-1234567890&quot;
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this AdSense Link resource. Format: properties/{propertyId}/adSenseLinks/{linkId} Example: properties/1234/adSenseLinks/6789
            },
            &quot;attributionSettings&quot;: { # The attribution settings used for a given property. This is a singleton resource. # A snapshot of AttributionSettings resource in change history.
              &quot;acquisitionConversionEventLookbackWindow&quot;: &quot;A String&quot;, # Required. The lookback window configuration for acquisition conversion events. The default window size is 30 days.
              &quot;adsWebConversionDataExportScope&quot;: &quot;A String&quot;, # Required. The Conversion Export Scope for data exported to linked Ads Accounts.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this attribution settings resource. Format: properties/{property_id}/attributionSettings Example: &quot;properties/1000/attributionSettings&quot;
              &quot;otherConversionEventLookbackWindow&quot;: &quot;A String&quot;, # Required. The lookback window for all other, non-acquisition conversion events. The default window size is 90 days.
              &quot;reportingAttributionModel&quot;: &quot;A String&quot;, # Required. The reporting attribution model used to calculate conversion credit in this property&#x27;s reports. Changing the attribution model will apply to both historical and future data. These changes will be reflected in reports with conversion and revenue data. User and session data will be unaffected.
            },
            &quot;audience&quot;: { # A resource message representing an Audience. # A snapshot of an Audience resource in change history.
              &quot;adsPersonalizationEnabled&quot;: True or False, # Output only. It is automatically set by GA to false if this is an NPA Audience and is excluded from ads personalization.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the Audience was created.
              &quot;description&quot;: &quot;A String&quot;, # Required. The description of the Audience.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the Audience.
              &quot;eventTrigger&quot;: { # Specifies an event to log when a user joins the Audience. # Optional. Specifies an event to log when a user joins the Audience. If not set, no event is logged when a user joins the Audience.
                &quot;eventName&quot;: &quot;A String&quot;, # Required. The event name that will be logged.
                &quot;logCondition&quot;: &quot;A String&quot;, # Required. When to log the event.
              },
              &quot;exclusionDurationMode&quot;: &quot;A String&quot;, # Immutable. Specifies how long an exclusion lasts for users that meet the exclusion filter. It is applied to all EXCLUDE filter clauses and is ignored when there is no EXCLUDE filter clause in the Audience.
              &quot;filterClauses&quot;: [ # Required. Immutable. Unordered list. Filter clauses that define the Audience. All clauses will be AND’ed together.
                { # A clause for defining either a simple or sequence filter. A filter can be inclusive (For example, users satisfying the filter clause are included in the Audience) or exclusive (For example, users satisfying the filter clause are excluded from the Audience).
                  &quot;clauseType&quot;: &quot;A String&quot;, # Required. Specifies whether this is an include or exclude filter clause.
                  &quot;sequenceFilter&quot;: { # Defines filters that must occur in a specific order for the user to be a member of the Audience. # Filters that must occur in a specific order for the user to be a member of the Audience.
                    &quot;scope&quot;: &quot;A String&quot;, # Required. Immutable. Specifies the scope for this filter.
                    &quot;sequenceMaximumDuration&quot;: &quot;A String&quot;, # Optional. Defines the time period in which the whole sequence must occur.
                    &quot;sequenceSteps&quot;: [ # Required. An ordered sequence of steps. A user must complete each step in order to join the sequence filter.
                      { # A condition that must occur in the specified step order for this user to match the sequence.
                        &quot;constraintDuration&quot;: &quot;A String&quot;, # Optional. When set, this step must be satisfied within the constraint_duration of the previous step (For example, t[i] - t[i-1] &lt;= constraint_duration). If not set, there is no duration requirement (the duration is effectively unlimited). It is ignored for the first step.
                        &quot;filterExpression&quot;: { # A logical expression of Audience dimension, metric, or event filters. # Required. Immutable. A logical expression of Audience dimension, metric, or event filters in each step.
                          &quot;andGroup&quot;: { # A list of Audience filter expressions. # A list of expressions to be AND’ed together. It can only contain AudienceFilterExpressions with or_group. This must be set for the top level AudienceFilterExpression.
                            &quot;filterExpressions&quot;: [ # A list of Audience filter expressions.
                              # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression
                            ],
                          },
                          &quot;dimensionOrMetricFilter&quot;: { # A specific filter for a single dimension or metric. # A filter on a single dimension or metric. This cannot be set on the top level AudienceFilterExpression.
                            &quot;atAnyPointInTime&quot;: True or False, # Optional. Indicates whether this filter needs dynamic evaluation or not. If set to true, users join the Audience if they ever met the condition (static evaluation). If unset or set to false, user evaluation for an Audience is dynamic; users are added to an Audience when they meet the conditions and then removed when they no longer meet them. This can only be set when Audience scope is ACROSS_ALL_SESSIONS.
                            &quot;betweenFilter&quot;: { # A filter for numeric or date values between certain values on a dimension or metric. # A filter for numeric or date values between certain values on a dimension or metric.
                              &quot;fromValue&quot;: { # To represent a number. # Required. Begins with this number, inclusive.
                                &quot;doubleValue&quot;: 3.14, # Double value.
                                &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                              },
                              &quot;toValue&quot;: { # To represent a number. # Required. Ends with this number, inclusive.
                                &quot;doubleValue&quot;: 3.14, # Double value.
                                &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                              },
                            },
                            &quot;fieldName&quot;: &quot;A String&quot;, # Required. Immutable. The dimension name or metric name to filter. If the field name refers to a custom dimension or metric, a scope prefix will be added to the front of the custom dimensions or metric name. For more on scope prefixes or custom dimensions/metrics, reference the [Google Analytics Data API documentation] (https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#custom_dimensions).
                            &quot;inAnyNDayPeriod&quot;: 42, # Optional. If set, specifies the time window for which to evaluate data in number of days. If not set, then audience data is evaluated against lifetime data (For example, infinite time window). For example, if set to 1 day, only the current day&#x27;s data is evaluated. The reference point is the current day when at_any_point_in_time is unset or false. It can only be set when Audience scope is ACROSS_ALL_SESSIONS and cannot be greater than 60 days.
                            &quot;inListFilter&quot;: { # A filter for a string dimension that matches a particular list of options. # A filter for a string dimension that matches a particular list of options.
                              &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive.
                              &quot;values&quot;: [ # Required. The list of possible string values to match against. Must be non-empty.
                                &quot;A String&quot;,
                              ],
                            },
                            &quot;numericFilter&quot;: { # A filter for numeric or date values on a dimension or metric. # A filter for numeric or date values on a dimension or metric.
                              &quot;operation&quot;: &quot;A String&quot;, # Required. The operation applied to a numeric filter.
                              &quot;value&quot;: { # To represent a number. # Required. The numeric or date value to match against.
                                &quot;doubleValue&quot;: 3.14, # Double value.
                                &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                              },
                            },
                            &quot;stringFilter&quot;: { # A filter for a string-type dimension that matches a particular pattern. # A filter for a string-type dimension that matches a particular pattern.
                              &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive.
                              &quot;matchType&quot;: &quot;A String&quot;, # Required. The match type for the string filter.
                              &quot;value&quot;: &quot;A String&quot;, # Required. The string value to be matched against.
                            },
                          },
                          &quot;eventFilter&quot;: { # A filter that matches events of a single event name. If an event parameter is specified, only the subset of events that match both the single event name and the parameter filter expressions match this event filter. # Creates a filter that matches a specific event. This cannot be set on the top level AudienceFilterExpression.
                            &quot;eventName&quot;: &quot;A String&quot;, # Required. Immutable. The name of the event to match against.
                            &quot;eventParameterFilterExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression # Optional. If specified, this filter matches events that match both the single event name and the parameter filter expressions. AudienceEventFilter inside the parameter filter expression cannot be set (For example, nested event filters are not supported). This should be a single and_group of dimension_or_metric_filter or not_expression; ANDs of ORs are not supported. Also, if it includes a filter for &quot;eventCount&quot;, only that one will be considered; all the other filters will be ignored.
                          },
                          &quot;notExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression # A filter expression to be NOT&#x27;ed (For example, inverted, complemented). It can only include a dimension_or_metric_filter. This cannot be set on the top level AudienceFilterExpression.
                          &quot;orGroup&quot;: { # A list of Audience filter expressions. # A list of expressions to OR’ed together. It cannot contain AudienceFilterExpressions with and_group or or_group.
                            &quot;filterExpressions&quot;: [ # A list of Audience filter expressions.
                              # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression
                            ],
                          },
                        },
                        &quot;immediatelyFollows&quot;: True or False, # Optional. If true, the event satisfying this step must be the very next event after the event satisfying the last step. If unset or false, this step indirectly follows the prior step; for example, there may be events between the prior step and this step. It is ignored for the first step.
                        &quot;scope&quot;: &quot;A String&quot;, # Required. Immutable. Specifies the scope for this step.
                      },
                    ],
                  },
                  &quot;simpleFilter&quot;: { # Defines a simple filter that a user must satisfy to be a member of the Audience. # A simple filter that a user must satisfy to be a member of the Audience.
                    &quot;filterExpression&quot;: { # A logical expression of Audience dimension, metric, or event filters. # Required. Immutable. A logical expression of Audience dimension, metric, or event filters.
                      &quot;andGroup&quot;: { # A list of Audience filter expressions. # A list of expressions to be AND’ed together. It can only contain AudienceFilterExpressions with or_group. This must be set for the top level AudienceFilterExpression.
                        &quot;filterExpressions&quot;: [ # A list of Audience filter expressions.
                          # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression
                        ],
                      },
                      &quot;dimensionOrMetricFilter&quot;: { # A specific filter for a single dimension or metric. # A filter on a single dimension or metric. This cannot be set on the top level AudienceFilterExpression.
                        &quot;atAnyPointInTime&quot;: True or False, # Optional. Indicates whether this filter needs dynamic evaluation or not. If set to true, users join the Audience if they ever met the condition (static evaluation). If unset or set to false, user evaluation for an Audience is dynamic; users are added to an Audience when they meet the conditions and then removed when they no longer meet them. This can only be set when Audience scope is ACROSS_ALL_SESSIONS.
                        &quot;betweenFilter&quot;: { # A filter for numeric or date values between certain values on a dimension or metric. # A filter for numeric or date values between certain values on a dimension or metric.
                          &quot;fromValue&quot;: { # To represent a number. # Required. Begins with this number, inclusive.
                            &quot;doubleValue&quot;: 3.14, # Double value.
                            &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                          },
                          &quot;toValue&quot;: { # To represent a number. # Required. Ends with this number, inclusive.
                            &quot;doubleValue&quot;: 3.14, # Double value.
                            &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                          },
                        },
                        &quot;fieldName&quot;: &quot;A String&quot;, # Required. Immutable. The dimension name or metric name to filter. If the field name refers to a custom dimension or metric, a scope prefix will be added to the front of the custom dimensions or metric name. For more on scope prefixes or custom dimensions/metrics, reference the [Google Analytics Data API documentation] (https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#custom_dimensions).
                        &quot;inAnyNDayPeriod&quot;: 42, # Optional. If set, specifies the time window for which to evaluate data in number of days. If not set, then audience data is evaluated against lifetime data (For example, infinite time window). For example, if set to 1 day, only the current day&#x27;s data is evaluated. The reference point is the current day when at_any_point_in_time is unset or false. It can only be set when Audience scope is ACROSS_ALL_SESSIONS and cannot be greater than 60 days.
                        &quot;inListFilter&quot;: { # A filter for a string dimension that matches a particular list of options. # A filter for a string dimension that matches a particular list of options.
                          &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive.
                          &quot;values&quot;: [ # Required. The list of possible string values to match against. Must be non-empty.
                            &quot;A String&quot;,
                          ],
                        },
                        &quot;numericFilter&quot;: { # A filter for numeric or date values on a dimension or metric. # A filter for numeric or date values on a dimension or metric.
                          &quot;operation&quot;: &quot;A String&quot;, # Required. The operation applied to a numeric filter.
                          &quot;value&quot;: { # To represent a number. # Required. The numeric or date value to match against.
                            &quot;doubleValue&quot;: 3.14, # Double value.
                            &quot;int64Value&quot;: &quot;A String&quot;, # Integer value.
                          },
                        },
                        &quot;stringFilter&quot;: { # A filter for a string-type dimension that matches a particular pattern. # A filter for a string-type dimension that matches a particular pattern.
                          &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive.
                          &quot;matchType&quot;: &quot;A String&quot;, # Required. The match type for the string filter.
                          &quot;value&quot;: &quot;A String&quot;, # Required. The string value to be matched against.
                        },
                      },
                      &quot;eventFilter&quot;: { # A filter that matches events of a single event name. If an event parameter is specified, only the subset of events that match both the single event name and the parameter filter expressions match this event filter. # Creates a filter that matches a specific event. This cannot be set on the top level AudienceFilterExpression.
                        &quot;eventName&quot;: &quot;A String&quot;, # Required. Immutable. The name of the event to match against.
                        &quot;eventParameterFilterExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression # Optional. If specified, this filter matches events that match both the single event name and the parameter filter expressions. AudienceEventFilter inside the parameter filter expression cannot be set (For example, nested event filters are not supported). This should be a single and_group of dimension_or_metric_filter or not_expression; ANDs of ORs are not supported. Also, if it includes a filter for &quot;eventCount&quot;, only that one will be considered; all the other filters will be ignored.
                      },
                      &quot;notExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression # A filter expression to be NOT&#x27;ed (For example, inverted, complemented). It can only include a dimension_or_metric_filter. This cannot be set on the top level AudienceFilterExpression.
                      &quot;orGroup&quot;: { # A list of Audience filter expressions. # A list of expressions to OR’ed together. It cannot contain AudienceFilterExpressions with and_group or or_group.
                        &quot;filterExpressions&quot;: [ # A list of Audience filter expressions.
                          # Object with schema name: GoogleAnalyticsAdminV1alphaAudienceFilterExpression
                        ],
                      },
                    },
                    &quot;scope&quot;: &quot;A String&quot;, # Required. Immutable. Specifies the scope for this filter.
                  },
                },
              ],
              &quot;membershipDurationDays&quot;: 42, # Required. Immutable. The duration a user should stay in an Audience. It cannot be set to more than 540 days.
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Audience resource. Format: properties/{propertyId}/audiences/{audienceId}
            },
            &quot;bigqueryLink&quot;: { # A link between a Google Analytics property and BigQuery project. # A snapshot of a BigQuery link resource in change history.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the link was created.
              &quot;dailyExportEnabled&quot;: True or False, # If set true, enables daily data export to the linked Google Cloud project.
              &quot;datasetLocation&quot;: &quot;A String&quot;, # Required. Immutable. The geographic location where the created BigQuery dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.
              &quot;excludedEvents&quot;: [ # The list of event names that will be excluded from exports.
                &quot;A String&quot;,
              ],
              &quot;exportStreams&quot;: [ # The list of streams under the parent property for which data will be exported. Format: properties/{property_id}/dataStreams/{stream_id} Example: [&#x27;properties/1000/dataStreams/2000&#x27;]
                &quot;A String&quot;,
              ],
              &quot;freshDailyExportEnabled&quot;: True or False, # If set true, enables fresh daily export to the linked Google Cloud project.
              &quot;includeAdvertisingId&quot;: True or False, # If set true, exported data will include advertising identifiers for mobile app streams.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this BigQuery link. Format: &#x27;properties/{property_id}/bigQueryLinks/{bigquery_link_id}&#x27; Format: &#x27;properties/1234/bigQueryLinks/abc567&#x27;
              &quot;project&quot;: &quot;A String&quot;, # Immutable. The linked Google Cloud project. When creating a BigQueryLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, the returned project will always have a project that contains a project number. Format: &#x27;projects/{project number}&#x27; Example: &#x27;projects/1234&#x27;
              &quot;streamingExportEnabled&quot;: True or False, # If set true, enables streaming export to the linked Google Cloud project.
            },
            &quot;calculatedMetric&quot;: { # A definition for a calculated metric. # A snapshot of a CalculatedMetric resource in change history.
              &quot;calculatedMetricId&quot;: &quot;A String&quot;, # Output only. The ID to use for the calculated metric. In the UI, this is referred to as the &quot;API name.&quot; The calculated_metric_id is used when referencing this calculated metric from external APIs. For example, &quot;calcMetric:{calculated_metric_id}&quot;.
              &quot;description&quot;: &quot;A String&quot;, # Optional. Description for this calculated metric. Max length of 4096 characters.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Display name for this calculated metric as shown in the Google Analytics UI. Max length 82 characters.
              &quot;formula&quot;: &quot;A String&quot;, # Required. The calculated metric&#x27;s definition. Maximum number of unique referenced custom metrics is 5. Formulas supports the following operations: + (addition), - (subtraction), - (negative), * (multiplication), / (division), () (parenthesis). Any valid real numbers are acceptable that fit in a Long (64bit integer) or a Double (64 bit floating point number). Example formula: &quot;( customEvent:parameter_name + cartPurchaseQuantity ) / 2.0&quot;
              &quot;invalidMetricReference&quot;: True or False, # Output only. If true, this calculated metric has a invalid metric reference. Anything using a calculated metric with invalid_metric_reference set to true may fail, produce warnings, or produce unexpected results.
              &quot;metricUnit&quot;: &quot;A String&quot;, # Required. The type for the calculated metric&#x27;s value.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for this CalculatedMetric. Format: &#x27;properties/{property_id}/calculatedMetrics/{calculated_metric_id}&#x27;
              &quot;restrictedMetricType&quot;: [ # Output only. Types of restricted data that this metric contains.
                &quot;A String&quot;,
              ],
            },
            &quot;channelGroup&quot;: { # A resource message representing a Channel Group. # A snapshot of a ChannelGroup resource in change history.
              &quot;description&quot;: &quot;A String&quot;, # The description of the Channel Group. Max length of 256 characters.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the Channel Group. Max length of 80 characters.
              &quot;groupingRule&quot;: [ # Required. The grouping rules of channels. Maximum number of rules is 50.
                { # The rules that govern how traffic is grouped into one channel.
                  &quot;displayName&quot;: &quot;A String&quot;, # Required. Customer defined display name for the channel.
                  &quot;expression&quot;: { # A logical expression of Channel Group dimension filters. # Required. The Filter Expression that defines the Grouping Rule.
                    &quot;andGroup&quot;: { # A list of Channel Group filter expressions. # A list of expressions to be AND’ed together. It can only contain ChannelGroupFilterExpressions with or_group. This must be set for the top level ChannelGroupFilterExpression.
                      &quot;filterExpressions&quot;: [ # A list of Channel Group filter expressions.
                        # Object with schema name: GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression
                      ],
                    },
                    &quot;filter&quot;: { # A specific filter for a single dimension. # A filter on a single dimension. This cannot be set on the top level ChannelGroupFilterExpression.
                      &quot;fieldName&quot;: &quot;A String&quot;, # Required. Immutable. The dimension name to filter.
                      &quot;inListFilter&quot;: { # A filter for a string dimension that matches a particular list of options. The match is case insensitive. # A filter for a string dimension that matches a particular list of options.
                        &quot;values&quot;: [ # Required. The list of possible string values to match against. Must be non-empty.
                          &quot;A String&quot;,
                        ],
                      },
                      &quot;stringFilter&quot;: { # Filter where the field value is a String. The match is case insensitive. # A filter for a string-type dimension that matches a particular pattern.
                        &quot;matchType&quot;: &quot;A String&quot;, # Required. The match type for the string filter.
                        &quot;value&quot;: &quot;A String&quot;, # Required. The string value to be matched against.
                      },
                    },
                    &quot;notExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression # A filter expression to be NOT&#x27;ed (that is inverted, complemented). It can only include a dimension_or_metric_filter. This cannot be set on the top level ChannelGroupFilterExpression.
                    &quot;orGroup&quot;: { # A list of Channel Group filter expressions. # A list of expressions to OR’ed together. It cannot contain ChannelGroupFilterExpressions with and_group or or_group.
                      &quot;filterExpressions&quot;: [ # A list of Channel Group filter expressions.
                        # Object with schema name: GoogleAnalyticsAdminV1alphaChannelGroupFilterExpression
                      ],
                    },
                  },
                },
              ],
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this Channel Group resource. Format: properties/{property}/channelGroups/{channel_group}
              &quot;primary&quot;: True or False, # Optional. If true, this channel group will be used as the default channel group for reports. Only one channel group can be set as `primary` at any time. If the `primary` field gets set on a channel group, it will get unset on the previous primary channel group. The Google Analytics predefined channel group is the primary by default.
              &quot;systemDefined&quot;: True or False, # Output only. If true, then this channel group is the Default Channel Group predefined by Google Analytics. Display name and grouping rules cannot be updated for this channel group.
            },
            &quot;conversionEvent&quot;: { # A conversion event in a Google Analytics property. # A snapshot of a ConversionEvent resource in change history.
              &quot;countingMethod&quot;: &quot;A String&quot;, # Optional. The method by which conversions will be counted across multiple events within a session. If this value is not provided, it will be set to `ONCE_PER_EVENT`.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this conversion event was created in the property.
              &quot;custom&quot;: True or False, # Output only. If set to true, this conversion event refers to a custom event. If set to false, this conversion event refers to a default event in GA. Default events typically have special meaning in GA. Default events are usually created for you by the GA system, but in some cases can be created by property admins. Custom events count towards the maximum number of custom conversion events that may be created per property.
              &quot;defaultConversionValue&quot;: { # Defines a default value/currency for a conversion event. Both value and currency must be provided. # Optional. Defines a default value/currency for a conversion event.
                &quot;currencyCode&quot;: &quot;A String&quot;, # When a conversion event for this event_name has no set currency, this currency will be applied as the default. Must be in ISO 4217 currency code format. See https://en.wikipedia.org/wiki/ISO_4217 for more information.
                &quot;value&quot;: 3.14, # This value will be used to populate the value for all conversions of the specified event_name where the event &quot;value&quot; parameter is unset.
              },
              &quot;deletable&quot;: True or False, # Output only. If set, this event can currently be deleted with DeleteConversionEvent.
              &quot;eventName&quot;: &quot;A String&quot;, # Immutable. The event name for this conversion event. Examples: &#x27;click&#x27;, &#x27;purchase&#x27;
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this conversion event. Format: properties/{property}/conversionEvents/{conversion_event}
            },
            &quot;customDimension&quot;: { # A definition for a CustomDimension. # A snapshot of a CustomDimension resource in change history.
              &quot;description&quot;: &quot;A String&quot;, # Optional. Description for this custom dimension. Max length of 150 characters.
              &quot;disallowAdsPersonalization&quot;: True or False, # Optional. If set to true, sets this dimension as NPA and excludes it from ads personalization. This is currently only supported by user-scoped custom dimensions.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Display name for this custom dimension as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for this CustomDimension resource. Format: properties/{property}/customDimensions/{customDimension}
              &quot;parameterName&quot;: &quot;A String&quot;, # Required. Immutable. Tagging parameter name for this custom dimension. If this is a user-scoped dimension, then this is the user property name. If this is an event-scoped dimension, then this is the event parameter name. If this is an item-scoped dimension, then this is the parameter name found in the eCommerce items array. May only contain alphanumeric and underscore characters, starting with a letter. Max length of 24 characters for user-scoped dimensions, 40 characters for event-scoped dimensions.
              &quot;scope&quot;: &quot;A String&quot;, # Required. Immutable. The scope of this dimension.
            },
            &quot;customMetric&quot;: { # A definition for a custom metric. # A snapshot of a CustomMetric resource in change history.
              &quot;description&quot;: &quot;A String&quot;, # Optional. Description for this custom dimension. Max length of 150 characters.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets.
              &quot;measurementUnit&quot;: &quot;A String&quot;, # Required. The type for the custom metric&#x27;s value.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric}
              &quot;parameterName&quot;: &quot;A String&quot;, # Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics.
              &quot;restrictedMetricType&quot;: [ # Optional. Types of restricted data that this metric may contain. Required for metrics with CURRENCY measurement unit. Must be empty for metrics with a non-CURRENCY measurement unit.
                &quot;A String&quot;,
              ],
              &quot;scope&quot;: &quot;A String&quot;, # Required. Immutable. The scope of this custom metric.
            },
            &quot;dataRedactionSettings&quot;: { # Settings for client-side data redaction. Singleton resource under a Web Stream. # A snapshot of DataRedactionSettings resource in change history.
              &quot;emailRedactionEnabled&quot;: True or False, # If enabled, any event parameter or user property values that look like an email will be redacted.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Name of this Data Redaction Settings resource. Format: properties/{property_id}/dataStreams/{data_stream}/dataRedactionSettings Example: &quot;properties/1000/dataStreams/2000/dataRedactionSettings&quot;
              &quot;queryParameterKeys&quot;: [ # The query parameter keys to apply redaction logic to if present in the URL. Query parameter matching is case-insensitive. Must contain at least one element if query_parameter_replacement_enabled is true. Keys cannot contain commas.
                &quot;A String&quot;,
              ],
              &quot;queryParameterRedactionEnabled&quot;: True or False, # Query Parameter redaction removes the key and value portions of a query parameter if it is in the configured set of query parameters. If enabled, URL query replacement logic will be run for the Stream. Any query parameters defined in query_parameter_keys will be redacted.
            },
            &quot;dataRetentionSettings&quot;: { # Settings values for data retention. This is a singleton resource. # A snapshot of a data retention settings resource in change history.
              &quot;eventDataRetention&quot;: &quot;A String&quot;, # Required. The length of time that event-level data is retained.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for this DataRetentionSetting resource. Format: properties/{property}/dataRetentionSettings
              &quot;resetUserDataOnNewActivity&quot;: True or False, # If true, reset the retention period for the user identifier with every event from that user.
              &quot;userDataRetention&quot;: &quot;A String&quot;, # Required. The length of time that user-level data is retained.
            },
            &quot;dataStream&quot;: { # A resource message representing a data stream. # A snapshot of a DataStream resource in change history.
              &quot;androidAppStreamData&quot;: { # Data specific to Android app streams. # Data specific to Android app streams. Must be populated if type is ANDROID_APP_DATA_STREAM.
                &quot;firebaseAppId&quot;: &quot;A String&quot;, # Output only. ID of the corresponding Android app in Firebase, if any. This ID can change if the Android app is deleted and recreated.
                &quot;packageName&quot;: &quot;A String&quot;, # Immutable. The package name for the app being measured. Example: &quot;com.example.myandroidapp&quot;
              },
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this stream was originally created.
              &quot;displayName&quot;: &quot;A String&quot;, # Human-readable display name for the Data Stream. Required for web data streams. The max allowed display name length is 255 UTF-16 code units.
              &quot;iosAppStreamData&quot;: { # Data specific to iOS app streams. # Data specific to iOS app streams. Must be populated if type is IOS_APP_DATA_STREAM.
                &quot;bundleId&quot;: &quot;A String&quot;, # Required. Immutable. The Apple App Store Bundle ID for the app Example: &quot;com.example.myiosapp&quot;
                &quot;firebaseAppId&quot;: &quot;A String&quot;, # Output only. ID of the corresponding iOS app in Firebase, if any. This ID can change if the iOS app is deleted and recreated.
              },
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this Data Stream. Format: properties/{property_id}/dataStreams/{stream_id} Example: &quot;properties/1000/dataStreams/2000&quot;
              &quot;type&quot;: &quot;A String&quot;, # Required. Immutable. The type of this DataStream resource.
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when stream payload fields were last updated.
              &quot;webStreamData&quot;: { # Data specific to web streams. # Data specific to web streams. Must be populated if type is WEB_DATA_STREAM.
                &quot;defaultUri&quot;: &quot;A String&quot;, # Domain name of the web app being measured, or empty. Example: &quot;http://www.google.com&quot;, &quot;https://www.google.com&quot;
                &quot;firebaseAppId&quot;: &quot;A String&quot;, # Output only. ID of the corresponding web app in Firebase, if any. This ID can change if the web app is deleted and recreated.
                &quot;measurementId&quot;: &quot;A String&quot;, # Output only. Analytics Measurement ID. Example: &quot;G-1A2BCD345E&quot;
              },
            },
            &quot;displayVideo360AdvertiserLink&quot;: { # A link between a Google Analytics property and a Display &amp; Video 360 advertiser. # A snapshot of a DisplayVideo360AdvertiserLink resource in change history.
              &quot;adsPersonalizationEnabled&quot;: True or False, # Enables personalized advertising features with this integration. If this field is not set on create/update, it will be defaulted to true.
              &quot;advertiserDisplayName&quot;: &quot;A String&quot;, # Output only. The display name of the Display &amp; Video 360 Advertiser.
              &quot;advertiserId&quot;: &quot;A String&quot;, # Immutable. The Display &amp; Video 360 Advertiser&#x27;s advertiser ID.
              &quot;campaignDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of campaign data from Display &amp; Video 360 into the Google Analytics property. After link creation, this can only be updated from the Display &amp; Video 360 product. If this field is not set on create, it will be defaulted to true.
              &quot;costDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of cost data from Display &amp; Video 360 into the Google Analytics property. This can only be enabled if `campaign_data_sharing_enabled` is true. After link creation, this can only be updated from the Display &amp; Video 360 product. If this field is not set on create, it will be defaulted to true.
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this DisplayVideo360AdvertiserLink resource. Format: properties/{propertyId}/displayVideo360AdvertiserLinks/{linkId} Note: linkId is not the Display &amp; Video 360 Advertiser ID
            },
            &quot;displayVideo360AdvertiserLinkProposal&quot;: { # A proposal for a link between a Google Analytics property and a Display &amp; Video 360 advertiser. A proposal is converted to a DisplayVideo360AdvertiserLink once approved. Google Analytics admins approve inbound proposals while Display &amp; Video 360 admins approve outbound proposals. # A snapshot of a DisplayVideo360AdvertiserLinkProposal resource in change history.
              &quot;adsPersonalizationEnabled&quot;: True or False, # Immutable. Enables personalized advertising features with this integration. If this field is not set on create, it will be defaulted to true.
              &quot;advertiserDisplayName&quot;: &quot;A String&quot;, # Output only. The display name of the Display &amp; Video Advertiser. Only populated for proposals that originated from Display &amp; Video 360.
              &quot;advertiserId&quot;: &quot;A String&quot;, # Immutable. The Display &amp; Video 360 Advertiser&#x27;s advertiser ID.
              &quot;campaignDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of campaign data from Display &amp; Video 360. If this field is not set on create, it will be defaulted to true.
              &quot;costDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of cost data from Display &amp; Video 360. This can only be enabled if campaign_data_sharing_enabled is enabled. If this field is not set on create, it will be defaulted to true.
              &quot;linkProposalStatusDetails&quot;: { # Status information for a link proposal. # Output only. The status information for this link proposal.
                &quot;linkProposalInitiatingProduct&quot;: &quot;A String&quot;, # Output only. The source of this proposal.
                &quot;linkProposalState&quot;: &quot;A String&quot;, # Output only. The state of this proposal.
                &quot;requestorEmail&quot;: &quot;A String&quot;, # Output only. The email address of the user that proposed this linkage.
              },
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this DisplayVideo360AdvertiserLinkProposal resource. Format: properties/{propertyId}/displayVideo360AdvertiserLinkProposals/{proposalId} Note: proposalId is not the Display &amp; Video 360 Advertiser ID
              &quot;validationEmail&quot;: &quot;A String&quot;, # Input only. On a proposal being sent to Display &amp; Video 360, this field must be set to the email address of an admin on the target advertiser. This is used to verify that the Google Analytics admin is aware of at least one admin on the Display &amp; Video 360 Advertiser. This does not restrict approval of the proposal to a single user. Any admin on the Display &amp; Video 360 Advertiser may approve the proposal.
            },
            &quot;enhancedMeasurementSettings&quot;: { # Singleton resource under a web DataStream, configuring measurement of additional site interactions and content. # A snapshot of EnhancedMeasurementSettings resource in change history.
              &quot;fileDownloadsEnabled&quot;: True or False, # If enabled, capture a file download event each time a link is clicked with a common document, compressed file, application, video, or audio extension.
              &quot;formInteractionsEnabled&quot;: True or False, # If enabled, capture a form interaction event each time a visitor interacts with a form on your website. False by default.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the Enhanced Measurement Settings. Format: properties/{property_id}/dataStreams/{data_stream}/enhancedMeasurementSettings Example: &quot;properties/1000/dataStreams/2000/enhancedMeasurementSettings&quot;
              &quot;outboundClicksEnabled&quot;: True or False, # If enabled, capture an outbound click event each time a visitor clicks a link that leads them away from your domain.
              &quot;pageChangesEnabled&quot;: True or False, # If enabled, capture a page view event each time the website changes the browser history state.
              &quot;scrollsEnabled&quot;: True or False, # If enabled, capture scroll events each time a visitor gets to the bottom of a page.
              &quot;searchQueryParameter&quot;: &quot;A String&quot;, # Required. URL query parameters to interpret as site search parameters. Max length is 1024 characters. Must not be empty.
              &quot;siteSearchEnabled&quot;: True or False, # If enabled, capture a view search results event each time a visitor performs a search on your site (based on a query parameter).
              &quot;streamEnabled&quot;: True or False, # Indicates whether Enhanced Measurement Settings will be used to automatically measure interactions and content on this web stream. Changing this value does not affect the settings themselves, but determines whether they are respected.
              &quot;uriQueryParameter&quot;: &quot;A String&quot;, # Additional URL query parameters. Max length is 1024 characters.
              &quot;videoEngagementEnabled&quot;: True or False, # If enabled, capture video play, progress, and complete events as visitors view embedded videos on your site.
            },
            &quot;eventCreateRule&quot;: { # An Event Create Rule defines conditions that will trigger the creation of an entirely new event based upon matched criteria of a source event. Additional mutations of the parameters from the source event can be defined. Unlike Event Edit rules, Event Creation Rules have no defined order. They will all be run independently. Event Edit and Event Create rules can&#x27;t be used to modify an event created from an Event Create rule. # A snapshot of an EventCreateRule resource in change history.
              &quot;destinationEvent&quot;: &quot;A String&quot;, # Required. The name of the new event to be created. This value must: * be less than 40 characters * consist only of letters, digits or _ (underscores) * start with a letter
              &quot;eventConditions&quot;: [ # Required. Must have at least one condition, and can have up to 10 max. Conditions on the source event must match for this rule to be applied.
                { # Defines a condition for when an Event Edit or Event Creation rule applies to an event.
                  &quot;comparisonType&quot;: &quot;A String&quot;, # Required. The type of comparison to be applied to the value.
                  &quot;field&quot;: &quot;A String&quot;, # Required. The name of the field that is compared against for the condition. If &#x27;event_name&#x27; is specified this condition will apply to the name of the event. Otherwise the condition will apply to a parameter with the specified name. This value cannot contain spaces.
                  &quot;negated&quot;: True or False, # Whether or not the result of the comparison should be negated. For example, if `negated` is true, then &#x27;equals&#x27; comparisons would function as &#x27;not equals&#x27;.
                  &quot;value&quot;: &quot;A String&quot;, # Required. The value being compared against for this condition. The runtime implementation may perform type coercion of this value to evaluate this condition based on the type of the parameter value.
                },
              ],
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name for this EventCreateRule resource. Format: properties/{property}/dataStreams/{data_stream}/eventCreateRules/{event_create_rule}
              &quot;parameterMutations&quot;: [ # Parameter mutations define parameter behavior on the new event, and are applied in order. A maximum of 20 mutations can be applied.
                { # Defines an event parameter to mutate.
                  &quot;parameter&quot;: &quot;A String&quot;, # Required. The name of the parameter to mutate. This value must: * be less than 40 characters. * be unique across across all mutations within the rule * consist only of letters, digits or _ (underscores) For event edit rules, the name may also be set to &#x27;event_name&#x27; to modify the event_name in place.
                  &quot;parameterValue&quot;: &quot;A String&quot;, # Required. The value mutation to perform. * Must be less than 100 characters. * To specify a constant value for the param, use the value&#x27;s string. * To copy value from another parameter, use syntax like &quot;[[other_parameter]]&quot; For more details, see this [help center article](https://support.google.com/analytics/answer/10085872#modify-an-event&amp;zippy=%2Cin-this-article%2Cmodify-parameters).
                },
              ],
              &quot;sourceCopyParameters&quot;: True or False, # If true, the source parameters are copied to the new event. If false, or unset, all non-internal parameters are not copied from the source event. Parameter mutations are applied after the parameters have been copied.
            },
            &quot;expandedDataSet&quot;: { # A resource message representing an `ExpandedDataSet`. # A snapshot of an ExpandedDataSet resource in change history.
              &quot;dataCollectionStartTime&quot;: &quot;A String&quot;, # Output only. Time when expanded data set began (or will begin) collecing data.
              &quot;description&quot;: &quot;A String&quot;, # Optional. The description of the ExpandedDataSet. Max 50 chars.
              &quot;dimensionFilterExpression&quot;: { # A logical expression of EnhancedDataSet dimension filters. # Immutable. A logical expression of ExpandedDataSet filters applied to dimension included in the ExpandedDataSet. This filter is used to reduce the number of rows and thus the chance of encountering `other` row.
                &quot;andGroup&quot;: { # A list of ExpandedDataSet filter expressions. # A list of expressions to be AND’ed together. It must contain a ExpandedDataSetFilterExpression with either not_expression or dimension_filter. This must be set for the top level ExpandedDataSetFilterExpression.
                  &quot;filterExpressions&quot;: [ # A list of ExpandedDataSet filter expressions.
                    # Object with schema name: GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpression
                  ],
                },
                &quot;filter&quot;: { # A specific filter for a single dimension # A filter on a single dimension. This cannot be set on the top level ExpandedDataSetFilterExpression.
                  &quot;fieldName&quot;: &quot;A String&quot;, # Required. The dimension name to filter.
                  &quot;inListFilter&quot;: { # A filter for a string dimension that matches a particular list of options. # A filter for a string dimension that matches a particular list of options.
                    &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive. Must be true.
                    &quot;values&quot;: [ # Required. The list of possible string values to match against. Must be non-empty.
                      &quot;A String&quot;,
                    ],
                  },
                  &quot;stringFilter&quot;: { # A filter for a string-type dimension that matches a particular pattern. # A filter for a string-type dimension that matches a particular pattern.
                    &quot;caseSensitive&quot;: True or False, # Optional. If true, the match is case-sensitive. If false, the match is case-insensitive. Must be true when match_type is EXACT. Must be false when match_type is CONTAINS.
                    &quot;matchType&quot;: &quot;A String&quot;, # Required. The match type for the string filter.
                    &quot;value&quot;: &quot;A String&quot;, # Required. The string value to be matched against.
                  },
                },
                &quot;notExpression&quot;: # Object with schema name: GoogleAnalyticsAdminV1alphaExpandedDataSetFilterExpression # A filter expression to be NOT&#x27;ed (that is, inverted, complemented). It must include a dimension_filter. This cannot be set on the top level ExpandedDataSetFilterExpression.
              },
              &quot;dimensionNames&quot;: [ # Immutable. The list of dimensions included in the ExpandedDataSet. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) for the list of dimension names.
                &quot;A String&quot;,
              ],
              &quot;displayName&quot;: &quot;A String&quot;, # Required. The display name of the ExpandedDataSet. Max 200 chars.
              &quot;metricNames&quot;: [ # Immutable. The list of metrics included in the ExpandedDataSet. See the [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) for the list of dimension names.
                &quot;A String&quot;,
              ],
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this ExpandedDataSet resource. Format: properties/{property_id}/expandedDataSets/{expanded_data_set}
            },
            &quot;firebaseLink&quot;: { # A link between a Google Analytics property and a Firebase project. # A snapshot of a FirebaseLink resource in change history.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this FirebaseLink was originally created.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Example format: properties/1234/firebaseLinks/5678
              &quot;project&quot;: &quot;A String&quot;, # Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: &#x27;projects/{project number}&#x27; Example: &#x27;projects/1234&#x27;
            },
            &quot;googleAdsLink&quot;: { # A link between a Google Analytics property and a Google Ads account. # A snapshot of a GoogleAdsLink resource in change history.
              &quot;adsPersonalizationEnabled&quot;: True or False, # Enable personalized advertising features with this integration. Automatically publish my Google Analytics audience lists and Google Analytics remarketing events/parameters to the linked Google Ads account. If this field is not set on create/update, it will be defaulted to true.
              &quot;canManageClients&quot;: True or False, # Output only. If true, this link is for a Google Ads manager account.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this link was originally created.
              &quot;creatorEmailAddress&quot;: &quot;A String&quot;, # Output only. Email address of the user that created the link. An empty string will be returned if the email address can&#x27;t be retrieved.
              &quot;customerId&quot;: &quot;A String&quot;, # Immutable. Google Ads customer ID.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId is not the Google Ads customer ID.
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when this link was last updated.
            },
            &quot;googleSignalsSettings&quot;: { # Settings values for Google Signals. This is a singleton resource. # A snapshot of a GoogleSignalsSettings resource in change history.
              &quot;consent&quot;: &quot;A String&quot;, # Output only. Terms of Service acceptance.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this setting. Format: properties/{property_id}/googleSignalsSettings Example: &quot;properties/1000/googleSignalsSettings&quot;
              &quot;state&quot;: &quot;A String&quot;, # Status of this setting.
            },
            &quot;keyEvent&quot;: { # A key event in a Google Analytics property. # A snapshot of a KeyEvent resource in change history.
              &quot;countingMethod&quot;: &quot;A String&quot;, # Required. The method by which Key Events will be counted across multiple events within a session.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this key event was created in the property.
              &quot;custom&quot;: True or False, # Output only. If set to true, this key event refers to a custom event. If set to false, this key event refers to a default event in GA. Default events typically have special meaning in GA. Default events are usually created for you by the GA system, but in some cases can be created by property admins. Custom events count towards the maximum number of custom key events that may be created per property.
              &quot;defaultValue&quot;: { # Defines a default value/currency for a key event. # Optional. Defines a default value/currency for a key event.
                &quot;currencyCode&quot;: &quot;A String&quot;, # Required. When an occurrence of this Key Event (specified by event_name) has no set currency this currency will be applied as the default. Must be in ISO 4217 currency code format. See https://en.wikipedia.org/wiki/ISO_4217 for more information.
                &quot;numericValue&quot;: 3.14, # Required. This will be used to populate the &quot;value&quot; parameter for all occurrences of this Key Event (specified by event_name) where that parameter is unset.
              },
              &quot;deletable&quot;: True or False, # Output only. If set to true, this event can be deleted.
              &quot;eventName&quot;: &quot;A String&quot;, # Immutable. The event name for this key event. Examples: &#x27;click&#x27;, &#x27;purchase&#x27;
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this key event. Format: properties/{property}/keyEvents/{key_event}
            },
            &quot;measurementProtocolSecret&quot;: { # A secret value used for sending hits to Measurement Protocol. # A snapshot of a MeasurementProtocolSecret resource in change history.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this secret.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}
              &quot;secretValue&quot;: &quot;A String&quot;, # Output only. The measurement protocol secret value. Pass this value to the api_secret field of the Measurement Protocol API when sending hits to this secret&#x27;s parent property.
            },
            &quot;property&quot;: { # A resource message representing a Google Analytics property. # A snapshot of a Property resource in change history.
              &quot;account&quot;: &quot;A String&quot;, # Immutable. The resource name of the parent account Format: accounts/{account_id} Example: &quot;accounts/123&quot;
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when the entity was originally created.
              &quot;currencyCode&quot;: &quot;A String&quot;, # The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: &quot;USD&quot;, &quot;EUR&quot;, &quot;JPY&quot;
              &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.
              &quot;expireTime&quot;: &quot;A String&quot;, # Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.
              &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
              &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account}, properties/{property} Example: &quot;accounts/100&quot;, &quot;properties/101&quot;
              &quot;propertyType&quot;: &quot;A String&quot;, # Immutable. The property type for this Property resource. When creating a property, if the type is &quot;PROPERTY_TYPE_UNSPECIFIED&quot;, then &quot;ORDINARY_PROPERTY&quot; will be implied.
              &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
              &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
            },
            &quot;reportingDataAnnotation&quot;: { # A Reporting Data Annotation is a comment connected to certain dates for reporting data. # A snapshot of a ReportingDataAnnotation resource in change history.
              &quot;annotationDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # If set, the Reporting Data Annotation is for a specific date represented by this field. The date must be a valid date with year, month and day set. The date may be in the past, present, or future.
                &quot;day&quot;: 42, # 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&#x27;t significant.
                &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
                &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
              },
              &quot;annotationDateRange&quot;: { # Represents a Reporting Data Annotation&#x27;s date range, both start and end dates are inclusive. Time zones are based on the parent property. # If set, the Reporting Data Annotation is for a range of dates represented by this field.
                &quot;endDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Required. The end date for this range. Must be a valid date with year, month, and day set. This date must be greater than or equal to the start date.
                  &quot;day&quot;: 42, # 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&#x27;t significant.
                  &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
                  &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
                },
                &quot;startDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp # Required. The start date for this range. Must be a valid date with year, month, and day set. The date may be in the past, present, or future.
                  &quot;day&quot;: 42, # 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&#x27;t significant.
                  &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
                  &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
                },
              },
              &quot;color&quot;: &quot;A String&quot;, # Required. The color used for display of this Reporting Data Annotation.
              &quot;description&quot;: &quot;A String&quot;, # Optional. Description for this Reporting Data Annotation.
              &quot;name&quot;: &quot;A String&quot;, # Required. Identifier. Resource name of this Reporting Data Annotation. Format: &#x27;properties/{property_id}/reportingDataAnnotations/{reporting_data_annotation}&#x27; Format: &#x27;properties/123/reportingDataAnnotations/456&#x27;
              &quot;systemGenerated&quot;: True or False, # Output only. If true, this annotation was generated by the Google Analytics system. System-generated annotations cannot be updated or deleted.
              &quot;title&quot;: &quot;A String&quot;, # Required. Human-readable title for this Reporting Data Annotation.
            },
            &quot;reportingIdentitySettings&quot;: { # A resource containing settings related to reporting identity. # A snapshot of a ReportingIdentitySettings resource in change history.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Identifier. Resource name for this reporting identity settings singleton resource. Format: properties/{property_id}/reportingIdentitySettings Example: &quot;properties/1234/reportingIdentitySettings&quot;
              &quot;reportingIdentity&quot;: &quot;A String&quot;, # The strategy used for identifying user identities in reports.
            },
            &quot;searchAds360Link&quot;: { # A link between a Google Analytics property and a Search Ads 360 entity. # A snapshot of a SearchAds360Link resource in change history.
              &quot;adsPersonalizationEnabled&quot;: True or False, # Enables personalized advertising features with this integration. If this field is not set on create, it will be defaulted to true.
              &quot;advertiserDisplayName&quot;: &quot;A String&quot;, # Output only. The display name of the Search Ads 360 Advertiser. Allows users to easily identify the linked resource.
              &quot;advertiserId&quot;: &quot;A String&quot;, # Immutable. This field represents the Advertiser ID of the Search Ads 360 Advertiser. that has been linked.
              &quot;campaignDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of campaign data from Search Ads 360 into the Google Analytics property. After link creation, this can only be updated from the Search Ads 360 product. If this field is not set on create, it will be defaulted to true.
              &quot;costDataSharingEnabled&quot;: True or False, # Immutable. Enables the import of cost data from Search Ads 360 to the Google Analytics property. This can only be enabled if campaign_data_sharing_enabled is enabled. After link creation, this can only be updated from the Search Ads 360 product. If this field is not set on create, it will be defaulted to true.
              &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name for this SearchAds360Link resource. Format: properties/{propertyId}/searchAds360Links/{linkId} Note: linkId is not the Search Ads 360 advertiser ID
              &quot;siteStatsSharingEnabled&quot;: True or False, # Enables export of site stats with this integration. If this field is not set on create, it will be defaulted to true.
            },
            &quot;skadnetworkConversionValueSchema&quot;: { # SKAdNetwork conversion value schema of an iOS stream. # A snapshot of SKAdNetworkConversionValueSchema resource in change history.
              &quot;applyConversionValues&quot;: True or False, # If enabled, the GA SDK will set conversion values using this schema definition, and schema will be exported to any Google Ads accounts linked to this property. If disabled, the GA SDK will not automatically set conversion values, and also the schema will not be exported to Ads.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the schema. This will be child of ONLY an iOS stream, and there can be at most one such child under an iOS stream. Format: properties/{property}/dataStreams/{dataStream}/sKAdNetworkConversionValueSchema
              &quot;postbackWindowOne&quot;: { # Settings for a SKAdNetwork conversion postback window. # Required. The conversion value settings for the first postback window. These differ from values for postback window two and three in that they contain a &quot;Fine&quot; grained conversion value (a numeric value). Conversion values for this postback window must be set. The other windows are optional and may inherit this window&#x27;s settings if unset or disabled.
                &quot;conversionValues&quot;: [ # Ordering of the repeated field will be used to prioritize the conversion value settings. Lower indexed entries are prioritized higher. The first conversion value setting that evaluates to true will be selected. It must have at least one entry if enable_postback_window_settings is set to true. It can have maximum of 128 entries.
                  { # Conversion value settings for a postback window for SKAdNetwork conversion value schema.
                    &quot;coarseValue&quot;: &quot;A String&quot;, # Required. A coarse grained conversion value. This value is not guaranteed to be unique.
                    &quot;displayName&quot;: &quot;A String&quot;, # Display name of the SKAdNetwork conversion value. The max allowed display name length is 50 UTF-16 code units.
                    &quot;eventMappings&quot;: [ # Event conditions that must be met for this Conversion Value to be achieved. The conditions in this list are ANDed together. It must have minimum of 1 entry and maximum of 3 entries, if the postback window is enabled.
                      { # Event setting conditions to match an event.
                        &quot;eventName&quot;: &quot;A String&quot;, # Required. Name of the Google Analytics event. It must always be set. The max allowed display name length is 40 UTF-16 code units.
                        &quot;maxEventCount&quot;: &quot;A String&quot;, # The maximum number of times the event occurred. If not set, maximum event count won&#x27;t be checked.
                        &quot;maxEventValue&quot;: 3.14, # The maximum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, maximum event value won&#x27;t be checked.
                        &quot;minEventCount&quot;: &quot;A String&quot;, # At least one of the following four min/max values must be set. The values set will be ANDed together to qualify an event. The minimum number of times the event occurred. If not set, minimum event count won&#x27;t be checked.
                        &quot;minEventValue&quot;: 3.14, # The minimum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, minimum event value won&#x27;t be checked.
                      },
                    ],
                    &quot;fineValue&quot;: 42, # The fine-grained conversion value. This is applicable only to the first postback window. Its valid values are [0,63], both inclusive. It must be set for postback window 1, and must not be set for postback window 2 &amp; 3. This value is not guaranteed to be unique. If the configuration for the first postback window is re-used for second or third postback windows this field has no effect.
                    &quot;lockEnabled&quot;: True or False, # If true, the SDK should lock to this conversion value for the current postback window.
                  },
                ],
                &quot;postbackWindowSettingsEnabled&quot;: True or False, # If enable_postback_window_settings is true, conversion_values must be populated and will be used for determining when and how to set the Conversion Value on a client device and exporting schema to linked Ads accounts. If false, the settings are not used, but are retained in case they may be used in the future. This must always be true for postback_window_one.
              },
              &quot;postbackWindowThree&quot;: { # Settings for a SKAdNetwork conversion postback window. # The conversion value settings for the third postback window. This field should only be set if the user chose to define different conversion values for this postback window. It is allowed to configure window 3 without setting window 2. In case window 1 &amp; 2 settings are set and enable_postback_window_settings for this postback window is set to false, the schema will inherit settings from postback_window_two.
                &quot;conversionValues&quot;: [ # Ordering of the repeated field will be used to prioritize the conversion value settings. Lower indexed entries are prioritized higher. The first conversion value setting that evaluates to true will be selected. It must have at least one entry if enable_postback_window_settings is set to true. It can have maximum of 128 entries.
                  { # Conversion value settings for a postback window for SKAdNetwork conversion value schema.
                    &quot;coarseValue&quot;: &quot;A String&quot;, # Required. A coarse grained conversion value. This value is not guaranteed to be unique.
                    &quot;displayName&quot;: &quot;A String&quot;, # Display name of the SKAdNetwork conversion value. The max allowed display name length is 50 UTF-16 code units.
                    &quot;eventMappings&quot;: [ # Event conditions that must be met for this Conversion Value to be achieved. The conditions in this list are ANDed together. It must have minimum of 1 entry and maximum of 3 entries, if the postback window is enabled.
                      { # Event setting conditions to match an event.
                        &quot;eventName&quot;: &quot;A String&quot;, # Required. Name of the Google Analytics event. It must always be set. The max allowed display name length is 40 UTF-16 code units.
                        &quot;maxEventCount&quot;: &quot;A String&quot;, # The maximum number of times the event occurred. If not set, maximum event count won&#x27;t be checked.
                        &quot;maxEventValue&quot;: 3.14, # The maximum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, maximum event value won&#x27;t be checked.
                        &quot;minEventCount&quot;: &quot;A String&quot;, # At least one of the following four min/max values must be set. The values set will be ANDed together to qualify an event. The minimum number of times the event occurred. If not set, minimum event count won&#x27;t be checked.
                        &quot;minEventValue&quot;: 3.14, # The minimum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, minimum event value won&#x27;t be checked.
                      },
                    ],
                    &quot;fineValue&quot;: 42, # The fine-grained conversion value. This is applicable only to the first postback window. Its valid values are [0,63], both inclusive. It must be set for postback window 1, and must not be set for postback window 2 &amp; 3. This value is not guaranteed to be unique. If the configuration for the first postback window is re-used for second or third postback windows this field has no effect.
                    &quot;lockEnabled&quot;: True or False, # If true, the SDK should lock to this conversion value for the current postback window.
                  },
                ],
                &quot;postbackWindowSettingsEnabled&quot;: True or False, # If enable_postback_window_settings is true, conversion_values must be populated and will be used for determining when and how to set the Conversion Value on a client device and exporting schema to linked Ads accounts. If false, the settings are not used, but are retained in case they may be used in the future. This must always be true for postback_window_one.
              },
              &quot;postbackWindowTwo&quot;: { # Settings for a SKAdNetwork conversion postback window. # The conversion value settings for the second postback window. This field should only be configured if there is a need to define different conversion values for this postback window. If enable_postback_window_settings is set to false for this postback window, the values from postback_window_one will be used.
                &quot;conversionValues&quot;: [ # Ordering of the repeated field will be used to prioritize the conversion value settings. Lower indexed entries are prioritized higher. The first conversion value setting that evaluates to true will be selected. It must have at least one entry if enable_postback_window_settings is set to true. It can have maximum of 128 entries.
                  { # Conversion value settings for a postback window for SKAdNetwork conversion value schema.
                    &quot;coarseValue&quot;: &quot;A String&quot;, # Required. A coarse grained conversion value. This value is not guaranteed to be unique.
                    &quot;displayName&quot;: &quot;A String&quot;, # Display name of the SKAdNetwork conversion value. The max allowed display name length is 50 UTF-16 code units.
                    &quot;eventMappings&quot;: [ # Event conditions that must be met for this Conversion Value to be achieved. The conditions in this list are ANDed together. It must have minimum of 1 entry and maximum of 3 entries, if the postback window is enabled.
                      { # Event setting conditions to match an event.
                        &quot;eventName&quot;: &quot;A String&quot;, # Required. Name of the Google Analytics event. It must always be set. The max allowed display name length is 40 UTF-16 code units.
                        &quot;maxEventCount&quot;: &quot;A String&quot;, # The maximum number of times the event occurred. If not set, maximum event count won&#x27;t be checked.
                        &quot;maxEventValue&quot;: 3.14, # The maximum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, maximum event value won&#x27;t be checked.
                        &quot;minEventCount&quot;: &quot;A String&quot;, # At least one of the following four min/max values must be set. The values set will be ANDed together to qualify an event. The minimum number of times the event occurred. If not set, minimum event count won&#x27;t be checked.
                        &quot;minEventValue&quot;: 3.14, # The minimum revenue generated due to the event. Revenue currency will be defined at the property level. If not set, minimum event value won&#x27;t be checked.
                      },
                    ],
                    &quot;fineValue&quot;: 42, # The fine-grained conversion value. This is applicable only to the first postback window. Its valid values are [0,63], both inclusive. It must be set for postback window 1, and must not be set for postback window 2 &amp; 3. This value is not guaranteed to be unique. If the configuration for the first postback window is re-used for second or third postback windows this field has no effect.
                    &quot;lockEnabled&quot;: True or False, # If true, the SDK should lock to this conversion value for the current postback window.
                  },
                ],
                &quot;postbackWindowSettingsEnabled&quot;: True or False, # If enable_postback_window_settings is true, conversion_values must be populated and will be used for determining when and how to set the Conversion Value on a client device and exporting schema to linked Ads accounts. If false, the settings are not used, but are retained in case they may be used in the future. This must always be true for postback_window_one.
              },
            },
            &quot;subpropertySyncConfig&quot;: { # Subproperty synchronization configuration controls how ordinary property configurations are synchronized to subproperties. This resource is provisioned automatically for each subproperty. # A snapshot of a SubpropertySyncConfig resource in change history.
              &quot;applyToProperty&quot;: &quot;A String&quot;, # Output only. Immutable. Resource name of the subproperty that these settings apply to.
              &quot;customDimensionAndMetricSyncMode&quot;: &quot;A String&quot;, # Required. Specifies the Custom Dimension / Metric synchronization mode for the subproperty. If set to ALL, Custom Dimension / Metric synchronization will be immediately enabled. Local configuration of Custom Dimensions / Metrics will not be allowed on the subproperty so long as the synchronization mode is set to ALL. If set to NONE, Custom Dimensions / Metric synchronization is disabled. Custom Dimensions / Metrics must be configured explicitly on the Subproperty.
              &quot;name&quot;: &quot;A String&quot;, # Output only. Identifier. Format: properties/{ordinary_property_id}/subpropertySyncConfigs/{subproperty_id} Example: properties/1234/subpropertySyncConfigs/5678
            },
          },
        },
      ],
      &quot;changesFiltered&quot;: True or False, # If true, then the list of changes returned was filtered, and does not represent all changes that occurred in this event.
      &quot;id&quot;: &quot;A String&quot;, # ID of this change history event. This ID is unique across Google Analytics.
      &quot;userActorEmail&quot;: &quot;A String&quot;, # Email address of the Google account that made the change. This will be a valid email address if the actor field is set to USER, and empty otherwise. Google accounts that have been deleted will cause an error.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
}</pre>
</div>

<div class="method">
    <code class="details" id="searchChangeHistoryEvents_next">searchChangeHistoryEvents_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

</body></html>