پرس و جو مجموعه های متریک
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
بعد از اینکه همه چیز را تنظیم کردید، میتوانید درخواستهایی را به API گزارشدهنده برنامهنویس Google Play ارسال کنید تا فرادادههای مجموعههای متریک را بازیابی کنید و معیارهای آنها را جستجو کنید.
نمونه کد زیر نحوه ارسال چند درخواست ساده را نشان می دهد. برای مثال، روشهای زیر به شما نشان میدهند که چگونه معیارهای مختلف را برای برنامه خود بازیابی کنید. چند پارامتر کوئری مختلف وجود دارد که می توان از آنها برای محدود کردن پرس و جو استفاده کرد.
مثال زیر متادیتا را برای مجموعه متریک نرخ خرابی برای یک برنامه خیالی، com.example.app
بازیابی می کند.
درخواست ساده:
این درخواست HTTP GET
پارامتر نام برنامه را مشخص می کند و منبع متریک کامل مرتبط با برنامه شما را برمی گرداند.
GET https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/crashRateMetricSet
پاسخ اطلاعات متریک:
پاسخ شامل فیلدهای زیر مربوط به مجموعه متریک است:
{
"freshness_info": {
"freshness": [
"aggregation_period": "DAILY"
"latest_end_time": { year: "2021" month: "7" day: "22" time_zone: "America/Los_Angeles" }
]
}
}
با استفاده از قابلیت پرس و جو
درخواست HTTP POST
زیر برای همین منبع از نقطه پایانی query
برای بازیابی داده های خاص از درون مجموعه متریک استفاده می کند.
POST https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/crashRateMetricSet:query
در بدنه درخواست، گزینه های پرس و جو را برای بازیابی معیارها بر اساس معیارهای خاص ارسال کنید.
{
"timeline_spec": {
"aggregation_period": "DAILY"
"start_time": { year: "2021" month: "7" day: "1" time_zone: "America/Los_Angeles" }
"end_time": { year: "2021" month: "7" day: "3" time_zone: "America/Los_Angeles" }
}
"dimensions": ["apiLevel"]
"metrics": ["errorReportCount", "distinctUsers"]
"page_size": "10"
}
در اینجا چند نمونه در سطح مجموعه آورده شده است:
فیلدها |
---|
timelineSpec | object ( TimelineSpec ) تعیین پارامترهای تجمع جدول زمانی. لطفاً مستندات هر مجموعه متریک را برای فهرستی از دورههای تجمعی که پشتیبانی میشوند بررسی کنید. |
dimensions[] | string ابعاد برای برش معیارها. لطفاً اسناد هر مجموعه متریک را برای فهرستی از ابعاد پشتیبانی شده بررسی کنید. |
metrics[] | string معیارهایی که باید جمع شوند. |
pageSize | integer حداکثر اندازه داده های برگشتی اگر نامشخص باشد، حداکثر 1000 ردیف برگردانده می شود. حداکثر مقدار 100000 است. مقادیر بالای 100000 به 100000 اجباری می شود. |
رسیدگی به پاسخ ها
پس از اینکه سرور یک درخواست معتبر شامل فیلدهای معتبر را پردازش کرد، یک کد وضعیت HTTP 200 OK
را به همراه دادههای درخواستی ارسال میکند. اگر پارامتر پرس و جو fields
دارای خطا باشد یا در غیر این صورت نامعتبر باشد، سرور یک کد وضعیت HTTP 400 Bad Request
را به همراه یک پیام خطایی که به کاربر میگوید در انتخاب فیلدهایش چه مشکلی داشته است، برمیگرداند (به عنوان مثال، "Invalid field timeline_spec"
).
در اینجا نمونه پاسخ نشان داده شده در بخش مقدماتی بالا است.
POST https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/crashRateMetricSet:query
پاسخ به این شکل است:
200 OK
{
rows: [
{
aggregation_period: "DAILY"
start_time: { year: "2021" month: "7" day: "1" time_zone: "America/Los_Angeles" }
dimensions: [{dimension: "apiLevel" int64_value: "20"}]
metrics: [
{metric: "errorReportCount" decimal_value: "100"},
{metric: "distinctUsers" decimal_value: "57"},
]
}, {
aggregation_period: "DAILY"
start_time: { year: "2021" month: "7" day: "1" time_zone: "America/Los_Angeles" }
dimensions: [{dimension: "apiLevel" int64_value: "21"}]
metrics: [
{metric: "errorReportCount" decimal_value: "123"},
{metric: "distinctUsers" decimal_value: "65"},
]
},
...
]
next_page_token: "eW91IGhhdmUgdG9vIG11Y2ggZnJlZSB0aW1l"
}
توجه: برای APIهایی که از پارامترهای پرس و جو برای صفحه بندی داده ها پشتیبانی می کنند (مثلاً maxResults
و nextPageToken
)، از این پارامترها برای کاهش نتایج هر پرس و جو به اندازه قابل مدیریت استفاده کنید.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-24 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eSend requests to the Google Play Developer Reporting API to retrieve app metric data after setup.\u003c/p\u003e\n"],["\u003cp\u003eUse the \u003ccode\u003equery\u003c/code\u003e endpoint with parameters like \u003ccode\u003etimeline_spec\u003c/code\u003e, \u003ccode\u003edimensions\u003c/code\u003e, and \u003ccode\u003emetrics\u003c/code\u003e to retrieve specific data within a metric set.\u003c/p\u003e\n"],["\u003cp\u003eResponses include metric data based on the query, or error messages for invalid requests.\u003c/p\u003e\n"],["\u003cp\u003eFor large datasets, utilize pagination parameters like \u003ccode\u003epageSize\u003c/code\u003e to handle responses efficiently.\u003c/p\u003e\n"]]],["After setup, you can interact with the Google Play Developer Reporting API. A `GET` request, like for `com.example.app`, can retrieve metric set metadata, including freshness information. To query specific data, use a `POST` request with parameters like `timeline_spec`, `dimensions`, `metrics`, and `page_size`. A successful request returns a `200 OK` status and the requested data, while a `400 Bad Request` signifies errors in the query parameters. Use pagination to manage large data sets.\n"],null,["# Querying Metric Sets\n\nAfter you've set everything up, you can send requests to the Google Play Developer Reporting API to retrieve\nmetadata about metric sets and query their metrics.\n\n\nThe following code samples demonstrate how to send a few simple requests. For example, the\nmethods below show you how to retrieve various metrics for your app. There are a few different\nquery parameters that can be used to narrow your query.\n\nRetrieving metric set metadata\n------------------------------\n\n\nThe following example retrieves the metadata for the crash rate metric set for a fictional\napplication, `com.example.app`.\n\n#### Simple request:\n\n\nThis HTTP `GET` request specifies the application name parameter and returns the\nfull metric resource associated with your application. \n\n```text\nGET https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/crashRateMetricSet\n```\n\n#### Metric info response:\n\n\nThe response includes the following fields related to the metric set: \n\n```verilog\n{\n \"freshness_info\": {\n \"freshness\": [\n \"aggregation_period\": \"DAILY\"\n \"latest_end_time\": { year: \"2021\" month: \"7\" day: \"22\" time_zone: \"America/Los_Angeles\" }\n ]\n }\n}\n```\n\nUsing the query feature\n-----------------------\n\n\nThe following HTTP `POST`request for this same resource uses the `query`\nendpoint to retrieve specific data from within the metric set. \n\n```text\nPOST https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/crashRateMetricSet:query\n```\n\n\nIn the request body, pass query options to retrieve metrics based on specific criteria. \n\n```verilog\n{\n \"timeline_spec\": {\n \"aggregation_period\": \"DAILY\"\n \"start_time\": { year: \"2021\" month: \"7\" day: \"1\" time_zone: \"America/Los_Angeles\" }\n \"end_time\": { year: \"2021\" month: \"7\" day: \"3\" time_zone: \"America/Los_Angeles\" }\n }\n \"dimensions\": [\"apiLevel\"]\n \"metrics\": [\"errorReportCount\", \"distinctUsers\"]\n \"page_size\": \"10\"\n}\n```\n\n\nHere are some collection-level examples:\n\n| Fields ||\n|----------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `timelineSpec` | `object (`[TimelineSpec](/play/developer/reporting/reference/rest/v1beta1/anomalies#TimelineSpec)`)` Specification of the timeline aggregation parameters. Please check the documentation of each metric set for a list of what aggregation periods are supported. |\n| `dimensions[]` | `string` Dimensions to slice the metrics by. Please check the documentation of each metric set for a list of what dimensions are supported. |\n| `metrics[]` | `string` Metrics to aggregate. |\n| `pageSize` | `integer` Maximum size of the returned data. If unspecified, at most 1000 rows will be returned. The maximum value is 100,000; values above 100,000 will be coerced to 100,000. |\n\n### Handling responses\n\n\nAfter a server processes a valid request that includes valid fields, it sends back an HTTP\n`200 OK` status code, along with the requested data. If the `fields`\nquery parameter has an error or is otherwise invalid, the server returns an HTTP\n`400 Bad Request` status code, along with an error message telling the user what\nwas wrong with their fields selection (for example, `\"Invalid field timeline_spec\"`).\n\n\nHere is the response example shown in the introductory section above. \n\n```text\nPOST https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/crashRateMetricSet:query\n```\n\nThe response looks like this: \n\n```\n200 OK\n``` \n\n```verilog\n{\n rows: [\n {\n aggregation_period: \"DAILY\"\n start_time: { year: \"2021\" month: \"7\" day: \"1\" time_zone: \"America/Los_Angeles\" }\n dimensions: [{dimension: \"apiLevel\" int64_value: \"20\"}]\n metrics: [\n {metric: \"errorReportCount\" decimal_value: \"100\"},\n {metric: \"distinctUsers\" decimal_value: \"57\"},\n ]\n }, {\n aggregation_period: \"DAILY\"\n start_time: { year: \"2021\" month: \"7\" day: \"1\" time_zone: \"America/Los_Angeles\" }\n dimensions: [{dimension: \"apiLevel\" int64_value: \"21\"}]\n metrics: [\n {metric: \"errorReportCount\" decimal_value: \"123\"},\n {metric: \"distinctUsers\" decimal_value: \"65\"},\n ]\n },\n ...\n ]\n next_page_token: \"eW91IGhhdmUgdG9vIG11Y2ggZnJlZSB0aW1l\"\n}\n```\n\n\n**Note:** For APIs that support query parameters for data pagination (`maxResults`\nand `nextPageToken`, for example), use those parameters to reduce the results of each\nquery to a manageable size."]]