<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="analytics_v3.html">Google Analytics API</a> . <a href="analytics_v3.management.html">management</a> . <a href="analytics_v3.management.profiles.html">profiles</a></h1>
<h2>Instance Methods</h2>
<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(accountId, webPropertyId, profileId)</a></code></p>
<p class="firstline">Deletes a view (profile).</p>
<p class="toc_element">
  <code><a href="#get">get(accountId, webPropertyId, profileId)</a></code></p>
<p class="firstline">Gets a view (profile) to which the user has access.</p>
<p class="toc_element">
  <code><a href="#insert">insert(accountId, webPropertyId, body=None)</a></code></p>
<p class="firstline">Create a new view (profile).</p>
<p class="toc_element">
  <code><a href="#list">list(accountId, webPropertyId, max_results=None, start_index=None)</a></code></p>
<p class="firstline">Lists views (profiles) to which the user has access.</p>
<p class="toc_element">
  <code><a href="#patch">patch(accountId, webPropertyId, profileId, body=None)</a></code></p>
<p class="firstline">Updates an existing view (profile). This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(accountId, webPropertyId, profileId, body=None)</a></code></p>
<p class="firstline">Updates an existing view (profile).</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(accountId, webPropertyId, profileId)</code>
  <pre>Deletes a view (profile).

Args:
  accountId: string, Account ID to delete the view (profile) for. (required)
  webPropertyId: string, Web property ID to delete the view (profile) for. (required)
  profileId: string, ID of the view (profile) to be deleted. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(accountId, webPropertyId, profileId)</code>
  <pre>Gets a view (profile) to which the user has access.

Args:
  accountId: string, Account ID to retrieve the view (profile) for. (required)
  webPropertyId: string, Web property ID to retrieve the view (profile) for. (required)
  profileId: string, View (Profile) ID to retrieve the view (profile) for. (required)

Returns:
  An object of the form:

    { # JSON template for an Analytics view (profile).
      &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
      &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
      &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
      &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
      &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
      &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
      &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
      &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
      &quot;permissions&quot;: { # Permissions the user has for this view (profile).
        &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
          &quot;A String&quot;,
        ],
      },
      &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
      &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
      &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
          # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
      &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
      &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
      &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
      &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
      &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
      &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
      &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
      &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
      &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
        &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
      },
      &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
        &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
      },
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(accountId, webPropertyId, body=None)</code>
  <pre>Create a new view (profile).

Args:
  accountId: string, Account ID to create the view (profile) for. (required)
  webPropertyId: string, Web property ID to create the view (profile) for. (required)
  body: object, The request body.
    The object takes the form of:

{ # JSON template for an Analytics view (profile).
    &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
    &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
    &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
    &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
    &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
    &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
    &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
    &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
    &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
    &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
    &quot;permissions&quot;: { # Permissions the user has for this view (profile).
      &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
        &quot;A String&quot;,
      ],
    },
    &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
    &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
    &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
    &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
        # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
    &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
    &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
    &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
    &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
    &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
    &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
    &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
    &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
    &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
    &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
      &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
      &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
    },
    &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
      &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
      &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
    },
  }


Returns:
  An object of the form:

    { # JSON template for an Analytics view (profile).
      &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
      &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
      &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
      &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
      &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
      &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
      &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
      &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
      &quot;permissions&quot;: { # Permissions the user has for this view (profile).
        &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
          &quot;A String&quot;,
        ],
      },
      &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
      &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
      &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
          # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
      &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
      &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
      &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
      &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
      &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
      &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
      &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
      &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
      &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
        &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
      },
      &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
        &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
      },
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(accountId, webPropertyId, max_results=None, start_index=None)</code>
  <pre>Lists views (profiles) to which the user has access.

Args:
  accountId: string, Account ID for the view (profiles) to retrieve. Can either be a specific account ID or &#x27;~all&#x27;, which refers to all the accounts to which the user has access. (required)
  webPropertyId: string, Web property ID for the views (profiles) to retrieve. Can either be a specific web property ID or &#x27;~all&#x27;, which refers to all the web properties to which the user has access. (required)
  max_results: integer, The maximum number of views (profiles) to include in this response.
  start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.

Returns:
  An object of the form:

    { # A view (profile) collection lists Analytics views (profiles) to which the user has access. Each resource in the collection corresponds to a single Analytics view (profile).
    &quot;nextLink&quot;: &quot;A String&quot;, # Link to next page for this view (profile) collection.
    &quot;previousLink&quot;: &quot;A String&quot;, # Link to previous page for this view (profile) collection.
    &quot;kind&quot;: &quot;analytics#profiles&quot;, # Collection type.
    &quot;totalResults&quot;: 42, # The total number of results for the query, regardless of the number of results in the response.
    &quot;startIndex&quot;: 42, # The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.
    &quot;username&quot;: &quot;A String&quot;, # Email ID of the authenticated user
    &quot;itemsPerPage&quot;: 42, # The maximum number of resources the response can contain, regardless of the actual number of resources returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.
    &quot;items&quot;: [ # A list of views (profiles).
      { # JSON template for an Analytics view (profile).
          &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
          &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
          &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
          &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
          &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
          &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
          &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
          &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
          &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
          &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
          &quot;permissions&quot;: { # Permissions the user has for this view (profile).
            &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
              &quot;A String&quot;,
            ],
          },
          &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
          &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
          &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
          &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
              # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
          &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
          &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
          &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
          &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
          &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
          &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
          &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
          &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
          &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
          &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
            &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
            &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
          },
          &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
            &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
            &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
          },
        },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(accountId, webPropertyId, profileId, body=None)</code>
  <pre>Updates an existing view (profile). This method supports patch semantics.

Args:
  accountId: string, Account ID to which the view (profile) belongs (required)
  webPropertyId: string, Web property ID to which the view (profile) belongs (required)
  profileId: string, ID of the view (profile) to be updated. (required)
  body: object, The request body.
    The object takes the form of:

{ # JSON template for an Analytics view (profile).
    &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
    &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
    &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
    &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
    &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
    &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
    &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
    &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
    &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
    &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
    &quot;permissions&quot;: { # Permissions the user has for this view (profile).
      &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
        &quot;A String&quot;,
      ],
    },
    &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
    &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
    &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
    &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
        # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
    &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
    &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
    &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
    &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
    &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
    &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
    &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
    &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
    &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
    &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
      &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
      &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
    },
    &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
      &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
      &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
    },
  }


Returns:
  An object of the form:

    { # JSON template for an Analytics view (profile).
      &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
      &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
      &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
      &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
      &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
      &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
      &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
      &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
      &quot;permissions&quot;: { # Permissions the user has for this view (profile).
        &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
          &quot;A String&quot;,
        ],
      },
      &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
      &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
      &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
          # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
      &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
      &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
      &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
      &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
      &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
      &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
      &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
      &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
      &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
        &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
      },
      &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
        &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
      },
    }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(accountId, webPropertyId, profileId, body=None)</code>
  <pre>Updates an existing view (profile).

Args:
  accountId: string, Account ID to which the view (profile) belongs (required)
  webPropertyId: string, Web property ID to which the view (profile) belongs (required)
  profileId: string, ID of the view (profile) to be updated. (required)
  body: object, The request body.
    The object takes the form of:

{ # JSON template for an Analytics view (profile).
    &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
    &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
    &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
    &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
    &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
    &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
    &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
    &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
    &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
    &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
    &quot;permissions&quot;: { # Permissions the user has for this view (profile).
      &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
        &quot;A String&quot;,
      ],
    },
    &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
    &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
    &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
    &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
        # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
    &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
    &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
    &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
    &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
    &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
    &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
    &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
    &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
    &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
    &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
      &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
      &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
    },
    &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
      &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
      &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
    },
  }


Returns:
  An object of the form:

    { # JSON template for an Analytics view (profile).
      &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
      &quot;enhancedECommerceTracking&quot;: True or False, # Indicates whether enhanced ecommerce tracking is enabled for this view (profile). This property can only be enabled if ecommerce tracking is enabled.
      &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
      &quot;webPropertyId&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
      &quot;defaultPage&quot;: &quot;A String&quot;, # Default page for this view (profile).
      &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      &quot;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
      &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
      &quot;id&quot;: &quot;A String&quot;, # View (Profile) ID.
      &quot;permissions&quot;: { # Permissions the user has for this view (profile).
        &quot;effective&quot;: [ # All the permissions that the user has for this view (profile). These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent web property.
          &quot;A String&quot;,
        ],
      },
      &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
      &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      &quot;timezone&quot;: &quot;A String&quot;, # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
      &quot;currency&quot;: &quot;A String&quot;, # The currency type associated with this view (profile), defaults to USD. The supported values are:
          # USD, JPY, EUR, GBP, AUD, KRW, BRL, CNY, DKK, RUB, SEK, NOK, PLN, TRY, TWD, HKD, THB, IDR, ARS, MXN, VND, PHP, INR, CHF, CAD, CZK, NZD, HUF, BGN, LTL, ZAR, UAH, AED, BOB, CLP, COP, EGP, HRK, ILS, MAD, MYR, PEN, PKR, RON, RSD, SAR, SGD, VEF, LVL
      &quot;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
      &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
      &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
      &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
      &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
      &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
      &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
      &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
      &quot;childLink&quot;: { # Child link for this view (profile). Points to the list of goals for this view (profile).
        &quot;type&quot;: &quot;analytics#goals&quot;, # Value is &quot;analytics#goals&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the list of goals for this view (profile).
      },
      &quot;parentLink&quot;: { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
        &quot;type&quot;: &quot;analytics#webproperty&quot;, # Value is &quot;analytics#webproperty&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the web property to which this view (profile) belongs.
      },
    }</pre>
</div>

</body></html>