【问题标题】:google analytics api change web property according to account谷歌分析 api 根据帐户更改网络属性
【发布时间】:2013-10-22 11:19:34
【问题描述】:

我是 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>");
}

【问题讨论】:

    标签: javascript google-api google-analytics-api google-api-php-client


    【解决方案1】:

    调用listManagementWebproperties("~all") 将返回ALL the accounts that user has access to

    如果您只想显示所选帐户的网络媒体资源,则需要将该帐户的 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 更相关的键。

    【讨论】:

    • 我认为应该有一些动态的方法来做到这一点。你告诉我的方式只能用于一个帐户。那么如果其他人尝试使用我的应用程序怎么办?我希望你能理解我的意思
    • 您根据客户获取的账户信息正确吗?不要对 accountIds 进行硬编码,而是从您查询的帐户中获取它们。选择一个帐户并使用Account ID = {$account-&gt;getId()} 获取ID。然后将其放入属性调用中。
    • 好吧,我在你现在建议之前尝试过这个。但不幸的是,我没有得到任何结果,可能是我做错了什么。所以请用我上面给出的代码举例说明你的建议。
    • 添加示例。如果您仍然有问题,请提供您没有结果的代码版本
    • 非常感谢您的关心和帮助,我会尝试您的代码并回复您:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-13
    • 2015-01-10
    • 2012-11-18
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    相关资源
    最近更新 更多