Heim  >  Fragen und Antworten  >  Hauptteil

Verwendung der Methode „batchRunReports“ in PHP: Eine Anleitung

Ich möchte nur verstehen, wie man „batchRunReports“ in PHP ausführt. Ich habe ein Beispiel ausprobiert, aber es gibt eine komplexe, schwerwiegende Fehlermeldung. Ich habe die Dokumentation durchgesehen, kann aber nichts zu meinem Problem finden. Ich kann die gewünschte Abfrage mit den Tools in der Dokumentation ausführen, aber ich kann sie nicht an PHP übergeben.

use Google\Analytics\Data\V1beta\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;
use Google\Analytics\Data\V1beta\MetricAggregation;

$property = "properties/XXXXXXXXX";

$client = new BetaAnalyticsDataClient();
$client->batchRunReports([
    "requests" => [
        [   
            "property" => $property,
            "dataRanges" => [
                new DateRange(["start_date" => "7daysAgo"], ["end_date" => "today"]),
            ],
            "dimensions" => [
                new Dimension(["name" => "eventName"]),
            ],
            "metrics" => [
                new Metric(["name" => "eventCount"]),
            ]
        ],
        [
            "property" => $property,
            "dataRanges" => [
                new DateRange(["start_date" => "7daysAgo"], ["end_date" => "today"]),
            ],
            "dimensions" => [
                new Dimension(["name" => "deviceCategory"]),
            ],
            "metrics" => [
                new Metric(["name" => "activeUsers"]),
            ]
        ],
    ]
]);

Schwerwiegender Fehler: Nicht erfasste Ausnahme: GoogleAnalyticsDataV1betaRunReportRequest wird erwartet. In F:xampphtdocsother2_templateapi-test-completedgoogle-analyticsvendorgoogleprotobufsrcGoogleProtobufInternalGPBUtil.php:198 Stack Trace:

#0 F:xampphtdocsother2_templateapi-test-completedgoogle-analyticsvendorgoogleprotobufsrcGoogleProtobufInternalRepeatedField.php(187): Interner GPBUtil: :checkMessage(Array, 'GoogleAnalytic...' )

#1 F:xampphtdocsother2_templateapi-test-completedgoogle-analyticsvendorgoogle protobufsrcGoogleProtobufInternalGPBUtil.php(210): GoogleProtobufInternalRepeatedField->offsetSet(NULL, Array)

#2 F:xampphtdocsother 2_templateapi-test-completed. google-analyticsvendorgoogleanalytics-datasrcV1betaBatchRunReportsRequest.php ( 126): GoogleProtobufInternalGPBUtil::checkRepeatedField(Array, 11, 'GoogleAnalytic ...')

#3 F:xampphtdocsother2_templateapi-test-completedgoogle-analyticsvendorgoogleanalytics-datasrcV1betaGapicBetaAnalyticsDataGapicClient .php(421): GoogleAnalyticsDataV1betaBatchtics RunReportsRequest->setRequests(Array)

#4 F:xampphtdocsother2_templateapi-test-completedgoogle-analytics test.php(46): GoogleAnalyticsDataV1betaGapicBetaAnalyticsDataGapicClient->batchRunReports(Array)

#5 {main} throws. F:xampphtdocsother2_templateapi-test-completedgoogle-analyticsvendorgoogle protobufsrc GoogleProtobufInternalGPBUtil.php Zeile 198

P粉914731066P粉914731066238 Tage vor413

Antworte allen(1)Ich werde antworten

  • P粉792026467

    P粉7920264672024-01-30 10:45:43

    您需要使用“requests”数组中的RunReportRequest对象来运行batchRunReports。不要忘记像在batchRunReports 请求中那样添加“属性”。

    $response = $client->batchRunReports([
        "property" => $property,
          "requests" => [
            new RunReportRequest(
            [   
                "property" => $property,
                "date_ranges" => [
                    new DateRange(["start_date" => "7daysAgo", "end_date" => "today"]),
                ],
                "dimensions" => [
                    new Dimension(["name" => "eventName"]),
                ],
                "metrics" => [
                    new Metric(["name" => "eventCount"]),
                ]
            ]),
            new RunReportRequest([
                "property" => $property,
                "date_ranges" => [
                    new DateRange(["start_date" => "7daysAgo", "end_date" => "today"]),
                ],
                "dimensions" => [
                    new Dimension(["name" => "deviceCategory"]),
                ],
                "metrics" => [
                    new Metric(["name" => "activeUsers"]),
                ]
            ]),
        ]
    ]);
    

    Antwort
    0
  • StornierenAntwort