<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="#createAccountTicket">createAccountTicket(body)</a></code></p>
<p class="firstline">Creates an account ticket.</p>
<p class="toc_element">
  <code><a href="#createAccountTree">createAccountTree(body)</a></code></p>
<p class="firstline">Provision account.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="createAccountTicket">createAccountTicket(body)</code>
  <pre>Creates an account ticket.

Args:
  body: object, The request body. (required)
    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.
    "profile": { # JSON template for an Analytics view (profile). # View (Profile) for the account.
        "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).
      },
    "account": { # JSON template for Analytics account entry. # Account for this ticket.
      "kind": "analytics#account", # Resource type for Analytics account.
      "name": "A String", # Account name.
      "created": "A String", # Time the account was created.
      "updated": "A String", # Time the account was last modified.
      "childLink": { # Child link for an account entry. Points to the list of web properties for this account.
        "href": "A String", # Link to the list of web properties for this account.
        "type": "analytics#webproperties", # Type of the child link. Its value is "analytics#webproperties".
      },
      "starred": True or False, # Indicates whether this account is starred or not.
      "id": "A String", # Account ID.
      "selfLink": "A String", # Link for this account.
      "permissions": { # Permissions the user has for this account.
        "effective": [ # All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).
          "A String",
        ],
      },
    },
    "webproperty": { # JSON template for an Analytics web property. # Web property for the account.
        "websiteUrl": "A String", # Website url for this web property.
        "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
        "name": "A String", # Name of this web property.
        "dataRetentionTtl": "A String", # The length of time for which user and event data is retained.
            # This property cannot be set on insert.
        "created": "A String", # Time this web property was created.
        "defaultProfileId": "A String", # Default view (profile) ID.
        "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
        "updated": "A String", # Time this web property was last modified.
        "profileCount": 42, # View (Profile) count for this web property.
        "internalWebPropertyId": "A String", # Internal ID for this web property.
        "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
          "href": "A String", # Link to the list of views (profiles) for this web property.
          "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
        },
        "industryVertical": "A String", # The industry vertical/category selected for this web property.
        "dataRetentionResetOnNewActivity": 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.
        "starred": True or False, # Indicates whether this web property is starred or not.
        "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
          "href": "A String", # Link to the account for this web property.
          "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
        },
        "permissions": { # Permissions the user has for this web property.
          "effective": [ # 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.
            "A String",
          ],
        },
        "id": "A String", # Web property ID of the form UA-XXXXX-YY.
        "selfLink": "A String", # Link for this web property.
        "accountId": "A String", # Account ID to which this web property belongs.
      },
    "kind": "analytics#accountTicket", # Resource type for account ticket.
    "redirectUri": "A String", # Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in APIs console as a callback URL.
    "id": "A String", # Account ticket ID used to access the 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.
      "profile": { # JSON template for an Analytics view (profile). # View (Profile) for the account.
          "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).
        },
      "account": { # JSON template for Analytics account entry. # Account for this ticket.
        "kind": "analytics#account", # Resource type for Analytics account.
        "name": "A String", # Account name.
        "created": "A String", # Time the account was created.
        "updated": "A String", # Time the account was last modified.
        "childLink": { # Child link for an account entry. Points to the list of web properties for this account.
          "href": "A String", # Link to the list of web properties for this account.
          "type": "analytics#webproperties", # Type of the child link. Its value is "analytics#webproperties".
        },
        "starred": True or False, # Indicates whether this account is starred or not.
        "id": "A String", # Account ID.
        "selfLink": "A String", # Link for this account.
        "permissions": { # Permissions the user has for this account.
          "effective": [ # All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).
            "A String",
          ],
        },
      },
      "webproperty": { # JSON template for an Analytics web property. # Web property for the account.
          "websiteUrl": "A String", # Website url for this web property.
          "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
          "name": "A String", # Name of this web property.
          "dataRetentionTtl": "A String", # The length of time for which user and event data is retained.
              # This property cannot be set on insert.
          "created": "A String", # Time this web property was created.
          "defaultProfileId": "A String", # Default view (profile) ID.
          "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
          "updated": "A String", # Time this web property was last modified.
          "profileCount": 42, # View (Profile) count for this web property.
          "internalWebPropertyId": "A String", # Internal ID for this web property.
          "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
            "href": "A String", # Link to the list of views (profiles) for this web property.
            "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
          },
          "industryVertical": "A String", # The industry vertical/category selected for this web property.
          "dataRetentionResetOnNewActivity": 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.
          "starred": True or False, # Indicates whether this web property is starred or not.
          "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
            "href": "A String", # Link to the account for this web property.
            "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
          },
          "permissions": { # Permissions the user has for this web property.
            "effective": [ # 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.
              "A String",
            ],
          },
          "id": "A String", # Web property ID of the form UA-XXXXX-YY.
          "selfLink": "A String", # Link for this web property.
          "accountId": "A String", # Account ID to which this web property belongs.
        },
      "kind": "analytics#accountTicket", # Resource type for account ticket.
      "redirectUri": "A String", # Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in APIs console as a callback URL.
      "id": "A String", # Account ticket ID used to access the account ticket.
    }</pre>
</div>

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

Args:
  body: object, The request body. (required)
    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.
    "kind": "analytics#accountTreeRequest", # Resource type for account ticket.
    "webpropertyName": "A String",
    "accountName": "A String",
    "websiteUrl": "A String",
    "profileName": "A String",
    "timezone": "A String",
  }


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).
    "profile": { # JSON template for an Analytics view (profile). # View (Profile) for the account.
        "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).
      },
    "account": { # JSON template for Analytics account entry. # The account created.
      "kind": "analytics#account", # Resource type for Analytics account.
      "name": "A String", # Account name.
      "created": "A String", # Time the account was created.
      "updated": "A String", # Time the account was last modified.
      "childLink": { # Child link for an account entry. Points to the list of web properties for this account.
        "href": "A String", # Link to the list of web properties for this account.
        "type": "analytics#webproperties", # Type of the child link. Its value is "analytics#webproperties".
      },
      "starred": True or False, # Indicates whether this account is starred or not.
      "id": "A String", # Account ID.
      "selfLink": "A String", # Link for this account.
      "permissions": { # Permissions the user has for this account.
        "effective": [ # All the permissions that the user has for this account. These include any implied permissions (e.g., EDIT implies VIEW).
          "A String",
        ],
      },
    },
    "webproperty": { # JSON template for an Analytics web property. # Web property for the account.
        "websiteUrl": "A String", # Website url for this web property.
        "kind": "analytics#webproperty", # Resource type for Analytics WebProperty.
        "name": "A String", # Name of this web property.
        "dataRetentionTtl": "A String", # The length of time for which user and event data is retained.
            # This property cannot be set on insert.
        "created": "A String", # Time this web property was created.
        "defaultProfileId": "A String", # Default view (profile) ID.
        "level": "A String", # Level for this web property. Possible values are STANDARD or PREMIUM.
        "updated": "A String", # Time this web property was last modified.
        "profileCount": 42, # View (Profile) count for this web property.
        "internalWebPropertyId": "A String", # Internal ID for this web property.
        "childLink": { # Child link for this web property. Points to the list of views (profiles) for this web property.
          "href": "A String", # Link to the list of views (profiles) for this web property.
          "type": "analytics#profiles", # Type of the parent link. Its value is "analytics#profiles".
        },
        "industryVertical": "A String", # The industry vertical/category selected for this web property.
        "dataRetentionResetOnNewActivity": 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.
        "starred": True or False, # Indicates whether this web property is starred or not.
        "parentLink": { # Parent link for this web property. Points to the account to which this web property belongs.
          "href": "A String", # Link to the account for this web property.
          "type": "analytics#account", # Type of the parent link. Its value is "analytics#account".
        },
        "permissions": { # Permissions the user has for this web property.
          "effective": [ # 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.
            "A String",
          ],
        },
        "id": "A String", # Web property ID of the form UA-XXXXX-YY.
        "selfLink": "A String", # Link for this web property.
        "accountId": "A String", # Account ID to which this web property belongs.
      },
    "kind": "analytics#accountTreeResponse", # Resource type for account ticket.
  }</pre>
</div>

</body></html>