需要授权
除了标准参数之外,此方法还支持参数表中列出的参数。
请求
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 查询参数指定。 |
|
previousLink |
string |
指向此目标集合的上一页的链接。 | |
nextLink |
string |
链接到此目标集合的下一页。 | |
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。