<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.userLinks.html">userLinks()</a></code>
</p>
<p class="firstline">Returns the userLinks 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, UserLinks) 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 GA4 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(previous_request, previous_response)</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="#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.</p>
<p class="toc_element">
  <code><a href="#searchChangeHistoryEvents_next">searchChangeHistoryEvents_next(previous_request, previous_response)</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, UserLinks) 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); } The JSON representation for `Empty` is empty JSON object `{}`.
}</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;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: &quot;accounts/1000/dataSharingSettings&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 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, # Allows any of Google sales to access the data in order to suggest configuration changes to improve results.
  &quot;sharingWithGoogleAssignedSalesEnabled&quot;: True or False, # Allows Google sales teams that are assigned to the customer to access the data in order to suggest configuration changes to improve results. Sales team restrictions still apply when enabled.
  &quot;sharingWithGoogleProductsEnabled&quot;: True or False, # Allows Google to use the data to improve other Google products or services.
  &quot;sharingWithGoogleSupportEnabled&quot;: True or False, # Allows Google support to access the data in order to help troubleshoot issues.
  &quot;sharingWithOthersEnabled&quot;: True or False, # Allows Google to share the data anonymously in aggregate form with others.
}</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 GA4 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;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(previous_request, previous_response)</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;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 (e.g., &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;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;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 Developers 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="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.

Args:
  account: string, Required. The account resource for which to return change history resources. (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. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 items will be returned. The maximum value is 200 (higher values will be coerced to the maximum).
  &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.
  &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;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;androidAppDataStream&quot;: { # A resource message representing a Google Analytics Android app stream. # A snapshot of an AndroidAppDataStream resource in change history.
              &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. The max allowed display name length is 255 UTF-16 code units.
              &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;name&quot;: &quot;A String&quot;, # Output only. Resource name of this Data Stream. Format: properties/{property_id}/androidAppDataStreams/{stream_id} Example: &quot;properties/1000/androidAppDataStreams/2000&quot;
              &quot;packageName&quot;: &quot;A String&quot;, # Immutable. The package name for the app being measured. Example: &quot;com.example.myandroidapp&quot;
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when stream payload fields were last updated.
            },
            &quot;conversionEvent&quot;: { # A conversion event in a Google Analytics property. # A snapshot of a ConversionEvent resource in change history.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this conversion event was created in the property.
              &quot;eventName&quot;: &quot;A String&quot;, # Immutable. The event name for this conversion event. Examples: &#x27;click&#x27;, &#x27;purchase&#x27;
              &quot;isDeletable&quot;: True or False, # Output only. If set, this event can currently be deleted via DeleteConversionEvent.
              &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. 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. Immutable. 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;scope&quot;: &quot;A String&quot;, # Required. Immutable. The scope of this custom metric.
            },
            &quot;firebaseLink&quot;: { # A link between an GA4 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;maximumUserAccess&quot;: &quot;A String&quot;, # Maximum user access to the GA4 property allowed to admins of the linked Firebase project.
              &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 an GA4 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;customerId&quot;: &quot;A String&quot;, # Immutable. Google Ads customer ID.
              &quot;emailAddress&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;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;iosAppDataStream&quot;: { # A resource message representing a Google Analytics IOS app stream. # A snapshot of an IosAppDataStream resource in change history.
              &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;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. The max allowed display name length is 255 UTF-16 code units.
              &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}/iosAppDataStreams/{stream_id} Example: &quot;properties/1000/iosAppDataStreams/2000&quot;
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when stream payload fields were last updated.
            },
            &quot;property&quot;: { # A resource message representing a Google Analytics GA4 property. # A snapshot of a Property resource in change history.
              &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} Example: &quot;accounts/100&quot;
              &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;webDataStream&quot;: { # A resource message representing a Google Analytics web stream. # A snapshot of a WebDataStream resource in change history.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this stream was originally created.
              &quot;defaultUri&quot;: &quot;A String&quot;, # Immutable. Domain name of the web app being measured, or empty. Example: &quot;http://www.google.com&quot;, &quot;https://www.google.com&quot;
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for the Data Stream. The max allowed display name length is 100 UTF-16 code units.
              &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 &quot;Measurement ID&quot;, without the &quot;G-&quot; prefix. Example: &quot;G-1A2BCD345E&quot; would just be &quot;1A2BCD345E&quot;
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this Data Stream. Format: properties/{property_id}/webDataStreams/{stream_id} Example: &quot;properties/1000/webDataStreams/2000&quot;
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when stream payload fields were last updated.
            },
          },
          &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;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;androidAppDataStream&quot;: { # A resource message representing a Google Analytics Android app stream. # A snapshot of an AndroidAppDataStream resource in change history.
              &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. The max allowed display name length is 255 UTF-16 code units.
              &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;name&quot;: &quot;A String&quot;, # Output only. Resource name of this Data Stream. Format: properties/{property_id}/androidAppDataStreams/{stream_id} Example: &quot;properties/1000/androidAppDataStreams/2000&quot;
              &quot;packageName&quot;: &quot;A String&quot;, # Immutable. The package name for the app being measured. Example: &quot;com.example.myandroidapp&quot;
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when stream payload fields were last updated.
            },
            &quot;conversionEvent&quot;: { # A conversion event in a Google Analytics property. # A snapshot of a ConversionEvent resource in change history.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this conversion event was created in the property.
              &quot;eventName&quot;: &quot;A String&quot;, # Immutable. The event name for this conversion event. Examples: &#x27;click&#x27;, &#x27;purchase&#x27;
              &quot;isDeletable&quot;: True or False, # Output only. If set, this event can currently be deleted via DeleteConversionEvent.
              &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. 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. Immutable. 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;scope&quot;: &quot;A String&quot;, # Required. Immutable. The scope of this custom metric.
            },
            &quot;firebaseLink&quot;: { # A link between an GA4 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;maximumUserAccess&quot;: &quot;A String&quot;, # Maximum user access to the GA4 property allowed to admins of the linked Firebase project.
              &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 an GA4 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;customerId&quot;: &quot;A String&quot;, # Immutable. Google Ads customer ID.
              &quot;emailAddress&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;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;iosAppDataStream&quot;: { # A resource message representing a Google Analytics IOS app stream. # A snapshot of an IosAppDataStream resource in change history.
              &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;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. The max allowed display name length is 255 UTF-16 code units.
              &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}/iosAppDataStreams/{stream_id} Example: &quot;properties/1000/iosAppDataStreams/2000&quot;
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when stream payload fields were last updated.
            },
            &quot;property&quot;: { # A resource message representing a Google Analytics GA4 property. # A snapshot of a Property resource in change history.
              &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} Example: &quot;accounts/100&quot;
              &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;webDataStream&quot;: { # A resource message representing a Google Analytics web stream. # A snapshot of a WebDataStream resource in change history.
              &quot;createTime&quot;: &quot;A String&quot;, # Output only. Time when this stream was originally created.
              &quot;defaultUri&quot;: &quot;A String&quot;, # Immutable. Domain name of the web app being measured, or empty. Example: &quot;http://www.google.com&quot;, &quot;https://www.google.com&quot;
              &quot;displayName&quot;: &quot;A String&quot;, # Required. Human-readable display name for the Data Stream. The max allowed display name length is 100 UTF-16 code units.
              &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 &quot;Measurement ID&quot;, without the &quot;G-&quot; prefix. Example: &quot;G-1A2BCD345E&quot; would just be &quot;1A2BCD345E&quot;
              &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this Data Stream. Format: properties/{property_id}/webDataStreams/{stream_id} Example: &quot;properties/1000/webDataStreams/2000&quot;
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when stream payload fields were last updated.
            },
          },
        },
      ],
      &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(previous_request, previous_response)</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>