<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.provisioning.html">provisioning</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="#createAccountTicket">createAccountTicket(body=None)</a></code></p>
<p class="firstline">Creates an account ticket.</p>
<p class="toc_element">
  <code><a href="#createAccountTree">createAccountTree(body=None)</a></code></p>
<p class="firstline">Provision account.</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="createAccountTicket">createAccountTicket(body=None)</code>
  <pre>Creates an account ticket.

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

{ # JSON template for an Analytics account ticket. The account ticket consists of the ticket ID and the basic information for the account, property and profile.
    &quot;account&quot;: { # JSON template for Analytics account entry. # Account for this ticket.
      &quot;permissions&quot;: { # Permissions the user has for this account.
        &quot;effective&quot;: [ # All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).
          &quot;A String&quot;,
        ],
      },
      &quot;starred&quot;: True or False, # Indicates whether this account is starred or not.
      &quot;name&quot;: &quot;A String&quot;, # Account name.
      &quot;childLink&quot;: { # Child link for an account entry. Points to the list of web properties for this account.
        &quot;type&quot;: &quot;analytics#webproperties&quot;, # Type of the child link. Its value is &quot;analytics#webproperties&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the list of web properties for this account.
      },
      &quot;updated&quot;: &quot;A String&quot;, # Time the account was last modified.
      &quot;created&quot;: &quot;A String&quot;, # Time the account was created.
      &quot;kind&quot;: &quot;analytics#account&quot;, # Resource type for Analytics account.
      &quot;id&quot;: &quot;A String&quot;, # Account ID.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this account.
    },
    &quot;redirectUri&quot;: &quot;A String&quot;, # Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in APIs console as a callback URL.
    &quot;webproperty&quot;: { # JSON template for an Analytics web property. # Web property for the account.
        &quot;selfLink&quot;: &quot;A String&quot;, # Link for this web property.
        &quot;name&quot;: &quot;A String&quot;, # Name of this web property.
        &quot;id&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY.
        &quot;parentLink&quot;: { # Parent link for this web property. Points to the account to which this web property belongs.
          &quot;type&quot;: &quot;analytics#account&quot;, # Type of the parent link. Its value is &quot;analytics#account&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the account for this web property.
        },
        &quot;dataRetentionResetOnNewActivity&quot;: True or False, # Set to true to reset the retention period of the user identifier with each new event from that user (thus setting the expiration date to current time plus retention period).
            # Set to false to delete data associated with the user identifier automatically after the rentention period.
            # This property cannot be set on insert.
        &quot;level&quot;: &quot;A String&quot;, # Level for this web property. Possible values are STANDARD or PREMIUM.
        &quot;childLink&quot;: { # Child link for this web property. Points to the list of views (profiles) for this web property.
          &quot;type&quot;: &quot;analytics#profiles&quot;, # Type of the parent link. Its value is &quot;analytics#profiles&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the list of views (profiles) for this web property.
        },
        &quot;starred&quot;: True or False, # Indicates whether this web property is starred or not.
        &quot;dataRetentionTtl&quot;: &quot;A String&quot;, # The length of time for which user and event data is retained.
            # This property cannot be set on insert.
        &quot;kind&quot;: &quot;analytics#webproperty&quot;, # Resource type for Analytics WebProperty.
        &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for this web property.
        &quot;created&quot;: &quot;A String&quot;, # Time this web property was created.
        &quot;permissions&quot;: { # Permissions the user has for this web property.
          &quot;effective&quot;: [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
            &quot;A String&quot;,
          ],
        },
        &quot;industryVertical&quot;: &quot;A String&quot;, # The industry vertical/category selected for this web property.
        &quot;updated&quot;: &quot;A String&quot;, # Time this web property was last modified.
        &quot;websiteUrl&quot;: &quot;A String&quot;, # Website url for this web property.
        &quot;defaultProfileId&quot;: &quot;A String&quot;, # Default view (profile) ID.
        &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this web property belongs.
        &quot;profileCount&quot;: 42, # View (Profile) count for this web property.
      },
    &quot;id&quot;: &quot;A String&quot;, # Account ticket ID used to access the account ticket.
    &quot;profile&quot;: { # JSON template for an Analytics view (profile). # View (Profile) for the account.
      &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
      &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
      &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
      &quot;defaultPage&quot;: &quot;A String&quot;, # Default page 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;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
      &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
      &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
      &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
      &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
      &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;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;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
      &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;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;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;id&quot;: &quot;A String&quot;, # View (Profile) ID.
      &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.
      },
      &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
      &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
      &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
      &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
    },
    &quot;kind&quot;: &quot;analytics#accountTicket&quot;, # Resource type for account ticket.
  }


Returns:
  An object of the form:

    { # JSON template for an Analytics account ticket. The account ticket consists of the ticket ID and the basic information for the account, property and profile.
      &quot;account&quot;: { # JSON template for Analytics account entry. # Account for this ticket.
        &quot;permissions&quot;: { # Permissions the user has for this account.
          &quot;effective&quot;: [ # All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).
            &quot;A String&quot;,
          ],
        },
        &quot;starred&quot;: True or False, # Indicates whether this account is starred or not.
        &quot;name&quot;: &quot;A String&quot;, # Account name.
        &quot;childLink&quot;: { # Child link for an account entry. Points to the list of web properties for this account.
          &quot;type&quot;: &quot;analytics#webproperties&quot;, # Type of the child link. Its value is &quot;analytics#webproperties&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the list of web properties for this account.
        },
        &quot;updated&quot;: &quot;A String&quot;, # Time the account was last modified.
        &quot;created&quot;: &quot;A String&quot;, # Time the account was created.
        &quot;kind&quot;: &quot;analytics#account&quot;, # Resource type for Analytics account.
        &quot;id&quot;: &quot;A String&quot;, # Account ID.
        &quot;selfLink&quot;: &quot;A String&quot;, # Link for this account.
      },
      &quot;redirectUri&quot;: &quot;A String&quot;, # Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in APIs console as a callback URL.
      &quot;webproperty&quot;: { # JSON template for an Analytics web property. # Web property for the account.
          &quot;selfLink&quot;: &quot;A String&quot;, # Link for this web property.
          &quot;name&quot;: &quot;A String&quot;, # Name of this web property.
          &quot;id&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY.
          &quot;parentLink&quot;: { # Parent link for this web property. Points to the account to which this web property belongs.
            &quot;type&quot;: &quot;analytics#account&quot;, # Type of the parent link. Its value is &quot;analytics#account&quot;.
            &quot;href&quot;: &quot;A String&quot;, # Link to the account for this web property.
          },
          &quot;dataRetentionResetOnNewActivity&quot;: True or False, # Set to true to reset the retention period of the user identifier with each new event from that user (thus setting the expiration date to current time plus retention period).
              # Set to false to delete data associated with the user identifier automatically after the rentention period.
              # This property cannot be set on insert.
          &quot;level&quot;: &quot;A String&quot;, # Level for this web property. Possible values are STANDARD or PREMIUM.
          &quot;childLink&quot;: { # Child link for this web property. Points to the list of views (profiles) for this web property.
            &quot;type&quot;: &quot;analytics#profiles&quot;, # Type of the parent link. Its value is &quot;analytics#profiles&quot;.
            &quot;href&quot;: &quot;A String&quot;, # Link to the list of views (profiles) for this web property.
          },
          &quot;starred&quot;: True or False, # Indicates whether this web property is starred or not.
          &quot;dataRetentionTtl&quot;: &quot;A String&quot;, # The length of time for which user and event data is retained.
              # This property cannot be set on insert.
          &quot;kind&quot;: &quot;analytics#webproperty&quot;, # Resource type for Analytics WebProperty.
          &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for this web property.
          &quot;created&quot;: &quot;A String&quot;, # Time this web property was created.
          &quot;permissions&quot;: { # Permissions the user has for this web property.
            &quot;effective&quot;: [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
              &quot;A String&quot;,
            ],
          },
          &quot;industryVertical&quot;: &quot;A String&quot;, # The industry vertical/category selected for this web property.
          &quot;updated&quot;: &quot;A String&quot;, # Time this web property was last modified.
          &quot;websiteUrl&quot;: &quot;A String&quot;, # Website url for this web property.
          &quot;defaultProfileId&quot;: &quot;A String&quot;, # Default view (profile) ID.
          &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this web property belongs.
          &quot;profileCount&quot;: 42, # View (Profile) count for this web property.
        },
      &quot;id&quot;: &quot;A String&quot;, # Account ticket ID used to access the account ticket.
      &quot;profile&quot;: { # JSON template for an Analytics view (profile). # View (Profile) for the account.
        &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
        &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
        &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
        &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
        &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
        &quot;defaultPage&quot;: &quot;A String&quot;, # Default page 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;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
        &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
        &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
        &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
        &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
        &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
        &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
        &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;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;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
        &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;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;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;id&quot;: &quot;A String&quot;, # View (Profile) ID.
        &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.
        },
        &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
        &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
        &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
        &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
      },
      &quot;kind&quot;: &quot;analytics#accountTicket&quot;, # Resource type for account ticket.
    }</pre>
</div>

<div class="method">
    <code class="details" id="createAccountTree">createAccountTree(body=None)</code>
  <pre>Provision account.

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

{ # JSON template for an Analytics account tree requests. The account tree request is used in the provisioning api to create an account, property, and view (profile). It contains the basic information required to make these fields.
    &quot;kind&quot;: &quot;analytics#accountTreeRequest&quot;, # Resource type for account ticket.
    &quot;accountName&quot;: &quot;A String&quot;,
    &quot;profileName&quot;: &quot;A String&quot;,
    &quot;websiteUrl&quot;: &quot;A String&quot;,
    &quot;timezone&quot;: &quot;A String&quot;,
    &quot;webpropertyName&quot;: &quot;A String&quot;,
  }


Returns:
  An object of the form:

    { # JSON template for an Analytics account tree response. The account tree response is used in the provisioning api to return the result of creating an account, property, and view (profile).
    &quot;account&quot;: { # JSON template for Analytics account entry. # The account created.
      &quot;permissions&quot;: { # Permissions the user has for this account.
        &quot;effective&quot;: [ # All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).
          &quot;A String&quot;,
        ],
      },
      &quot;starred&quot;: True or False, # Indicates whether this account is starred or not.
      &quot;name&quot;: &quot;A String&quot;, # Account name.
      &quot;childLink&quot;: { # Child link for an account entry. Points to the list of web properties for this account.
        &quot;type&quot;: &quot;analytics#webproperties&quot;, # Type of the child link. Its value is &quot;analytics#webproperties&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the list of web properties for this account.
      },
      &quot;updated&quot;: &quot;A String&quot;, # Time the account was last modified.
      &quot;created&quot;: &quot;A String&quot;, # Time the account was created.
      &quot;kind&quot;: &quot;analytics#account&quot;, # Resource type for Analytics account.
      &quot;id&quot;: &quot;A String&quot;, # Account ID.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this account.
    },
    &quot;webproperty&quot;: { # JSON template for an Analytics web property. # Web property for the account.
        &quot;selfLink&quot;: &quot;A String&quot;, # Link for this web property.
        &quot;name&quot;: &quot;A String&quot;, # Name of this web property.
        &quot;id&quot;: &quot;A String&quot;, # Web property ID of the form UA-XXXXX-YY.
        &quot;parentLink&quot;: { # Parent link for this web property. Points to the account to which this web property belongs.
          &quot;type&quot;: &quot;analytics#account&quot;, # Type of the parent link. Its value is &quot;analytics#account&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the account for this web property.
        },
        &quot;dataRetentionResetOnNewActivity&quot;: True or False, # Set to true to reset the retention period of the user identifier with each new event from that user (thus setting the expiration date to current time plus retention period).
            # Set to false to delete data associated with the user identifier automatically after the rentention period.
            # This property cannot be set on insert.
        &quot;level&quot;: &quot;A String&quot;, # Level for this web property. Possible values are STANDARD or PREMIUM.
        &quot;childLink&quot;: { # Child link for this web property. Points to the list of views (profiles) for this web property.
          &quot;type&quot;: &quot;analytics#profiles&quot;, # Type of the parent link. Its value is &quot;analytics#profiles&quot;.
          &quot;href&quot;: &quot;A String&quot;, # Link to the list of views (profiles) for this web property.
        },
        &quot;starred&quot;: True or False, # Indicates whether this web property is starred or not.
        &quot;dataRetentionTtl&quot;: &quot;A String&quot;, # The length of time for which user and event data is retained.
            # This property cannot be set on insert.
        &quot;kind&quot;: &quot;analytics#webproperty&quot;, # Resource type for Analytics WebProperty.
        &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for this web property.
        &quot;created&quot;: &quot;A String&quot;, # Time this web property was created.
        &quot;permissions&quot;: { # Permissions the user has for this web property.
          &quot;effective&quot;: [ # All the permissions that the user has for this web property. These include any implied permissions (e.g., EDIT implies VIEW) or inherited permissions from the parent account.
            &quot;A String&quot;,
          ],
        },
        &quot;industryVertical&quot;: &quot;A String&quot;, # The industry vertical/category selected for this web property.
        &quot;updated&quot;: &quot;A String&quot;, # Time this web property was last modified.
        &quot;websiteUrl&quot;: &quot;A String&quot;, # Website url for this web property.
        &quot;defaultProfileId&quot;: &quot;A String&quot;, # Default view (profile) ID.
        &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this web property belongs.
        &quot;profileCount&quot;: 42, # View (Profile) count for this web property.
      },
    &quot;profile&quot;: { # JSON template for an Analytics view (profile). # View (Profile) for the account.
      &quot;websiteUrl&quot;: &quot;A String&quot;, # Website URL for this view (profile).
      &quot;type&quot;: &quot;A String&quot;, # View (Profile) type. Supported types: WEB or APP.
      &quot;eCommerceTracking&quot;: True or False, # Indicates whether ecommerce tracking is enabled for this view (profile).
      &quot;stripSiteSearchCategoryParameters&quot;: True or False, # Whether or not Analytics will strip search category parameters from the URLs in your reports.
      &quot;excludeQueryParameters&quot;: &quot;A String&quot;, # The query parameters that are excluded from this view (profile).
      &quot;defaultPage&quot;: &quot;A String&quot;, # Default page 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;siteSearchCategoryParameters&quot;: &quot;A String&quot;, # Site search category parameters for this view (profile).
      &quot;starred&quot;: True or False, # Indicates whether this view (profile) is starred or not.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID to which this view (profile) belongs.
      &quot;created&quot;: &quot;A String&quot;, # Time this view (profile) was created.
      &quot;updated&quot;: &quot;A String&quot;, # Time this view (profile) was last modified.
      &quot;stripSiteSearchQueryParameters&quot;: True or False, # Whether or not Analytics will strip search query parameters from the URLs in your reports.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for this view (profile).
      &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;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;kind&quot;: &quot;analytics#profile&quot;, # Resource type for Analytics view (profile).
      &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;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;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;id&quot;: &quot;A String&quot;, # View (Profile) ID.
      &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.
      },
      &quot;name&quot;: &quot;A String&quot;, # Name of this view (profile).
      &quot;siteSearchQueryParameters&quot;: &quot;A String&quot;, # The site search query parameters for this view (profile).
      &quot;botFilteringEnabled&quot;: True or False, # Indicates whether bot filtering is enabled for this view (profile).
      &quot;internalWebPropertyId&quot;: &quot;A String&quot;, # Internal ID for the web property to which this view (profile) belongs.
    },
    &quot;kind&quot;: &quot;analytics#accountTreeResponse&quot;, # Resource type for account ticket.
  }</pre>
</div>

</body></html>