You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Analytics API createProperty()参数类型冲突问题排查

解决Google Analytics Admin PHP API createProperty参数类型冲突问题

你遇到的问题是对Google Cloud PHP客户端方法的参数格式理解有误,并非API bug。

问题根源

V1alpha版本的AnalyticsAdminServiceClient::createProperty方法签名要求第二个参数是可选参数数组,创建属性的请求体(Property对象或数组配置)需要作为该数组中property键的值,不能直接作为第二个参数传递。

正确代码示例

方式1:使用Property对象

function createNewProperty($accountName){
    echo "Account Name: $accountName 

";

    $client = new AnalyticsAdminServiceClient();

    echo "Create Property 

";

    $property = ( new Property() )
        ->setDisplayName("Zaks Test GA4 Property")
        ->setTimeZone('America/Chicago');

    try {
        // 核心修正:将Property对象放入可选参数数组的`property`键中
        $createdProperty = $client->createProperty($accountName, [
            'property' => $property
        ]);
        echo 'Property created: ' . "
";
        print_r( $createdProperty );
    } catch (\Exception $e) {
        echo 'An error occurred: ' . $e->getMessage() . "
";
    }
}

方式2:使用数组格式配置

function createNewProperty($accountName){
    echo "Account Name: $accountName 

";

    $client = new AnalyticsAdminServiceClient();

    echo "Create Property 

";

    $propertyConfig = [
        'display_name' => 'Zaks Test GA4 Property',
        'time_zone' => 'America/Chicago'
    ];

    try {
        $createdProperty = $client->createProperty($accountName, [
            'property' => $propertyConfig
        ]);
        echo 'Property created: ' . "
";
        print_r( $createdProperty );
    } catch (\Exception $e) {
        echo 'An error occurred: ' . $e->getMessage() . "
";
    }
}

失败原因说明

  • 直接传递Property对象作为第二个参数:方法期望第二个参数是数组(可选参数集合),因此触发类型错误。
  • 直接传递属性数组:未将数组放入property键下,API无法识别这是创建属性的请求体,因此提示需要Property对象。

内容的提问来源于stack exchange,提问作者Zak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:12:49