目标:list

需要授权

列出用户有访问权限的目标。 立即试用查看示例

除了标准参数之外,此方法还支持参数表中列出的参数。

请求

HTTP 请求

GET https://www.googleapis.com/analytics/v3/management/accounts/accountId/webproperties/webPropertyId/profiles/profileId/goals

参数

参数名称 说明
路径参数
accountId string 要为其提取目标的帐户 ID。可以是某个特定的帐户 ID 或者“~all”(代表用户有访问权限的所有帐户)。
profileId string 要为其提取目标的数据视图(配置文件)ID。可以是某个特定的数据视图(配置文件)ID 或者“~all”(代表用户有访问权限的所有数据视图(配置文件))。
webPropertyId string 要为其提取目标的网络媒体资源 ID。可以是某个特定的网络媒体资源 ID 或者“~all”(代表用户有访问权限的所有网络媒体资源)。
可选查询参数
max-results integer 在响应中可以包含的目标数量上限。
start-index integer 要提取的第一个目标的索引。此参数与 max-results 参数搭配使用,可以作为分页机制。

授权

此请求至少需要获得以下任一范围的授权(详细了解身份验证和授权)。

范围
https://www.googleapis.com/auth/analytics
https://www.googleapis.com/auth/analytics.edit
https://www.googleapis.com/auth/analytics.readonly

请求正文

请勿使用此方法提供请求正文。

响应

响应是一个“目标”资源的集合,一个资源对应于一个被请求的目标。

{
  "kind": "analytics#goals",
  "username": string,
  "totalResults": integer,
  "startIndex": integer,
  "itemsPerPage": integer,
  "previousLink": string,
  "nextLink": string,
  "items": [
    management.goals Resource
  ]
}
属性名称 说明 备注
kind string 集合类型。值为“analytics#goals”。
username string 已验证用户的电子邮件 ID
totalResults integer 查询的结果总数,与结果中的资源数量无关。
startIndex integer 资源的起始索引,默认为 1,或者通过 start-index 查询参数指定。
itemsPerPage integer 响应所能包含的资源数量上限,与返回的实际资源数无关。其值的范围为 1 至 1000,默认值为 1000,或者通过 max-results 查询参数指定。
items[] list 目标列表。

示例

备注:此方法的代码示例并未列出所有受支持的编程语言(请参阅客户端库页面,查看受支持的语言列表)。

Java

使用 Java 客户端库

/**
 * Note: This code assumes you have an authorized Analytics service object.
 * See the Goal Dev Guide for details.
 */

/**
 * Example #1:
 * This example requests a list of all goals for the authorized user.
 */
try {
  Goals goals = analytics.management.
      goals.list("12345", "UA-12345-1","523").execute();
} catch (GoogleJsonResponseException e) {
  System.err.println("There was a service error: "
      + e.getDetails().getCode() + " : "
      + e.getDetails().getMessage());
}

/**
 * Example #2:
 * Retrieves all goals for all views (profiles) for the user, using a
 * wildcard '~all' as the profile ID.
 */
Goals goals = analytics.management.goals.list("12345", "UA-12345-1",
    "~all").execute();

/**
 * Example #3:
 * The results of the list method are stored in the Goals object. The following
 * code shows how to iterate through them.
 */
for (Goal goal : goals.getItems()) {
  System.out.println("Account ID: " + goal.getAccountId());
  System.out.println("Property ID: " + goal.getWebPropertyId());
  System.out.println("Property Internal Id: "
      + goal.getInternalWebPropertyId());
  System.out.println("View (Profile) ID: " + goal.getId());

  System.out.println("Goal Number: " + goal.getId());
  System.out.println("Goal Name: " + goal.getName());
  System.out.println("Goal Value: " + goal.getValue());
  System.out.println("Is Goal Active: " + goal.getActive());
  System.out.println("Goal Type: " + goal.getType());

  System.out.println("Goal Created: " + goal.getCreated());
  System.out.println("Goal Updated: " + goal.getUpdated());

  if (goal.getUrlDestinationDetails() != null) {
    printGoalUrlDestinationDetails(goal.getUrlDestinationDetails());

  } else if (goal.getVisitTimeOnSiteDetails() != null) {
    printGoalVisitTimeOnSiteDetails(goal.getVisitTimeOnSiteDetails());

  } else if (goal.getVisitNumPagesDetails() != null) {
    printGoalVisitNumPagesDetails(goal.getVisitNumPagesDetails());

  } else if (goal.getEventDetails() != null) {
    printGoalEventDetails(goal.getEventDetails());
  }
}

/**
 * Example #4:
 * How to iterate through 'URL_DESTINATION' goals.
 */
private static void printUrlDestinationDetails(UrlDestinationDetails
    destinationDetails) {
  System.out.println("Goal Url: " + destinationDetails.getUrl());
  System.out.println("Case Sensitive: "
      +  destinationDetails.getCaseSensitive());
  System.out.println("Match Type: " +  destinationDetails.getMatchType());
  System.out.println("First Step Required: "
      + destinationDetails.getFirstStepRequired());

  if (destinationDetails.getSteps() != null) {
    System.out.println("Goal Steps: ");
    for (Steps step : destinationDetails.getSteps()) {
      System.out.println("Step Number: " + step.getNumber());
      System.out.println("Name: " + step.getName());
      System.out.println("URL: " + step.getUrl());
    }

  } else {
    System.out.println("No Steps Configured");
  }
}

/**
 * Example #5:
 * How to access a 'VISIT_TIME_ON_SITE' goal.
 */
private static void printVisitTimeOnSiteDetails(
    VisitTimeOnSiteDetails visitTimeOnSiteDetails) {

  System.out.println("Goal Type:  VISIT_TIME_ON_SITE");
  System.out.println("VISIT_TIME_ON_SITE - Comparison Type: "
      + visitTimeOnSiteDetails.getComparisonType());
  System.out.println("VISIT_TIME_ON_SITE - Comparison Value: "
      + visitTimeOnSiteDetails.getComparisonValue());
}

/**
 * Example #6:
 * How to access a 'VISIT_NUM_PAGES' goal.
 */
private static void printVisitNumPagesDetails(VisitNumPagesDetails
    visitNumPagesDetails) {
  System.out.println("Goal Type:  VISIT_NUM_PAGES");
  System.out.println("VISIT_NUM_PAGES - Comparison Type: "
      +  visitNumPagesDetails.getComparisonType());
  System.out.println("VISIT_NUM_PAGES - Comparison Value: "
      +  visitNumPagesDetails.getComparisonValue());
}

/**
 * Example #7:
 * How to iterate through 'EVENT' goals.
 */
private static void printGoalEventDetails(EventDetails eventDetails) {
  System.out.println("EVENT - Use Event Value: "
      + eventDetails.getUseEventValue());

  if (eventDetails.getEventConditions() != null) {
    System.out.println("Goal Conditions: ");
    for (EventConditions conditions : eventDetails.getEventConditions()) {
      System.out.println("Type: " + conditions.getType());

      if (conditions.getType().equals("VALUE")) {
        System.out.println("Comparison Type: "
            + conditions.getComparisonType());
        System.out.println("Comparison Value: "
            + conditions.getComparisonValue());
      } else {
        System.out.println("matchType: " + conditions.getMatchType());
        System.out.println("expression: " + conditions.getExpression());
      }
    }
  }
}

PHP

使用 PHP 客户端库

/**
 * Note: This code assumes you have an authorized Analytics service object.
 * See the Goal Developer Guide for details.
 */

/**
 * Example #1:
 * Requests goals for a single view (profile).
 */
try {
  $goals = $analytics->management_goals->listManagementGoals('123456',
      'UA-123456-1',
      '7654321');

} catch (apiServiceException $e) {
  print 'There was an Analytics API service error '
      . $e->getCode() . ':' . $e->getMessage();

} catch (apiException $e) {
  print 'There was a general API error '
      . $e->getCode() . ':' . $e->getMessage();
}

/**
 * Example #2:
 * Retrieves all goals for all views (profiles) for the authorized user, using a
 * wildcard '~all' as the view (profile) ID.
 */
$goals = $analytics->management_goals->listManagementGoals('123456',
    'UA-123456-1',
    '~all');

/**
 * Example #3:
 * The results of the list method are stored in the goals object. The following
 * code shows how to iterate through them.
 */
foreach ($goals->getItems() as $goal) {

  $html = <<<HTML
<pre>
Account id           = {$goal->getAccountId()}
Property id          = {$goal->getWebPropertyId()}
Internal property id = {$goal->getInternalWebPropertyId()}
View (profile) id    = {$goal->getProfileId()}
Goal id              = {$goal->getId()}
Goal name            = {$goal->getName()}
Goal value           = {$goal->getValue()}
Goal active          = {$goal->getActive()}
Goal created         = {$goal->getCreated()}
Goal updated         = {$goal->getUpdated()}
Goal type            = {$goal->getType()}
HTML;

  // Check for the various types of Goals.
  $type = $goal->getType();
  if ($type == 'URL_DESTINATION') {
    $details = $goal->getUrlDestinationDetails();

    $html .=<<<HTML
Goal URL            = {$details->getUrl()}
Case sensitive      = {$details->getCaseSensitive()}
Match type          = {$details->getMatchType()}
First step required = {$details->getFirstStepRequired()}
HTML;

    // Iterate through the steps
    foreach($details->getSteps() as $step) {
      $html .= <<<HTML
Step number = {$step->getNumber()}
Step name   = {$step->getName()}
Step URL    = {$step->getUrl()}
HTML;
    }
  } else if ($type == 'VISIT_TIME_ON_SITE') {
    $details = $goal->getVisitTimeOnSiteDetails();

    $html .= <<<HTML
Comparison type  = {$details->getComparisonType()}
Comparison value = {$details->getComparisonValue()}
HTML;
  } else if ($type == 'VISIT_NUM_PAGES') {
    $details = $goal->getVisitNumPagesDetails();

    $html .= <<<HTML
Comparison type  = {$details->getComparisonType()}
Comparison value = {$details->getComparisonValue()}
HTML;
  } else if ($type == 'EVENT') {
    $details = $goal->getEventDetails();

    $html .= <<<HTML
Use event value  = {$details->getUseEventValue()}
HTML;

    // Get all the event goal conditions.
    foreach ($details->getEventConditions() as $condition) {
      $html .= <<<HTML
Event type       = {$condition->getType()}
HTML;

      if ($condition->getType() == 'VALUE') {
        // Process VALUE.
        $html .= <<<HTML
Comparison type  = {$condition->getComparisonType()}
Comparison value = {$condition->getComparisonValue()}
HTML;
      } else {
        // Process CATEGORY, ACTION, LABEL.
        $html .= <<<HTML
Match type       = {$condition->getMatchType()}
Expression       = {$condition->getExpression()}
HTML;
      }
    }
  }

  $html .= '</pre>';
  print $html;
}

Python

使用 Python 客户端库

# Note: This code assumes you have an authorized Analytics service object.
# See the Goal Dev Guide for details.

# Example #1:
# Requests a list of all goals for the authorized user.
try:
  goals = analytics.management().goals().list(
      accountId='12345',
      webPropertyId='UA-12345-1',
      profileId='523').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 ('There was an API error : %s : %s' %
         (error.resp.status, error.resp.reason()))

# Example #2:
# Retrieves all goals for all views (profiles) for the user, using a
# wildcard '~all' as the profile ID.
goals = analytics.management().goals().list(accountId='12345',
                                            webPropertyId='UA-12345-1',
                                            profileId='~all').execute()

# Example #3:
# The results of the list method are stored in the Goals object. The following
# code shows how to iterate through them.
for goal in goals_response.get('items', []):
  print 'Account ID           = %s' % goal.get('accountId')
  print 'Property ID          = %s' % goal.get('webPropertyId')
  print 'Internal Property ID = %s' % goal.get('internalWebPropertyId')
  print 'View (Profile) ID    = %s' % goal.get('profileId')

  print 'Goal Number = %s' % goal.get('id')
  print 'Goal Name   = %s' % goal.get('name')
  print 'Goal Value  = %s' % goal.get('value')
  print 'Goal Active = %s' % goal.get('active')
  print 'Goal Type   = %s' % goal.get('type')

  print 'Created     = %s' % goal.get('created')
  print 'Updated     = %s' % goal.get('updated')

  # Print the goal details depending on the type of goal.
  if goal.get('urlDestinationDetails'):
    print_url_destination_goal_details(goal.get('urlDestinationDetails'))

  elif goal.get('visitTimeOnSiteDetails'):
    print_visit_time_on_site_goal_details(goal.get('visitTimeOnSiteDetails'))

  elif goal.get('visitNumPagesDetails'):
    print_visit_num_pages_goal_details(goal.get('visitNumPagesDetails'))

  elif goal.get('eventDetails'):
    print_event_goal_details(goal.get('eventDetails'))

# Example #4:
# How to access a 'URL_DESTINATION' goals.
def print_url_destination_goal_details(goal_details):
  print 'Goal URL            = %s' % goal_details.get('url')
  print 'Case Sensitive      = %s' % goal_details.get('caseSensitive')
  print 'Match Type          = %s' % goal_details.get('matchType')
  print 'First Step Required = %s' % goal_details.get('firstStepRequired')

  print '------ Url Destination Goal Steps -------'
  for goal_step in goal_details.get('steps', []):
    print 'Step Number  = %s' % goal_step.get('number')
    print 'Step Name    = %s' % goal_step.get('name')
    print 'Step URL     = %s' % goal_step.get('url')
  else:
    print 'No Steps Configured'

# Example #5:
# How to access a 'VISIT_TIME_ON_SITE' goal.
def print_visit_time_on_site_goal_details(goal_details):
  print '------ Visit Time On Site Goal -------'
  print 'Comparison Type  = %s' % goal_details.get('comparisonType')
  print 'comparison Value = %s' % goal_details.get('comparisonValue')

# Example #6:
# How to iterate through 'VISIT_NUM_PAGES' goals.
def print_visit_num_pages_goal_details(goal_details):
  print '------ Visit Num Pages Goal -------'
  print 'Comparison Type  = %s' % goal_details.get('comparisonType')
  print 'comparison Value = %s' % goal_details.get('comparisonValue')

# Example #7:
# How to iterate through 'EVENT' goals.
def print_event_goal_details(goal_details):
  print 'Use Event Value  = %s' % goal_details.get('useEventValue')

  for event_condition in goal_details.get('eventConditions', []):
    event_type = event_condition.get('type')
    print 'Type             = %s' % event_type

    if event_type == 'VALUE':
      print 'Comparison Type  = %s' % event_condition.get('comparisonType')
      print 'Comparison Value = %s' % event_condition.get('comparisonValue')

    else:  # CATEGORY, ACTION, LABEL types.
      print 'Match Type       = %s' % event_condition.get('matchType')
      print 'Expression       = %s' % event_condition.get('expression')

JavaScript

使用 JavaScript 客户端库

/*
 * Note: This code assumes you have an authorized Analytics client object.
 * See the Goals Developer Guide for details.
 */

/*
 * Example 1:
 * Requests a list of all goals for the authorized user.
 */
function listGoals() {
  var request = gapi.client.analytics.management.goals.list({
    'accountId': '123456',
    'webPropertyId': 'UA-123456-1',
    'profileId': '7654321'
  });
  request.execute(printGoals);
}

/*
 * Example 2:
 * The results of the list method are passed as the results object.
 * The following code shows how to iterate through them.
 */
function printGoals(results) {
  if (results && !results.error) {
    var goals = results.items;
    for (var i = 0, goal; goal = goals[i]; i++) {
      console.log('Account Id: ' + goal.accountId);
      console.log('Property Id: ' + goal.webPropertyId);
      console.log('Internal Property Id: ' + goal.internalWebPropertyId);
      console.log('View (Profile) Id: ' + goal.profileId);

      console.log('Goal Id: ' + goal.id);
      console.log('Goal Name: ' + goal.name);
      console.log('Goal Value: ' + goal.value);
      console.log('Goal Active: ' + goal.active);
      console.log('Goal Type: ' + goal.type);

      console.log('Created: ' + goal.created);
      console.log('Updated: ' + goal.updated);

      // Print the goal details depending on the type of goal.
      if (goal.urlDestinationDetails) {
        printDestinationDetails(goal.urlDestinationDetails);
      } else if (goal.visitTimeOnSiteDetails) {
        printComparisonDetails(goal.visitTimeOnSiteDetails);
      } else if (goal.visitNumPagesDetails) {
        printComparisonDetails(goal.visitNumPagesDetails);
      } else if (goal.eventDetails) {
        printEventDetails(goal.eventDetails);
      }
    }
  }
}

function printDestinationDetails(details) {
  console.log('Goal URL: ' + details.url);
  console.log('Case Sensitive: ' + details.caseSensitive);
  console.log('Match Type: ' + details.matchType);
  console.log('First Step Required: ' + details.firstStepRequired);

  // Iterate through the steps.
  var steps = details.steps;
  if (steps) {
    for (var i = 0, step; step = steps[i]; i++) {
      console.log('Step Number: ' + step.number);
      console.log('Step Name: ' + step.name);
      console.log('Step URL: ' + step.url);
    }
  } else {
    console.log('No Steps Configured.');
  }
}

function printComparisonDetails(details) {
  console.log('Comparison Type: ' + details.comparisonType);
  console.log('Comparison Value: ' + details.comparisonValue);
}

function printEventDetails(details) {
  var conditions = details.eventContitions;
  if (conditions) {
    for (var i = 0, condition; condition = conditions[i]; i++) {
      console.log('Condition Type: ' + condition.type);
      if (condition.type == 'VALUE') {
        console.log('Comparison Type: ' + condition.comparisonType);
        console.log('Comparison Value: ' + condition.comparisonValue);
      } else {
        console.log('Match Type: ' + condition.matchType);
        console.log('Expression: ' + condition.expression);
      }
    }
  }
}

试试看!

请使用下面的 API Explorer 针对实时数据调用此方法并查看响应。或者,您还可以尝试使用独立的 Explorer