<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.customDimensions.html">customDimensions</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(accountId, webPropertyId, customDimensionId)</a></code></p>
<p class="firstline">Get a custom dimension 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 custom dimension.</p>
<p class="toc_element">
  <code><a href="#list">list(accountId, webPropertyId, start_index=None, max_results=None)</a></code></p>
<p class="firstline">Lists custom dimensions to which the user has access.</p>
<p class="toc_element">
  <code><a href="#patch">patch(accountId, webPropertyId, customDimensionId, body=None, ignoreCustomDataSourceLinks=None)</a></code></p>
<p class="firstline">Updates an existing custom dimension. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#update">update(accountId, webPropertyId, customDimensionId, body=None, ignoreCustomDataSourceLinks=None)</a></code></p>
<p class="firstline">Updates an existing custom dimension.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(accountId, webPropertyId, customDimensionId)</code>
  <pre>Get a custom dimension to which the user has access.

Args:
  accountId: string, Account ID for the custom dimension to retrieve. (required)
  webPropertyId: string, Web property ID for the custom dimension to retrieve. (required)
  customDimensionId: string, The ID of the custom dimension to retrieve. (required)

Returns:
  An object of the form:

    { # JSON template for Analytics Custom Dimension.
      &quot;name&quot;: &quot;A String&quot;, # Name of the custom dimension.
      &quot;scope&quot;: &quot;A String&quot;, # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
      &quot;kind&quot;: &quot;analytics#customDimension&quot;, # Kind value for a custom dimension. Set to &quot;analytics#customDimension&quot;. It is a read-only field.
      &quot;webPropertyId&quot;: &quot;A String&quot;, # Property ID.
      &quot;created&quot;: &quot;A String&quot;, # Time the custom dimension was created.
      &quot;updated&quot;: &quot;A String&quot;, # Time the custom dimension was last modified.
      &quot;active&quot;: True or False, # Boolean indicating whether the custom dimension is active.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for the custom dimension
      &quot;id&quot;: &quot;A String&quot;, # Custom dimension ID.
      &quot;index&quot;: 42, # Index of the custom dimension.
      &quot;parentLink&quot;: { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
        &quot;type&quot;: &quot;analytics#webproperty&quot;, # Type of the parent link. Set to &quot;analytics#webproperty&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the property to which the custom dimension belongs.
      },
    }</pre>
</div>

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

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

{ # JSON template for Analytics Custom Dimension.
    &quot;name&quot;: &quot;A String&quot;, # Name of the custom dimension.
    &quot;scope&quot;: &quot;A String&quot;, # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
    &quot;kind&quot;: &quot;analytics#customDimension&quot;, # Kind value for a custom dimension. Set to &quot;analytics#customDimension&quot;. It is a read-only field.
    &quot;webPropertyId&quot;: &quot;A String&quot;, # Property ID.
    &quot;created&quot;: &quot;A String&quot;, # Time the custom dimension was created.
    &quot;updated&quot;: &quot;A String&quot;, # Time the custom dimension was last modified.
    &quot;active&quot;: True or False, # Boolean indicating whether the custom dimension is active.
    &quot;accountId&quot;: &quot;A String&quot;, # Account ID.
    &quot;selfLink&quot;: &quot;A String&quot;, # Link for the custom dimension
    &quot;id&quot;: &quot;A String&quot;, # Custom dimension ID.
    &quot;index&quot;: 42, # Index of the custom dimension.
    &quot;parentLink&quot;: { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
      &quot;type&quot;: &quot;analytics#webproperty&quot;, # Type of the parent link. Set to &quot;analytics#webproperty&quot;.
      &quot;href&quot;: &quot;A String&quot;, # Link to the property to which the custom dimension belongs.
    },
  }


Returns:
  An object of the form:

    { # JSON template for Analytics Custom Dimension.
      &quot;name&quot;: &quot;A String&quot;, # Name of the custom dimension.
      &quot;scope&quot;: &quot;A String&quot;, # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
      &quot;kind&quot;: &quot;analytics#customDimension&quot;, # Kind value for a custom dimension. Set to &quot;analytics#customDimension&quot;. It is a read-only field.
      &quot;webPropertyId&quot;: &quot;A String&quot;, # Property ID.
      &quot;created&quot;: &quot;A String&quot;, # Time the custom dimension was created.
      &quot;updated&quot;: &quot;A String&quot;, # Time the custom dimension was last modified.
      &quot;active&quot;: True or False, # Boolean indicating whether the custom dimension is active.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for the custom dimension
      &quot;id&quot;: &quot;A String&quot;, # Custom dimension ID.
      &quot;index&quot;: 42, # Index of the custom dimension.
      &quot;parentLink&quot;: { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
        &quot;type&quot;: &quot;analytics#webproperty&quot;, # Type of the parent link. Set to &quot;analytics#webproperty&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the property to which the custom dimension belongs.
      },
    }</pre>
</div>

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

Args:
  accountId: string, Account ID for the custom dimensions to retrieve. (required)
  webPropertyId: string, Web property ID for the custom dimensions to retrieve. (required)
  start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
  max_results: integer, The maximum number of custom dimensions to include in this response.

Returns:
  An object of the form:

    { # A custom dimension collection lists Analytics custom dimensions to which the user has access. Each resource in the collection corresponds to a single Analytics custom dimension.
    &quot;kind&quot;: &quot;analytics#customDimensions&quot;, # Collection type.
    &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;startIndex&quot;: 42, # The starting index of the resources, which is 1 by default or otherwise specified by the start-index query parameter.
    &quot;items&quot;: [ # Collection of custom dimensions.
      { # JSON template for Analytics Custom Dimension.
          &quot;name&quot;: &quot;A String&quot;, # Name of the custom dimension.
          &quot;scope&quot;: &quot;A String&quot;, # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
          &quot;kind&quot;: &quot;analytics#customDimension&quot;, # Kind value for a custom dimension. Set to &quot;analytics#customDimension&quot;. It is a read-only field.
          &quot;webPropertyId&quot;: &quot;A String&quot;, # Property ID.
          &quot;created&quot;: &quot;A String&quot;, # Time the custom dimension was created.
          &quot;updated&quot;: &quot;A String&quot;, # Time the custom dimension was last modified.
          &quot;active&quot;: True or False, # Boolean indicating whether the custom dimension is active.
          &quot;accountId&quot;: &quot;A String&quot;, # Account ID.
          &quot;selfLink&quot;: &quot;A String&quot;, # Link for the custom dimension
          &quot;id&quot;: &quot;A String&quot;, # Custom dimension ID.
          &quot;index&quot;: 42, # Index of the custom dimension.
          &quot;parentLink&quot;: { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
            &quot;type&quot;: &quot;analytics#webproperty&quot;, # Type of the parent link. Set to &quot;analytics#webproperty&quot;.
            &quot;href&quot;: &quot;A String&quot;, # Link to the property to which the custom dimension belongs.
          },
        },
    ],
    &quot;username&quot;: &quot;A String&quot;, # Email ID of the authenticated user
    &quot;nextLink&quot;: &quot;A String&quot;, # Link to next page for this custom dimension collection.
    &quot;totalResults&quot;: 42, # The total number of results for the query, regardless of the number of results in the response.
    &quot;previousLink&quot;: &quot;A String&quot;, # Link to previous page for this custom dimension collection.
  }</pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(accountId, webPropertyId, customDimensionId, body=None, ignoreCustomDataSourceLinks=None)</code>
  <pre>Updates an existing custom dimension. This method supports patch semantics.

Args:
  accountId: string, Account ID for the custom dimension to update. (required)
  webPropertyId: string, Web property ID for the custom dimension to update. (required)
  customDimensionId: string, Custom dimension ID for the custom dimension to update. (required)
  body: object, The request body.
    The object takes the form of:

{ # JSON template for Analytics Custom Dimension.
    &quot;name&quot;: &quot;A String&quot;, # Name of the custom dimension.
    &quot;scope&quot;: &quot;A String&quot;, # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
    &quot;kind&quot;: &quot;analytics#customDimension&quot;, # Kind value for a custom dimension. Set to &quot;analytics#customDimension&quot;. It is a read-only field.
    &quot;webPropertyId&quot;: &quot;A String&quot;, # Property ID.
    &quot;created&quot;: &quot;A String&quot;, # Time the custom dimension was created.
    &quot;updated&quot;: &quot;A String&quot;, # Time the custom dimension was last modified.
    &quot;active&quot;: True or False, # Boolean indicating whether the custom dimension is active.
    &quot;accountId&quot;: &quot;A String&quot;, # Account ID.
    &quot;selfLink&quot;: &quot;A String&quot;, # Link for the custom dimension
    &quot;id&quot;: &quot;A String&quot;, # Custom dimension ID.
    &quot;index&quot;: 42, # Index of the custom dimension.
    &quot;parentLink&quot;: { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
      &quot;type&quot;: &quot;analytics#webproperty&quot;, # Type of the parent link. Set to &quot;analytics#webproperty&quot;.
      &quot;href&quot;: &quot;A String&quot;, # Link to the property to which the custom dimension belongs.
    },
  }

  ignoreCustomDataSourceLinks: boolean, Force the update and ignore any warnings related to the custom dimension being linked to a custom data source / data set.

Returns:
  An object of the form:

    { # JSON template for Analytics Custom Dimension.
      &quot;name&quot;: &quot;A String&quot;, # Name of the custom dimension.
      &quot;scope&quot;: &quot;A String&quot;, # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
      &quot;kind&quot;: &quot;analytics#customDimension&quot;, # Kind value for a custom dimension. Set to &quot;analytics#customDimension&quot;. It is a read-only field.
      &quot;webPropertyId&quot;: &quot;A String&quot;, # Property ID.
      &quot;created&quot;: &quot;A String&quot;, # Time the custom dimension was created.
      &quot;updated&quot;: &quot;A String&quot;, # Time the custom dimension was last modified.
      &quot;active&quot;: True or False, # Boolean indicating whether the custom dimension is active.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for the custom dimension
      &quot;id&quot;: &quot;A String&quot;, # Custom dimension ID.
      &quot;index&quot;: 42, # Index of the custom dimension.
      &quot;parentLink&quot;: { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
        &quot;type&quot;: &quot;analytics#webproperty&quot;, # Type of the parent link. Set to &quot;analytics#webproperty&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the property to which the custom dimension belongs.
      },
    }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(accountId, webPropertyId, customDimensionId, body=None, ignoreCustomDataSourceLinks=None)</code>
  <pre>Updates an existing custom dimension.

Args:
  accountId: string, Account ID for the custom dimension to update. (required)
  webPropertyId: string, Web property ID for the custom dimension to update. (required)
  customDimensionId: string, Custom dimension ID for the custom dimension to update. (required)
  body: object, The request body.
    The object takes the form of:

{ # JSON template for Analytics Custom Dimension.
    &quot;name&quot;: &quot;A String&quot;, # Name of the custom dimension.
    &quot;scope&quot;: &quot;A String&quot;, # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
    &quot;kind&quot;: &quot;analytics#customDimension&quot;, # Kind value for a custom dimension. Set to &quot;analytics#customDimension&quot;. It is a read-only field.
    &quot;webPropertyId&quot;: &quot;A String&quot;, # Property ID.
    &quot;created&quot;: &quot;A String&quot;, # Time the custom dimension was created.
    &quot;updated&quot;: &quot;A String&quot;, # Time the custom dimension was last modified.
    &quot;active&quot;: True or False, # Boolean indicating whether the custom dimension is active.
    &quot;accountId&quot;: &quot;A String&quot;, # Account ID.
    &quot;selfLink&quot;: &quot;A String&quot;, # Link for the custom dimension
    &quot;id&quot;: &quot;A String&quot;, # Custom dimension ID.
    &quot;index&quot;: 42, # Index of the custom dimension.
    &quot;parentLink&quot;: { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
      &quot;type&quot;: &quot;analytics#webproperty&quot;, # Type of the parent link. Set to &quot;analytics#webproperty&quot;.
      &quot;href&quot;: &quot;A String&quot;, # Link to the property to which the custom dimension belongs.
    },
  }

  ignoreCustomDataSourceLinks: boolean, Force the update and ignore any warnings related to the custom dimension being linked to a custom data source / data set.

Returns:
  An object of the form:

    { # JSON template for Analytics Custom Dimension.
      &quot;name&quot;: &quot;A String&quot;, # Name of the custom dimension.
      &quot;scope&quot;: &quot;A String&quot;, # Scope of the custom dimension: HIT, SESSION, USER or PRODUCT.
      &quot;kind&quot;: &quot;analytics#customDimension&quot;, # Kind value for a custom dimension. Set to &quot;analytics#customDimension&quot;. It is a read-only field.
      &quot;webPropertyId&quot;: &quot;A String&quot;, # Property ID.
      &quot;created&quot;: &quot;A String&quot;, # Time the custom dimension was created.
      &quot;updated&quot;: &quot;A String&quot;, # Time the custom dimension was last modified.
      &quot;active&quot;: True or False, # Boolean indicating whether the custom dimension is active.
      &quot;accountId&quot;: &quot;A String&quot;, # Account ID.
      &quot;selfLink&quot;: &quot;A String&quot;, # Link for the custom dimension
      &quot;id&quot;: &quot;A String&quot;, # Custom dimension ID.
      &quot;index&quot;: 42, # Index of the custom dimension.
      &quot;parentLink&quot;: { # Parent link for the custom dimension. Points to the property to which the custom dimension belongs.
        &quot;type&quot;: &quot;analytics#webproperty&quot;, # Type of the parent link. Set to &quot;analytics#webproperty&quot;.
        &quot;href&quot;: &quot;A String&quot;, # Link to the property to which the custom dimension belongs.
      },
    }</pre>
</div>

</body></html>