<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="#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)</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)</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)</a></code></p>
<p class="firstline">Updates an existing view (profile).</p>
<h3>Method Details</h3>
<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).
      "currency": "A String", # 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
      "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
      "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
      "id": "A String", # View (Profile) ID.
      "accountId": "A String", # Account ID to which this view (profile) belongs.
      "botFilteringEnabled": True or False, # Indicates whether bot filtering is enabled for this view (profile).
      "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
      "type": "A String", # View (Profile) type. Supported types: WEB or APP.
      "updated": "A String", # Time this view (profile) was last modified.
      "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
      "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
        "href": "A String", # Link to the list of goals for this view (profile).
        "type": "analytics#goals", # Value is "analytics#goals".
      },
      "enhancedECommerceTracking": 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.
      "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
        "href": "A String", # Link to the web property to which this view (profile) belongs.
        "type": "analytics#webproperty", # Value is "analytics#webproperty".
      },
      "permissions": { # Permissions the user has for this view (profile).
        "effective": [ # 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.
          "A String",
        ],
      },
      "defaultPage": "A String", # Default page for this view (profile).
      "kind": "analytics#profile", # Resource type for Analytics view (profile).
      "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      "name": "A String", # Name of this view (profile).
      "created": "A String", # Time this view (profile) was created.
      "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
      "websiteUrl": "A String", # Website URL for this view (profile).
      "starred": True or False, # Indicates whether this view (profile) is starred or not.
      "selfLink": "A String", # Link for this view (profile).
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(accountId, webPropertyId, body)</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. (required)
    The object takes the form of:

{ # JSON template for an Analytics view (profile).
    "currency": "A String", # 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
    "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
    "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
    "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
    "id": "A String", # View (Profile) ID.
    "accountId": "A String", # Account ID to which this view (profile) belongs.
    "botFilteringEnabled": True or False, # Indicates whether bot filtering is enabled for this view (profile).
    "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
    "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
    "type": "A String", # View (Profile) type. Supported types: WEB or APP.
    "updated": "A String", # Time this view (profile) was last modified.
    "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
    "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
    "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
      "href": "A String", # Link to the list of goals for this view (profile).
      "type": "analytics#goals", # Value is "analytics#goals".
    },
    "enhancedECommerceTracking": 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.
    "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
      "href": "A String", # Link to the web property to which this view (profile) belongs.
      "type": "analytics#webproperty", # Value is "analytics#webproperty".
    },
    "permissions": { # Permissions the user has for this view (profile).
      "effective": [ # 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.
        "A String",
      ],
    },
    "defaultPage": "A String", # Default page for this view (profile).
    "kind": "analytics#profile", # Resource type for Analytics view (profile).
    "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
    "name": "A String", # Name of this view (profile).
    "created": "A String", # Time this view (profile) was created.
    "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
    "websiteUrl": "A String", # Website URL for this view (profile).
    "starred": True or False, # Indicates whether this view (profile) is starred or not.
    "selfLink": "A String", # Link for this view (profile).
  }


Returns:
  An object of the form:

    { # JSON template for an Analytics view (profile).
      "currency": "A String", # 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
      "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
      "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
      "id": "A String", # View (Profile) ID.
      "accountId": "A String", # Account ID to which this view (profile) belongs.
      "botFilteringEnabled": True or False, # Indicates whether bot filtering is enabled for this view (profile).
      "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
      "type": "A String", # View (Profile) type. Supported types: WEB or APP.
      "updated": "A String", # Time this view (profile) was last modified.
      "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
      "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
        "href": "A String", # Link to the list of goals for this view (profile).
        "type": "analytics#goals", # Value is "analytics#goals".
      },
      "enhancedECommerceTracking": 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.
      "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
        "href": "A String", # Link to the web property to which this view (profile) belongs.
        "type": "analytics#webproperty", # Value is "analytics#webproperty".
      },
      "permissions": { # Permissions the user has for this view (profile).
        "effective": [ # 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.
          "A String",
        ],
      },
      "defaultPage": "A String", # Default page for this view (profile).
      "kind": "analytics#profile", # Resource type for Analytics view (profile).
      "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      "name": "A String", # Name of this view (profile).
      "created": "A String", # Time this view (profile) was created.
      "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
      "websiteUrl": "A String", # Website URL for this view (profile).
      "starred": True or False, # Indicates whether this view (profile) is starred or not.
      "selfLink": "A String", # Link for this view (profile).
    }</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 '~all', 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 '~all', 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).
    "username": "A String", # Email ID of the authenticated user
    "kind": "analytics#profiles", # Collection type.
    "items": [ # A list of views (profiles).
      { # JSON template for an Analytics view (profile).
          "currency": "A String", # 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
          "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
          "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
          "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
          "id": "A String", # View (Profile) ID.
          "accountId": "A String", # Account ID to which this view (profile) belongs.
          "botFilteringEnabled": True or False, # Indicates whether bot filtering is enabled for this view (profile).
          "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
          "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
          "type": "A String", # View (Profile) type. Supported types: WEB or APP.
          "updated": "A String", # Time this view (profile) was last modified.
          "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
          "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
          "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
            "href": "A String", # Link to the list of goals for this view (profile).
            "type": "analytics#goals", # Value is "analytics#goals".
          },
          "enhancedECommerceTracking": 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.
          "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
            "href": "A String", # Link to the web property to which this view (profile) belongs.
            "type": "analytics#webproperty", # Value is "analytics#webproperty".
          },
          "permissions": { # Permissions the user has for this view (profile).
            "effective": [ # 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.
              "A String",
            ],
          },
          "defaultPage": "A String", # Default page for this view (profile).
          "kind": "analytics#profile", # Resource type for Analytics view (profile).
          "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
          "name": "A String", # Name of this view (profile).
          "created": "A String", # Time this view (profile) was created.
          "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
          "websiteUrl": "A String", # Website URL for this view (profile).
          "starred": True or False, # Indicates whether this view (profile) is starred or not.
          "selfLink": "A String", # Link for this view (profile).
        },
    ],
    "itemsPerPage": 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.
    "previousLink": "A String", # Link to previous page for this view (profile) collection.
    "startIndex": 42, # The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.
    "nextLink": "A String", # Link to next page for this view (profile) collection.
    "totalResults": 42, # The total number of results for the query, regardless of the number of results in the response.
  }</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(accountId, webPropertyId, profileId, body)</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. (required)
    The object takes the form of:

{ # JSON template for an Analytics view (profile).
    "currency": "A String", # 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
    "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
    "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
    "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
    "id": "A String", # View (Profile) ID.
    "accountId": "A String", # Account ID to which this view (profile) belongs.
    "botFilteringEnabled": True or False, # Indicates whether bot filtering is enabled for this view (profile).
    "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
    "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
    "type": "A String", # View (Profile) type. Supported types: WEB or APP.
    "updated": "A String", # Time this view (profile) was last modified.
    "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
    "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
    "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
      "href": "A String", # Link to the list of goals for this view (profile).
      "type": "analytics#goals", # Value is "analytics#goals".
    },
    "enhancedECommerceTracking": 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.
    "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
      "href": "A String", # Link to the web property to which this view (profile) belongs.
      "type": "analytics#webproperty", # Value is "analytics#webproperty".
    },
    "permissions": { # Permissions the user has for this view (profile).
      "effective": [ # 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.
        "A String",
      ],
    },
    "defaultPage": "A String", # Default page for this view (profile).
    "kind": "analytics#profile", # Resource type for Analytics view (profile).
    "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
    "name": "A String", # Name of this view (profile).
    "created": "A String", # Time this view (profile) was created.
    "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
    "websiteUrl": "A String", # Website URL for this view (profile).
    "starred": True or False, # Indicates whether this view (profile) is starred or not.
    "selfLink": "A String", # Link for this view (profile).
  }


Returns:
  An object of the form:

    { # JSON template for an Analytics view (profile).
      "currency": "A String", # 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
      "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
      "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
      "id": "A String", # View (Profile) ID.
      "accountId": "A String", # Account ID to which this view (profile) belongs.
      "botFilteringEnabled": True or False, # Indicates whether bot filtering is enabled for this view (profile).
      "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
      "type": "A String", # View (Profile) type. Supported types: WEB or APP.
      "updated": "A String", # Time this view (profile) was last modified.
      "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
      "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
        "href": "A String", # Link to the list of goals for this view (profile).
        "type": "analytics#goals", # Value is "analytics#goals".
      },
      "enhancedECommerceTracking": 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.
      "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
        "href": "A String", # Link to the web property to which this view (profile) belongs.
        "type": "analytics#webproperty", # Value is "analytics#webproperty".
      },
      "permissions": { # Permissions the user has for this view (profile).
        "effective": [ # 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.
          "A String",
        ],
      },
      "defaultPage": "A String", # Default page for this view (profile).
      "kind": "analytics#profile", # Resource type for Analytics view (profile).
      "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      "name": "A String", # Name of this view (profile).
      "created": "A String", # Time this view (profile) was created.
      "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
      "websiteUrl": "A String", # Website URL for this view (profile).
      "starred": True or False, # Indicates whether this view (profile) is starred or not.
      "selfLink": "A String", # Link for this view (profile).
    }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(accountId, webPropertyId, profileId, body)</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. (required)
    The object takes the form of:

{ # JSON template for an Analytics view (profile).
    "currency": "A String", # 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
    "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
    "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
    "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
    "id": "A String", # View (Profile) ID.
    "accountId": "A String", # Account ID to which this view (profile) belongs.
    "botFilteringEnabled": True or False, # Indicates whether bot filtering is enabled for this view (profile).
    "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
    "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
    "type": "A String", # View (Profile) type. Supported types: WEB or APP.
    "updated": "A String", # Time this view (profile) was last modified.
    "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
    "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
    "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
      "href": "A String", # Link to the list of goals for this view (profile).
      "type": "analytics#goals", # Value is "analytics#goals".
    },
    "enhancedECommerceTracking": 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.
    "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
      "href": "A String", # Link to the web property to which this view (profile) belongs.
      "type": "analytics#webproperty", # Value is "analytics#webproperty".
    },
    "permissions": { # Permissions the user has for this view (profile).
      "effective": [ # 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.
        "A String",
      ],
    },
    "defaultPage": "A String", # Default page for this view (profile).
    "kind": "analytics#profile", # Resource type for Analytics view (profile).
    "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
    "name": "A String", # Name of this view (profile).
    "created": "A String", # Time this view (profile) was created.
    "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
    "websiteUrl": "A String", # Website URL for this view (profile).
    "starred": True or False, # Indicates whether this view (profile) is starred or not.
    "selfLink": "A String", # Link for this view (profile).
  }


Returns:
  An object of the form:

    { # JSON template for an Analytics view (profile).
      "currency": "A String", # 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
      "eCommerceTracking": True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      "webPropertyId": "A String", # Web property ID of the form UA-XXXXX-YY to which this view (profile) belongs.
      "timezone": "A String", # Time zone for which this view (profile) has been configured. Time zones are identified by strings from the TZ database.
      "id": "A String", # View (Profile) ID.
      "accountId": "A String", # Account ID to which this view (profile) belongs.
      "botFilteringEnabled": True or False, # Indicates whether bot filtering is enabled for this view (profile).
      "stripSiteSearchCategoryParameters": True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      "siteSearchCategoryParameters": "A String", # Site search category parameters for this view (profile).
      "type": "A String", # View (Profile) type. Supported types: WEB or APP.
      "updated": "A String", # Time this view (profile) was last modified.
      "excludeQueryParameters": "A String", # The query parameters that are excluded from this view (profile).
      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
      "childLink": { # Child link for this view (profile). Points to the list of goals for this view (profile).
        "href": "A String", # Link to the list of goals for this view (profile).
        "type": "analytics#goals", # Value is "analytics#goals".
      },
      "enhancedECommerceTracking": 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.
      "parentLink": { # Parent link for this view (profile). Points to the web property to which this view (profile) belongs.
        "href": "A String", # Link to the web property to which this view (profile) belongs.
        "type": "analytics#webproperty", # Value is "analytics#webproperty".
      },
      "permissions": { # Permissions the user has for this view (profile).
        "effective": [ # 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.
          "A String",
        ],
      },
      "defaultPage": "A String", # Default page for this view (profile).
      "kind": "analytics#profile", # Resource type for Analytics view (profile).
      "stripSiteSearchQueryParameters": True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      "name": "A String", # Name of this view (profile).
      "created": "A String", # Time this view (profile) was created.
      "siteSearchQueryParameters": "A String", # The site search query parameters for this view (profile).
      "websiteUrl": "A String", # Website URL for this view (profile).
      "starred": True or False, # Indicates whether this view (profile) is starred or not.
      "selfLink": "A String", # Link for this view (profile).
    }</pre>
</div>

</body></html>