2

我是 Google Analytic API 的初学者。我在 Analytic 中有 1 个以上的帐户,每个帐户都有不同的网络属性。现在我要做的是根据帐户更改网络属性列表。所以我有 1 个显示帐户列表的下拉列表和第二个显示 Web 属性的下拉列表,但是在从下拉列表更改帐户时,它应该更改 Web 属性,我不知道该怎么做

代码:

    try {
    global $_params, $output_title, $output_body;
    $output_title = 'Adwords';
    $output_nav = '<li><a href="'.$scriptUri.'?logout">Logout</a></li>'."\n";
    $output_body = '<h1>Google Adwords Access demo</h1>
                    <p>The following domains are in your Google Adwords account</p><select>';
                    $accountToPropertyMap = array();            
    $accounts = $service->management_accounts->listManagementAccounts("~all");
  foreach($accounts['items'] as $item) {
  $id = $item->getId();
 $output_body .= sprintf('<option value="">%1$s</option>', $item['name']);
    }
    $output_body .= '</select>';

$output_prop ='<h1>web properties</h1><select>';
$service->management_webproperties->listManagementWebproperties($id);
    $accountToPropertyMap = $service->management_webproperties->listManagementWebproperties($id);
    foreach($webproperties['items'] as $item) {
        $output_prop .= sprintf('<option>%1$s</option>', $item['name']);
    }
    $output_prop .= '</select>';
    include("output.php");
} catch (Exception $e) {
    die('<html><body><h1>An error occured: ' . $e->getMessage()."\n </h1></body></html>");
}
4

1 回答 1

1

调用listManagementWebproperties("~all")将返回用户有权访问的所有帐户

如果您只想显示所选帐户的网络媒体资源,则需要将该帐户的 ID 传递到listManagementWebproperties(accountid).

在预处理中执行此操作的一种方法是为每个帐户执行此调用并分别保存这些属性组,然后根据需要显示它们。

您可以选择一个帐户并使用 Account ID = {$account->getId()} 获取 ID,然后将其放入属性调用中。

示例片段:

$accountToPropertyMap = array();
$accounts = $service->management_accounts->listManagementAccounts("~all");
foreach($accounts as $account){
    $id = $account->getId();
    $service->management_webproperties->listManagementWebproperties($id)
    $accountToPropertyMap[$id] = management_webproperties->listManagementWebproperties($id);
}

然后从数组中检索属性。您可以根据需要为您的应用程序使用比 id 更相关的密钥。

于 2013-10-30T23:32:30.003 回答