Lists all columns for a report type. Try it now or see an example.
Request
HTTP request
GET https://www.googleapis.com/analytics/v3/metadata/reportType/columns
Parameters
| Parameter name | Value | Description |
|---|---|---|
| Required parameters | ||
reportType |
string |
Report type. Allowed Values: ga. Where ga corresponds to the Core Reporting API.
|
Request body
Do not supply a request body with this method.
Response
If successful, this method returns a response body with the following structure:
{
"kind": "analytics#columns",
"etag": etag,
"totalResults": integer,
"attributeNames": [
string
],
"items": [
metadata.columns Resource
]
}
| Property name | Value | Description | Notes |
|---|---|---|---|
kind |
string |
Collection type. | |
etag |
etag |
Etag of collection. This etag can be compared with the last response etag to check if response has changed. | |
totalResults |
integer |
Total number of columns returned in the response. | |
attributeNames[] |
list |
List of attributes names returned by columns. | |
items[] |
list |
List of columns for the report type. |
Examples
Note: The code examples available for this method do not represent all supported programming languages (see the client libraries page for a list of supported languages).
Java
Uses the Java client library
/**
* 1. Execute a Metadata Request
* An application can request columns data by calling the list method on the Analytics service object.
* The method requires an reportType parameter that specifies the column data to retrieve.
* For example, the following code requests columns for the ga report type.
*/
try {
Columns results = getMetadata(analytics);
// Success
} catch (GoogleJsonResponseException e) {
// Catch API specific errors.
handleApiError(e);
} catch (IOException e) {
// Catch general parsing network errors.
e.printStackTrace();
}
/**
* 2. Print out the Columns data
* The components of the result can be printed out as follows:
*/
private static Columns getMetadata(Analytics analytics) throws IOException {
String reportType = "ga";
return analytics.metadata()
.columns()
.list(reportType)
.execute();
}
private static void printMetadataReport(Columns results) {
System.out.println("Metadata Response Report");
printReportInfo(results);
printAttributes(results.getAttributeNames());
printColumns(results.getItems());
}
private static void printReportInfo(Columns results) {
System.out.println("## Metadata Report Info ##");
System.out.println("Kind: " + results.getKind());
System.out.println("Etag: " + results.getEtag());
System.out.println("Total Results: " + results.getTotalResults());
System.out.println();
}
private static void printAttributes(List<String> attributeNames) {
System.out.println("## Attribute Names ##");
for (String attribute : attributeNames) {
System.out.println(attribute);
}
}
private static void printColumns(List<Column> columns) {
System.out.println("## Columns ##");
for (Column column : columns) {
System.out.println();
System.out.println("Column ID: " + column.getId());
System.out.println("Kind: " + column.getKind());
Map<String, String> columnAttributes = column.getAttributes();
for (Map.Entry<String, String> attribute: columnAttributes.entrySet()) {
System.out.println(attribute.getKey() + ": " + attribute.getValue());
}
}
}
PHP
Uses the PHP client library
/**
* 1. Execute a Metadata Request
* An application can request columns data by calling the list method on the Analytics service object.
* The method requires an reportType parameter that specifies the column data to retrieve.
* For example, the following code requests columns for the ga report type.
*/
try {
$results = $analytics->metadata_columns->listMetadataColumns('ga');
// Success
} catch (apiServiceException $e) {
// Handle API service exceptions.
$error = $e->getMessage();
}
/**
* 2. Print out the Columns data
* The components of the result can be printed out as follows:
*/
function printMetadataReport($results) {
print '<h1>Metadata Report</h1>';
printReportInfo($results);
printAttributes($results);
printColumns($results);
}
function printReportInfo(&$results) {
$html = '<h2>Report Info</h2>';
$html .= <<<HTML
<pre>
Kind = {$results->getKind()}
Etag = {$results->getEtag()}
Total Results = {$results->getTotalResults()}
</pre>
HTML;
print $html;
}
function printAttributes(&$results) {
$html = '<h2>Attribute Names</h2><ul>';
$attributes = $results->getAttributeNames();
foreach ($attributes as $attribute) {
$html .= '<li>'. $attribute . '</li>';
}
$html .= '</ul>';
print $html;
}
function printColumns(&$results) {
$columns = $results->getItems();
if (count($columns) > 0) {
$html = '<h2>Columns</h2>';
foreach ($columns as $column) {
$html .= '<h3>' . $column->getId() . '</h3>';
$column_attributes = $column->getAttributes();
foreach ($column_attributes as $name=>$value) {
$html .= <<<HTML
<pre>
{$name}: {$value}
</pre>
HTML;
}
}
} else {
$html = '<p>No Results Found.</p>';
}
print $html;
}
Python
Uses the Python client library
# 1. Execute a Metadata Request
# An application can request columns data by calling the list method on the Analytics service object.
# The method requires an reportType parameter that specifies the column data to retrieve.
# For example, the following code requests columns for the ga report type.
try:
results = service.metadata().columns().list(reportType='ga').execute()
except TypeError, error:
# Handle errors in constructing a query.
print ('There was an error in constructing your query : %s' % error)
except HttpError, error:
# Handle API errors.
print ('Arg, there was an API error : %s : %s' %
(error.resp.status, error._get_reason()))
# 2. Print out the Columns data
# The components of the result can be printed out as follows:
def print_metadata_report(results):
print 'Metadata Response Report'
print_report_info(results)
print_attributes(results.get('attributeNames'))
print_columns(results)
def print_report_info(columns):
print "Metadata Report Info"
if columns:
print 'Kind = %s' % columns.get('kind')
print 'Etag = %s' % columns.get('etag')
print 'Total Results = %s' % columns.get('totalResults')
def print_attributes(attributes):
if attributes:
print 'Attribute Names:'
for attribute in attributes:
print attribute
def print_columns(columns_data):
if columns_data:
print 'Columns:'
columns = columns_data.get('items', [])
for column in columns:
print
print '%15s = %35s' % ('Column ID', column.get('id'))
print '%15s = %35s' % ('Kind', column.get('kind'))
column_attributes = column.get('attributes', [])
for name, value in column_attributes.iteritems():
print '%15s = %35s' % (name, value)
JavaScript
Uses the JavaScript client library
/**
* 1. Execute a Metadata Request
* An application can request columns data by calling the list method on the Analytics service object.
* The method requires an reportType parameter that specifies the column data to retrieve.
* For example, the following code requests columns for the ga report type.
*/
function makeMetadataRequest() {
var request = gapi.client.analytics.metadata.columns.list({
'reportType': 'ga'
});
request.execute(renderMetadataReport);
}
/**
* 2. Print out the Columns data
* The components of the result can be printed out as follows:
*/
function renderMetadataReport(results) {
var reportHtml = [];
reportHtml.push(
getReportInfo(results),
getAttributes(results),
getColumns(results));
// Renders the results to a DIV element
document.getElementById('DIV_ID').innerHTML = reportHtml.join('');
}
function getReportInfo(results) {
var html = [];
if (results) {
html.push('<h2>Report Info</h2>');
html.push('<pre>Kind: ', results.kind, '</pre>');
html.push('<pre>Etag: ', results.etag, '</pre>');
html.push('<pre>Total Results: ', results.totalResults, '</pre>');
}
return html.join('');
}
function getAttributes(results) {
var html = [];
if (results) {
html.push('<h2>Attribute Names</h2><ul>');
var attributes = results.attributeNames;
for (var i = 0, attribute; attribute = attributes[i]; i++) {
html.push('<li>', attribute, '</li>');
}
html.push('</ul>');
}
return html.join('');
}
function getColumns(results) {
var html = [];
if (results) {
var columns = results.items;
html.push('<h2>Columns</h2>');
for (var i = 0, column; column = columns[i]; i++) {
html.push('<h3>', column.id, '</h3>');
var attributes = column.attributes;
for (attribute in attributes) {
html.push('<pre><strong>', attribute, '</strong> : ',
attributes[attribute], '</pre>');
}
}
}
return html.join('');
}
Try it!
Use the APIs Explorer below to call this method on live data and see the response. Alternatively, try the standalone Explorer.