<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.data.html">data</a> . <a href="analytics_v3.data.ga.html">ga</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(ids, start_date, end_date, metrics, max_results=None, filters=None, dimensions=None, include_empty_rows=None, sort=None, samplingLevel=None, segment=None, start_index=None, output=None)</a></code></p>
<p class="firstline">Returns Analytics data for a view (profile).</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(ids, start_date, end_date, metrics, max_results=None, filters=None, dimensions=None, include_empty_rows=None, sort=None, samplingLevel=None, segment=None, start_index=None, output=None)</code>
  <pre>Returns Analytics data for a view (profile).

Args:
  ids: string, Unique table ID for retrieving Analytics data. Table ID is of the form ga:XXXX, where XXXX is the Analytics view (profile) ID. (required)
  start_date: string, Start date for fetching Analytics data. Requests can specify a start date formatted as YYYY-MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is 7daysAgo. (required)
  end_date: string, End date for fetching Analytics data. Request can should specify an end date formatted as YYYY-MM-DD, or as a relative date (e.g., today, yesterday, or 7daysAgo). The default value is yesterday. (required)
  metrics: string, A comma-separated list of Analytics metrics. E.g., 'ga:sessions,ga:pageviews'. At least one metric must be specified. (required)
  max_results: integer, The maximum number of entries to include in this feed.
  filters: string, A comma-separated list of dimension or metric filters to be applied to Analytics data.
  dimensions: string, A comma-separated list of Analytics dimensions. E.g., 'ga:browser,ga:city'.
  include_empty_rows: boolean, The response will include empty rows if this parameter is set to true, the default is true
  sort: string, A comma-separated list of dimensions or metrics that determine the sort order for Analytics data.
  samplingLevel: string, The desired sampling level.
    Allowed values
      DEFAULT - Returns response with a sample size that balances speed and accuracy.
      FASTER - Returns a fast response with a smaller sample size.
      HIGHER_PRECISION - Returns a more accurate response using a large sample size, but this may result in the response being slower.
  segment: string, An Analytics segment to be applied to data.
  start_index: integer, An index of the first entity to retrieve. Use this parameter as a pagination mechanism along with the max-results parameter.
  output: string, The selected format for the response. Default format is JSON.
    Allowed values
      dataTable - Returns the response in Google Charts Data Table format. This is useful in creating visualization using Google Charts.
      json - Returns the response in standard JSON format.

Returns:
  An object of the form:

    { # Analytics data for a given view (profile).
    "kind": "analytics#gaData", # Resource type.
    "rows": [ # Analytics data rows, where each row contains a list of dimension values followed by the metric values. The order of dimensions and metrics is same as specified in the request.
      [
        "A String",
      ],
    ],
    "containsSampledData": True or False, # Determines if Analytics data contains samples.
    "columnHeaders": [ # Column headers that list dimension names followed by the metric names. The order of dimensions and metrics is same as specified in the request.
      {
        "dataType": "A String", # Data type. Dimension column headers have only STRING as the data type. Metric column headers have data types for metric values such as INTEGER, DOUBLE, CURRENCY etc.
        "columnType": "A String", # Column Type. Either DIMENSION or METRIC.
        "name": "A String", # Column name.
      },
    ],
    "totalsForAllResults": { # Total values for the requested metrics over all the results, not just the results returned in this response. The order of the metric totals is same as the metric order specified in the request.
      "a_key": "A String", # Key-value pair for the total value of a metric. Key is the metric name and the value is the total value for that metric.
    },
    "itemsPerPage": 42, # The maximum number of rows the response can contain, regardless of the actual number of rows returned. Its value ranges from 1 to 10,000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.
    "profileInfo": { # Information for the view (profile), for which the Analytics data was requested.
      "webPropertyId": "A String", # Web Property ID to which this view (profile) belongs.
      "internalWebPropertyId": "A String", # Internal ID for the web property to which this view (profile) belongs.
      "tableId": "A String", # Table ID for view (profile).
      "profileId": "A String", # View (Profile) ID.
      "profileName": "A String", # View (Profile) name.
      "accountId": "A String", # Account ID to which this view (profile) belongs.
    },
    "dataTable": {
      "rows": [
        {
          "c": [
            {
              "v": "A String",
            },
          ],
        },
      ],
      "cols": [
        {
          "type": "A String",
          "id": "A String",
          "label": "A String",
        },
      ],
    },
    "sampleSize": "A String", # The number of samples used to calculate the result.
    "dataLastRefreshed": "A String", # The last refreshed time in seconds for Analytics data.
    "query": { # Analytics data request query parameters.
      "sort": [ # List of dimensions or metrics based on which Analytics data is sorted.
        "A String",
      ],
      "max-results": 42, # Maximum results per page.
      "dimensions": "A String", # List of analytics dimensions.
      "start-date": "A String", # Start date.
      "start-index": 42, # Start index.
      "end-date": "A String", # End date.
      "ids": "A String", # Unique table ID.
      "metrics": [ # List of analytics metrics.
        "A String",
      ],
      "samplingLevel": "A String", # Desired sampling level
      "filters": "A String", # Comma-separated list of dimension or metric filters.
      "segment": "A String", # Analytics advanced segment.
    },
    "previousLink": "A String", # Link to previous page for this Analytics data query.
    "nextLink": "A String", # Link to next page for this Analytics data query.
    "totalResults": 42, # The total number of rows for the query, regardless of the number of rows in the response.
    "id": "A String", # Unique ID for this data response.
    "selfLink": "A String", # Link to this page.
    "sampleSpace": "A String", # Total size of the sample space from which the samples were selected.
  }</pre>
</div>

</body></html>