google-api-client 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/api_names.yaml +945 -41609
  4. data/generated/google/apis/acceleratedmobilepageurl_v1/classes.rb +12 -12
  5. data/generated/google/apis/acceleratedmobilepageurl_v1/representations.rb +2 -2
  6. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  7. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +1437 -412
  8. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +516 -71
  9. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +1098 -422
  10. data/generated/google/apis/adexchangebuyer_v1_4/classes.rb +6 -6
  11. data/generated/google/apis/adexchangebuyer_v1_4/representations.rb +3 -3
  12. data/generated/google/apis/adexchangebuyer_v1_4/service.rb +3 -3
  13. data/generated/google/apis/adexchangeseller_v2_0/service.rb +10 -10
  14. data/generated/google/apis/admin_directory_v1/service.rb +26 -26
  15. data/generated/google/apis/adsense_v1_4.rb +1 -1
  16. data/generated/google/apis/adsense_v1_4/classes.rb +2 -2
  17. data/generated/google/apis/adsense_v1_4/representations.rb +3 -3
  18. data/generated/google/apis/adsense_v1_4/service.rb +44 -44
  19. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  20. data/generated/google/apis/adsensehost_v4_1/service.rb +22 -22
  21. data/generated/google/apis/analytics_v3/classes.rb +3 -3
  22. data/generated/google/apis/analytics_v3/representations.rb +3 -3
  23. data/generated/google/apis/analytics_v3/service.rb +82 -82
  24. data/generated/google/apis/analyticsreporting_v4/classes.rb +937 -937
  25. data/generated/google/apis/analyticsreporting_v4/representations.rb +128 -128
  26. data/generated/google/apis/analyticsreporting_v4/service.rb +1 -1
  27. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  28. data/generated/google/apis/androidenterprise_v1/classes.rb +10 -10
  29. data/generated/google/apis/androidenterprise_v1/representations.rb +20 -20
  30. data/generated/google/apis/androidenterprise_v1/service.rb +43 -43
  31. data/generated/google/apis/androidpublisher_v2/classes.rb +26 -26
  32. data/generated/google/apis/androidpublisher_v2/representations.rb +46 -46
  33. data/generated/google/apis/androidpublisher_v2/service.rb +95 -95
  34. data/generated/google/apis/appengine_v1.rb +4 -4
  35. data/generated/google/apis/appengine_v1/classes.rb +1570 -1512
  36. data/generated/google/apis/appengine_v1/representations.rb +362 -343
  37. data/generated/google/apis/appengine_v1/service.rb +220 -220
  38. data/generated/google/apis/appstate_v1.rb +1 -1
  39. data/generated/google/apis/bigquery_v2.rb +1 -1
  40. data/generated/google/apis/bigquery_v2/classes.rb +5 -5
  41. data/generated/google/apis/bigquery_v2/representations.rb +8 -8
  42. data/generated/google/apis/bigquery_v2/service.rb +13 -13
  43. data/generated/google/apis/blogger_v3/service.rb +3 -3
  44. data/generated/google/apis/books_v1/classes.rb +55 -55
  45. data/generated/google/apis/books_v1/representations.rb +67 -67
  46. data/generated/google/apis/books_v1/service.rb +82 -82
  47. data/generated/google/apis/calendar_v3.rb +1 -1
  48. data/generated/google/apis/calendar_v3/classes.rb +6 -6
  49. data/generated/google/apis/calendar_v3/representations.rb +3 -3
  50. data/generated/google/apis/calendar_v3/service.rb +2 -2
  51. data/generated/google/apis/civicinfo_v2/classes.rb +2 -2
  52. data/generated/google/apis/civicinfo_v2/representations.rb +4 -4
  53. data/generated/google/apis/civicinfo_v2/service.rb +12 -12
  54. data/generated/google/apis/classroom_v1.rb +7 -7
  55. data/generated/google/apis/classroom_v1/classes.rb +1013 -991
  56. data/generated/google/apis/classroom_v1/representations.rb +207 -204
  57. data/generated/google/apis/classroom_v1/service.rb +709 -709
  58. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  59. data/generated/google/apis/cloudbuild_v1/classes.rb +307 -307
  60. data/generated/google/apis/cloudbuild_v1/representations.rb +84 -84
  61. data/generated/google/apis/cloudbuild_v1/service.rb +125 -125
  62. data/generated/google/apis/clouddebugger_v2/classes.rb +673 -673
  63. data/generated/google/apis/clouddebugger_v2/representations.rb +152 -152
  64. data/generated/google/apis/clouddebugger_v2/service.rb +55 -55
  65. data/generated/google/apis/clouderrorreporting_v1beta1.rb +1 -1
  66. data/generated/google/apis/clouderrorreporting_v1beta1/classes.rb +121 -121
  67. data/generated/google/apis/clouderrorreporting_v1beta1/representations.rb +25 -25
  68. data/generated/google/apis/clouderrorreporting_v1beta1/service.rb +74 -74
  69. data/generated/google/apis/cloudkms_v1.rb +1 -1
  70. data/generated/google/apis/cloudkms_v1/classes.rb +668 -613
  71. data/generated/google/apis/cloudkms_v1/representations.rb +151 -133
  72. data/generated/google/apis/cloudkms_v1/service.rb +267 -267
  73. data/generated/google/apis/cloudresourcemanager_v1.rb +4 -4
  74. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +1167 -1168
  75. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +193 -193
  76. data/generated/google/apis/cloudresourcemanager_v1/service.rb +470 -469
  77. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  78. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +508 -509
  79. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +94 -94
  80. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +157 -156
  81. data/generated/google/apis/cloudtrace_v1/service.rb +34 -34
  82. data/generated/google/apis/compute_beta.rb +1 -1
  83. data/generated/google/apis/compute_beta/classes.rb +163 -15
  84. data/generated/google/apis/compute_beta/representations.rb +54 -14
  85. data/generated/google/apis/compute_beta/service.rb +2258 -482
  86. data/generated/google/apis/compute_v1.rb +1 -1
  87. data/generated/google/apis/compute_v1/classes.rb +465 -13
  88. data/generated/google/apis/compute_v1/representations.rb +202 -16
  89. data/generated/google/apis/compute_v1/service.rb +573 -309
  90. data/generated/google/apis/container_v1.rb +1 -1
  91. data/generated/google/apis/container_v1/classes.rb +635 -589
  92. data/generated/google/apis/container_v1/representations.rb +139 -111
  93. data/generated/google/apis/container_v1/service.rb +272 -227
  94. data/generated/google/apis/content_v2.rb +1 -1
  95. data/generated/google/apis/content_v2/classes.rb +86 -74
  96. data/generated/google/apis/content_v2/representations.rb +107 -105
  97. data/generated/google/apis/content_v2/service.rb +131 -130
  98. data/generated/google/apis/customsearch_v1.rb +2 -2
  99. data/generated/google/apis/customsearch_v1/classes.rb +0 -6
  100. data/generated/google/apis/customsearch_v1/representations.rb +0 -1
  101. data/generated/google/apis/customsearch_v1/service.rb +2 -5
  102. data/generated/google/apis/dataflow_v1b3.rb +7 -4
  103. data/generated/google/apis/dataflow_v1b3/classes.rb +3405 -3405
  104. data/generated/google/apis/dataflow_v1b3/representations.rb +834 -834
  105. data/generated/google/apis/dataflow_v1b3/service.rb +244 -244
  106. data/generated/google/apis/dataproc_v1.rb +1 -1
  107. data/generated/google/apis/dataproc_v1/classes.rb +543 -691
  108. data/generated/google/apis/dataproc_v1/representations.rb +129 -185
  109. data/generated/google/apis/dataproc_v1/service.rb +347 -347
  110. data/generated/google/apis/datastore_v1.rb +4 -4
  111. data/generated/google/apis/datastore_v1/classes.rb +833 -833
  112. data/generated/google/apis/datastore_v1/representations.rb +182 -182
  113. data/generated/google/apis/datastore_v1/service.rb +45 -45
  114. data/generated/google/apis/deploymentmanager_v2/classes.rb +5 -5
  115. data/generated/google/apis/deploymentmanager_v2/representations.rb +10 -10
  116. data/generated/google/apis/deploymentmanager_v2/service.rb +20 -20
  117. data/generated/google/apis/discovery_v1/classes.rb +4 -4
  118. data/generated/google/apis/discovery_v1/representations.rb +2 -2
  119. data/generated/google/apis/discovery_v1/service.rb +1 -1
  120. data/generated/google/apis/dns_v1.rb +1 -1
  121. data/generated/google/apis/dns_v1/classes.rb +3 -3
  122. data/generated/google/apis/dns_v1/representations.rb +6 -6
  123. data/generated/google/apis/dns_v1/service.rb +12 -12
  124. data/generated/google/apis/dns_v2beta1.rb +1 -1
  125. data/generated/google/apis/doubleclickbidmanager_v1/service.rb +8 -8
  126. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  127. data/generated/google/apis/drive_v2.rb +1 -1
  128. data/generated/google/apis/drive_v2/classes.rb +1 -1
  129. data/generated/google/apis/drive_v2/service.rb +1 -1
  130. data/generated/google/apis/drive_v3.rb +1 -1
  131. data/generated/google/apis/drive_v3/service.rb +1 -1
  132. data/generated/google/apis/firebasedynamiclinks_v1.rb +1 -1
  133. data/generated/google/apis/firebasedynamiclinks_v1/classes.rb +160 -110
  134. data/generated/google/apis/firebasedynamiclinks_v1/representations.rb +60 -31
  135. data/generated/google/apis/firebasedynamiclinks_v1/service.rb +38 -3
  136. data/generated/google/apis/firebaserules_v1/classes.rb +354 -354
  137. data/generated/google/apis/firebaserules_v1/representations.rb +87 -87
  138. data/generated/google/apis/firebaserules_v1/service.rb +103 -103
  139. data/generated/google/apis/fusiontables_v2/service.rb +2 -2
  140. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  141. data/generated/google/apis/games_configuration_v1configuration/classes.rb +2 -2
  142. data/generated/google/apis/games_configuration_v1configuration/representations.rb +4 -4
  143. data/generated/google/apis/games_configuration_v1configuration/service.rb +8 -8
  144. data/generated/google/apis/games_management_v1management.rb +1 -1
  145. data/generated/google/apis/games_v1.rb +1 -1
  146. data/generated/google/apis/games_v1/classes.rb +23 -23
  147. data/generated/google/apis/games_v1/representations.rb +43 -43
  148. data/generated/google/apis/games_v1/service.rb +72 -72
  149. data/generated/google/apis/genomics_v1.rb +1 -1
  150. data/generated/google/apis/genomics_v1/classes.rb +2316 -2316
  151. data/generated/google/apis/genomics_v1/representations.rb +291 -291
  152. data/generated/google/apis/genomics_v1/service.rb +821 -821
  153. data/generated/google/apis/gmail_v1.rb +1 -1
  154. data/generated/google/apis/groupsmigration_v1.rb +1 -1
  155. data/generated/google/apis/groupssettings_v1.rb +1 -1
  156. data/generated/google/apis/groupssettings_v1/classes.rb +2 -2
  157. data/generated/google/apis/groupssettings_v1/service.rb +3 -0
  158. data/generated/google/apis/iam_v1/classes.rb +338 -338
  159. data/generated/google/apis/iam_v1/representations.rb +98 -98
  160. data/generated/google/apis/iam_v1/service.rb +35 -35
  161. data/generated/google/apis/identitytoolkit_v3/classes.rb +15 -15
  162. data/generated/google/apis/identitytoolkit_v3/representations.rb +30 -30
  163. data/generated/google/apis/identitytoolkit_v3/service.rb +64 -64
  164. data/generated/google/apis/kgsearch_v1/service.rb +13 -13
  165. data/generated/google/apis/language_v1.rb +1 -1
  166. data/generated/google/apis/language_v1/classes.rb +374 -374
  167. data/generated/google/apis/language_v1/representations.rb +97 -97
  168. data/generated/google/apis/language_v1/service.rb +16 -16
  169. data/generated/google/apis/language_v1beta1.rb +1 -1
  170. data/generated/google/apis/language_v1beta1/classes.rb +441 -441
  171. data/generated/google/apis/language_v1beta1/representations.rb +108 -108
  172. data/generated/google/apis/language_v1beta1/service.rb +30 -30
  173. data/generated/google/apis/licensing_v1/service.rb +2 -2
  174. data/generated/google/apis/logging_v2.rb +1 -1
  175. data/generated/google/apis/logging_v2/classes.rb +712 -712
  176. data/generated/google/apis/logging_v2/representations.rb +109 -109
  177. data/generated/google/apis/logging_v2/service.rb +543 -539
  178. data/generated/google/apis/logging_v2beta1.rb +1 -1
  179. data/generated/google/apis/logging_v2beta1/classes.rb +752 -752
  180. data/generated/google/apis/logging_v2beta1/representations.rb +94 -94
  181. data/generated/google/apis/logging_v2beta1/service.rb +257 -256
  182. data/generated/google/apis/manufacturers_v1/classes.rb +130 -130
  183. data/generated/google/apis/manufacturers_v1/representations.rb +28 -28
  184. data/generated/google/apis/mirror_v1/classes.rb +5 -5
  185. data/generated/google/apis/mirror_v1/representations.rb +10 -10
  186. data/generated/google/apis/mirror_v1/service.rb +20 -20
  187. data/generated/google/apis/ml_v1.rb +1 -1
  188. data/generated/google/apis/ml_v1/classes.rb +1830 -1210
  189. data/generated/google/apis/ml_v1/representations.rb +342 -120
  190. data/generated/google/apis/ml_v1/service.rb +365 -258
  191. data/generated/google/apis/monitoring_v3.rb +4 -4
  192. data/generated/google/apis/monitoring_v3/classes.rb +889 -889
  193. data/generated/google/apis/monitoring_v3/representations.rb +174 -174
  194. data/generated/google/apis/monitoring_v3/service.rb +119 -119
  195. data/generated/google/apis/mybusiness_v3/service.rb +5 -5
  196. data/generated/google/apis/oauth2_v2/service.rb +1 -1
  197. data/generated/google/apis/pagespeedonline_v2/classes.rb +11 -11
  198. data/generated/google/apis/pagespeedonline_v2/representations.rb +13 -13
  199. data/generated/google/apis/pagespeedonline_v2/service.rb +1 -1
  200. data/generated/google/apis/partners_v2.rb +1 -1
  201. data/generated/google/apis/partners_v2/classes.rb +550 -536
  202. data/generated/google/apis/partners_v2/representations.rb +118 -116
  203. data/generated/google/apis/partners_v2/service.rb +439 -439
  204. data/generated/google/apis/people_v1.rb +4 -4
  205. data/generated/google/apis/people_v1/classes.rb +414 -413
  206. data/generated/google/apis/people_v1/representations.rb +85 -85
  207. data/generated/google/apis/people_v1/service.rb +111 -18
  208. data/generated/google/apis/plus_domains_v1.rb +1 -1
  209. data/generated/google/apis/plus_domains_v1/service.rb +4 -4
  210. data/generated/google/apis/plus_v1.rb +1 -1
  211. data/generated/google/apis/plus_v1/service.rb +1 -1
  212. data/generated/google/apis/prediction_v1_6/service.rb +8 -8
  213. data/generated/google/apis/proximitybeacon_v1beta1.rb +1 -1
  214. data/generated/google/apis/proximitybeacon_v1beta1/classes.rb +443 -443
  215. data/generated/google/apis/proximitybeacon_v1beta1/representations.rb +92 -92
  216. data/generated/google/apis/proximitybeacon_v1beta1/service.rb +152 -152
  217. data/generated/google/apis/pubsub_v1/classes.rb +249 -249
  218. data/generated/google/apis/pubsub_v1/representations.rb +80 -80
  219. data/generated/google/apis/pubsub_v1/service.rb +415 -415
  220. data/generated/google/apis/qpx_express_v1/classes.rb +2 -2
  221. data/generated/google/apis/qpx_express_v1/representations.rb +4 -4
  222. data/generated/google/apis/qpx_express_v1/service.rb +8 -8
  223. data/generated/google/apis/replicapool_v1beta2/classes.rb +5 -5
  224. data/generated/google/apis/replicapool_v1beta2/representations.rb +10 -10
  225. data/generated/google/apis/replicapool_v1beta2/service.rb +21 -21
  226. data/generated/google/apis/replicapoolupdater_v1beta1/service.rb +1 -1
  227. data/generated/google/apis/resourceviews_v1beta2/classes.rb +5 -5
  228. data/generated/google/apis/resourceviews_v1beta2/representations.rb +10 -10
  229. data/generated/google/apis/resourceviews_v1beta2/service.rb +20 -20
  230. data/generated/google/apis/runtimeconfig_v1.rb +4 -4
  231. data/generated/google/apis/runtimeconfig_v1/classes.rb +15 -15
  232. data/generated/google/apis/runtimeconfig_v1/representations.rb +2 -2
  233. data/generated/google/apis/runtimeconfig_v1/service.rb +4 -4
  234. data/generated/google/apis/script_v1.rb +17 -17
  235. data/generated/google/apis/script_v1/classes.rb +27 -27
  236. data/generated/google/apis/script_v1/representations.rb +5 -5
  237. data/generated/google/apis/script_v1/service.rb +4 -4
  238. data/generated/google/apis/searchconsole_v1.rb +1 -1
  239. data/generated/google/apis/searchconsole_v1/classes.rb +53 -53
  240. data/generated/google/apis/searchconsole_v1/representations.rb +23 -23
  241. data/generated/google/apis/searchconsole_v1/service.rb +4 -4
  242. data/generated/google/apis/servicecontrol_v1.rb +1 -1
  243. data/generated/google/apis/servicecontrol_v1/classes.rb +1175 -1175
  244. data/generated/google/apis/servicecontrol_v1/representations.rb +206 -206
  245. data/generated/google/apis/servicecontrol_v1/service.rb +116 -116
  246. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  247. data/generated/google/apis/servicemanagement_v1/classes.rb +1186 -1125
  248. data/generated/google/apis/servicemanagement_v1/representations.rb +241 -223
  249. data/generated/google/apis/servicemanagement_v1/service.rb +201 -201
  250. data/generated/google/apis/serviceuser_v1.rb +1 -1
  251. data/generated/google/apis/serviceuser_v1/classes.rb +2645 -2641
  252. data/generated/google/apis/serviceuser_v1/representations.rb +234 -234
  253. data/generated/google/apis/serviceuser_v1/service.rb +37 -37
  254. data/generated/google/apis/sheets_v4.rb +1 -1
  255. data/generated/google/apis/sheets_v4/classes.rb +5042 -4111
  256. data/generated/google/apis/sheets_v4/representations.rb +994 -824
  257. data/generated/google/apis/sheets_v4/service.rb +80 -80
  258. data/generated/google/apis/site_verification_v1/classes.rb +6 -6
  259. data/generated/google/apis/site_verification_v1/representations.rb +8 -8
  260. data/generated/google/apis/site_verification_v1/service.rb +12 -12
  261. data/generated/google/apis/slides_v1.rb +1 -1
  262. data/generated/google/apis/slides_v1/classes.rb +2885 -2885
  263. data/generated/google/apis/slides_v1/representations.rb +310 -310
  264. data/generated/google/apis/slides_v1/service.rb +54 -54
  265. data/generated/google/apis/sourcerepo_v1/classes.rb +206 -206
  266. data/generated/google/apis/sourcerepo_v1/representations.rb +52 -52
  267. data/generated/google/apis/sourcerepo_v1/service.rb +5 -5
  268. data/generated/google/apis/spanner_v1.rb +1 -1
  269. data/generated/google/apis/spanner_v1/classes.rb +2142 -2141
  270. data/generated/google/apis/spanner_v1/representations.rb +174 -174
  271. data/generated/google/apis/spanner_v1/service.rb +497 -497
  272. data/generated/google/apis/speech_v1beta1.rb +1 -1
  273. data/generated/google/apis/speech_v1beta1/classes.rb +227 -227
  274. data/generated/google/apis/speech_v1beta1/representations.rb +50 -50
  275. data/generated/google/apis/speech_v1beta1/service.rb +33 -33
  276. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  277. data/generated/google/apis/sqladmin_v1beta4/classes.rb +21 -21
  278. data/generated/google/apis/sqladmin_v1beta4/representations.rb +29 -29
  279. data/generated/google/apis/sqladmin_v1beta4/service.rb +56 -56
  280. data/generated/google/apis/storage_v1.rb +1 -1
  281. data/generated/google/apis/storage_v1/classes.rb +40 -6
  282. data/generated/google/apis/storage_v1/representations.rb +20 -4
  283. data/generated/google/apis/storage_v1/service.rb +61 -46
  284. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  285. data/generated/google/apis/storagetransfer_v1/classes.rb +184 -184
  286. data/generated/google/apis/storagetransfer_v1/representations.rb +35 -35
  287. data/generated/google/apis/storagetransfer_v1/service.rb +70 -70
  288. data/generated/google/apis/tagmanager_v1/service.rb +33 -33
  289. data/generated/google/apis/toolresults_v1beta3.rb +1 -1
  290. data/generated/google/apis/translate_v2/classes.rb +12 -12
  291. data/generated/google/apis/translate_v2/representations.rb +10 -10
  292. data/generated/google/apis/translate_v2/service.rb +62 -62
  293. data/generated/google/apis/vision_v1.rb +1 -1
  294. data/generated/google/apis/vision_v1/classes.rb +1267 -1267
  295. data/generated/google/apis/vision_v1/representations.rb +200 -200
  296. data/generated/google/apis/vision_v1/service.rb +10 -10
  297. data/generated/google/apis/webmasters_v3.rb +1 -1
  298. data/generated/google/apis/webmasters_v3/classes.rb +4 -4
  299. data/generated/google/apis/webmasters_v3/representations.rb +8 -8
  300. data/generated/google/apis/webmasters_v3/service.rb +21 -21
  301. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  302. data/generated/google/apis/youtube_analytics_v1/classes.rb +2 -2
  303. data/generated/google/apis/youtube_analytics_v1/representations.rb +4 -4
  304. data/generated/google/apis/youtube_analytics_v1/service.rb +8 -8
  305. data/generated/google/apis/youtube_v3/classes.rb +20 -20
  306. data/generated/google/apis/youtube_v3/representations.rb +40 -40
  307. data/generated/google/apis/youtube_v3/service.rb +80 -80
  308. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  309. data/generated/google/apis/youtubereporting_v1/classes.rb +129 -129
  310. data/generated/google/apis/youtubereporting_v1/representations.rb +38 -38
  311. data/generated/google/apis/youtubereporting_v1/service.rb +97 -97
  312. data/lib/google/apis/generator/annotator.rb +2 -2
  313. data/lib/google/apis/generator/model.rb +2 -2
  314. data/lib/google/apis/version.rb +1 -1
  315. metadata +2 -2
@@ -22,80 +22,19 @@ module Google
22
22
  module Apis
23
23
  module AnalyticsreportingV4
24
24
 
25
- # The data part of the report.
26
- class ReportData
25
+ # The headers for each of the pivot sections defined in the request.
26
+ class PivotHeader
27
27
  include Google::Apis::Core::Hashable
28
28
 
29
- # Indicates if response to this request is golden or not. Data is
30
- # golden when the exact same request will not produce any new results if
31
- # asked at a later point in time.
32
- # Corresponds to the JSON property `isDataGolden`
33
- # @return [Boolean]
34
- attr_accessor :is_data_golden
35
- alias_method :is_data_golden?, :is_data_golden
36
-
37
- # There's one ReportRow for every unique combination of dimensions.
38
- # Corresponds to the JSON property `rows`
39
- # @return [Array<Google::Apis::AnalyticsreportingV4::ReportRow>]
40
- attr_accessor :rows
29
+ # A single pivot section header.
30
+ # Corresponds to the JSON property `pivotHeaderEntries`
31
+ # @return [Array<Google::Apis::AnalyticsreportingV4::PivotHeaderEntry>]
32
+ attr_accessor :pivot_header_entries
41
33
 
42
- # Total number of matching rows for this query.
43
- # Corresponds to the JSON property `rowCount`
34
+ # The total number of groups for this pivot.
35
+ # Corresponds to the JSON property `totalPivotGroupsCount`
44
36
  # @return [Fixnum]
45
- attr_accessor :row_count
46
-
47
- # The last time the data in the report was refreshed. All the hits received
48
- # before this timestamp are included in the calculation of the report.
49
- # Corresponds to the JSON property `dataLastRefreshed`
50
- # @return [String]
51
- attr_accessor :data_last_refreshed
52
-
53
- # Minimum and maximum values seen over all matching rows. These are both
54
- # empty when `hideValueRanges` in the request is false, or when
55
- # rowCount is zero.
56
- # Corresponds to the JSON property `maximums`
57
- # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
58
- attr_accessor :maximums
59
-
60
- # Minimum and maximum values seen over all matching rows. These are both
61
- # empty when `hideValueRanges` in the request is false, or when
62
- # rowCount is zero.
63
- # Corresponds to the JSON property `minimums`
64
- # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
65
- attr_accessor :minimums
66
-
67
- # If the results are
68
- # [sampled](https://support.google.com/analytics/answer/2637192),
69
- # this returns the total number of
70
- # samples present, one entry per date range. If the results are not sampled
71
- # this field will not be defined. See
72
- # [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)
73
- # for details.
74
- # Corresponds to the JSON property `samplingSpaceSizes`
75
- # @return [Array<Fixnum>]
76
- attr_accessor :sampling_space_sizes
77
-
78
- # For each requested date range, for the set of all rows that match
79
- # the query, every requested value format gets a total. The total
80
- # for a value format is computed by first totaling the metrics
81
- # mentioned in the value format and then evaluating the value
82
- # format as a scalar expression. E.g., The "totals" for
83
- # `3 / (ga:sessions + 2)` we compute
84
- # `3 / ((sum of all relevant ga:sessions) + 2)`.
85
- # Totals are computed before pagination.
86
- # Corresponds to the JSON property `totals`
87
- # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
88
- attr_accessor :totals
89
-
90
- # If the results are
91
- # [sampled](https://support.google.com/analytics/answer/2637192),
92
- # this returns the total number of samples read, one entry per date range.
93
- # If the results are not sampled this field will not be defined. See
94
- # [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)
95
- # for details.
96
- # Corresponds to the JSON property `samplesReadCounts`
97
- # @return [Array<Fixnum>]
98
- attr_accessor :samples_read_counts
37
+ attr_accessor :total_pivot_groups_count
99
38
 
100
39
  def initialize(**args)
101
40
  update!(**args)
@@ -103,52 +42,26 @@ module Google
103
42
 
104
43
  # Update properties of this object
105
44
  def update!(**args)
106
- @is_data_golden = args[:is_data_golden] if args.key?(:is_data_golden)
107
- @rows = args[:rows] if args.key?(:rows)
108
- @row_count = args[:row_count] if args.key?(:row_count)
109
- @data_last_refreshed = args[:data_last_refreshed] if args.key?(:data_last_refreshed)
110
- @maximums = args[:maximums] if args.key?(:maximums)
111
- @minimums = args[:minimums] if args.key?(:minimums)
112
- @sampling_space_sizes = args[:sampling_space_sizes] if args.key?(:sampling_space_sizes)
113
- @totals = args[:totals] if args.key?(:totals)
114
- @samples_read_counts = args[:samples_read_counts] if args.key?(:samples_read_counts)
45
+ @pivot_header_entries = args[:pivot_header_entries] if args.key?(:pivot_header_entries)
46
+ @total_pivot_groups_count = args[:total_pivot_groups_count] if args.key?(:total_pivot_groups_count)
115
47
  end
116
48
  end
117
49
 
118
- # Dimension filter specifies the filtering options on a dimension.
119
- class DimensionFilter
50
+ # A contiguous set of days: startDate, startDate + 1 day, ..., endDate.
51
+ # The start and end dates are specified in
52
+ # [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.
53
+ class DateRange
120
54
  include Google::Apis::Core::Hashable
121
55
 
122
- # The dimension to filter on. A DimensionFilter must contain a dimension.
123
- # Corresponds to the JSON property `dimensionName`
56
+ # The start date for the query in the format `YYYY-MM-DD`.
57
+ # Corresponds to the JSON property `startDate`
124
58
  # @return [String]
125
- attr_accessor :dimension_name
59
+ attr_accessor :start_date
126
60
 
127
- # How to match the dimension to the expression. The default is REGEXP.
128
- # Corresponds to the JSON property `operator`
61
+ # The end date for the query in the format `YYYY-MM-DD`.
62
+ # Corresponds to the JSON property `endDate`
129
63
  # @return [String]
130
- attr_accessor :operator
131
-
132
- # Logical `NOT` operator. If this boolean is set to true, then the matching
133
- # dimension values will be excluded in the report. The default is false.
134
- # Corresponds to the JSON property `not`
135
- # @return [Boolean]
136
- attr_accessor :not
137
- alias_method :not?, :not
138
-
139
- # Strings or regular expression to match against. Only the first value of
140
- # the list is used for comparison unless the operator is `IN_LIST`.
141
- # If `IN_LIST` operator, then the entire list is used to filter the
142
- # dimensions as explained in the description of the `IN_LIST` operator.
143
- # Corresponds to the JSON property `expressions`
144
- # @return [Array<String>]
145
- attr_accessor :expressions
146
-
147
- # Should the match be case sensitive? Default is false.
148
- # Corresponds to the JSON property `caseSensitive`
149
- # @return [Boolean]
150
- attr_accessor :case_sensitive
151
- alias_method :case_sensitive?, :case_sensitive
64
+ attr_accessor :end_date
152
65
 
153
66
  def initialize(**args)
154
67
  update!(**args)
@@ -156,48 +69,41 @@ module Google
156
69
 
157
70
  # Update properties of this object
158
71
  def update!(**args)
159
- @dimension_name = args[:dimension_name] if args.key?(:dimension_name)
160
- @operator = args[:operator] if args.key?(:operator)
161
- @not = args[:not] if args.key?(:not)
162
- @expressions = args[:expressions] if args.key?(:expressions)
163
- @case_sensitive = args[:case_sensitive] if args.key?(:case_sensitive)
72
+ @start_date = args[:start_date] if args.key?(:start_date)
73
+ @end_date = args[:end_date] if args.key?(:end_date)
164
74
  end
165
75
  end
166
76
 
167
- # Dimension filter specifies the filtering options on a dimension.
168
- class SegmentDimensionFilter
77
+ # MetricFilter specifies the filter on a metric.
78
+ class MetricFilter
169
79
  include Google::Apis::Core::Hashable
170
80
 
171
- # Should the match be case sensitive, ignored for `IN_LIST` operator.
172
- # Corresponds to the JSON property `caseSensitive`
173
- # @return [Boolean]
174
- attr_accessor :case_sensitive
175
- alias_method :case_sensitive?, :case_sensitive
176
-
177
- # Minimum comparison values for `BETWEEN` match type.
178
- # Corresponds to the JSON property `minComparisonValue`
179
- # @return [String]
180
- attr_accessor :min_comparison_value
181
-
182
- # Maximum comparison values for `BETWEEN` match type.
183
- # Corresponds to the JSON property `maxComparisonValue`
81
+ # The metric that will be filtered on. A metricFilter must contain a metric
82
+ # name. A metric name can be an alias earlier defined as a metric or it can
83
+ # also be a metric expression.
84
+ # Corresponds to the JSON property `metricName`
184
85
  # @return [String]
185
- attr_accessor :max_comparison_value
86
+ attr_accessor :metric_name
186
87
 
187
- # Name of the dimension for which the filter is being applied.
188
- # Corresponds to the JSON property `dimensionName`
88
+ # The value to compare against.
89
+ # Corresponds to the JSON property `comparisonValue`
189
90
  # @return [String]
190
- attr_accessor :dimension_name
91
+ attr_accessor :comparison_value
191
92
 
192
- # The operator to use to match the dimension with the expressions.
93
+ # Is the metric `EQUAL`, `LESS_THAN` or `GREATER_THAN` the
94
+ # comparisonValue, the default is `EQUAL`. If the operator is
95
+ # `IS_MISSING`, checks if the metric is missing and would ignore the
96
+ # comparisonValue.
193
97
  # Corresponds to the JSON property `operator`
194
98
  # @return [String]
195
99
  attr_accessor :operator
196
100
 
197
- # The list of expressions, only the first element is used for all operators
198
- # Corresponds to the JSON property `expressions`
199
- # @return [Array<String>]
200
- attr_accessor :expressions
101
+ # Logical `NOT` operator. If this boolean is set to true, then the matching
102
+ # metric values will be excluded in the report. The default is false.
103
+ # Corresponds to the JSON property `not`
104
+ # @return [Boolean]
105
+ attr_accessor :not
106
+ alias_method :not?, :not
201
107
 
202
108
  def initialize(**args)
203
109
  update!(**args)
@@ -205,65 +111,171 @@ module Google
205
111
 
206
112
  # Update properties of this object
207
113
  def update!(**args)
208
- @case_sensitive = args[:case_sensitive] if args.key?(:case_sensitive)
209
- @min_comparison_value = args[:min_comparison_value] if args.key?(:min_comparison_value)
210
- @max_comparison_value = args[:max_comparison_value] if args.key?(:max_comparison_value)
211
- @dimension_name = args[:dimension_name] if args.key?(:dimension_name)
114
+ @metric_name = args[:metric_name] if args.key?(:metric_name)
115
+ @comparison_value = args[:comparison_value] if args.key?(:comparison_value)
212
116
  @operator = args[:operator] if args.key?(:operator)
213
- @expressions = args[:expressions] if args.key?(:expressions)
117
+ @not = args[:not] if args.key?(:not)
214
118
  end
215
119
  end
216
120
 
217
- # Specifies the sorting options.
218
- class OrderBy
121
+ # The main request class which specifies the Reporting API request.
122
+ class ReportRequest
219
123
  include Google::Apis::Core::Hashable
220
124
 
221
- # The sorting order for the field.
222
- # Corresponds to the JSON property `sortOrder`
223
- # @return [String]
224
- attr_accessor :sort_order
225
-
226
- # The field which to sort by. The default sort order is ascending. Example:
227
- # `ga:browser`.
228
- # Note, that you can only specify one field for sort here. For example,
229
- # `ga:browser, ga:city` is not valid.
230
- # Corresponds to the JSON property `fieldName`
231
- # @return [String]
232
- attr_accessor :field_name
233
-
234
- # The order type. The default orderType is `VALUE`.
235
- # Corresponds to the JSON property `orderType`
236
- # @return [String]
237
- attr_accessor :order_type
125
+ # The metric filter clauses. They are logically combined with the `AND`
126
+ # operator. Metric filters look at only the first date range and not the
127
+ # comparing date range. Note that filtering on metrics occurs after the
128
+ # metrics are aggregated.
129
+ # Corresponds to the JSON property `metricFilterClauses`
130
+ # @return [Array<Google::Apis::AnalyticsreportingV4::MetricFilterClause>]
131
+ attr_accessor :metric_filter_clauses
238
132
 
239
- def initialize(**args)
240
- update!(**args)
241
- end
133
+ # Page size is for paging and specifies the maximum number of returned rows.
134
+ # Page size should be >= 0. A query returns the default of 1,000 rows.
135
+ # The Analytics Core Reporting API returns a maximum of 10,000 rows per
136
+ # request, no matter how many you ask for. It can also return fewer rows
137
+ # than requested, if there aren't as many dimension segments as you expect.
138
+ # For instance, there are fewer than 300 possible values for `ga:country`,
139
+ # so when segmenting only by country, you can't get more than 300 rows,
140
+ # even if you set `pageSize` to a higher value.
141
+ # Corresponds to the JSON property `pageSize`
142
+ # @return [Fixnum]
143
+ attr_accessor :page_size
242
144
 
243
- # Update properties of this object
244
- def update!(**args)
245
- @sort_order = args[:sort_order] if args.key?(:sort_order)
246
- @field_name = args[:field_name] if args.key?(:field_name)
247
- @order_type = args[:order_type] if args.key?(:order_type)
248
- end
249
- end
145
+ # If set to true, hides the total of all metrics for all the matching rows,
146
+ # for every date range. The default false and will return the totals.
147
+ # Corresponds to the JSON property `hideTotals`
148
+ # @return [Boolean]
149
+ attr_accessor :hide_totals
150
+ alias_method :hide_totals?, :hide_totals
250
151
 
251
- # The segment definition, if the report needs to be segmented.
252
- # A Segment is a subset of the Analytics data. For example, of the entire
253
- # set of users, one Segment might be users from a particular country or city.
254
- class Segment
255
- include Google::Apis::Core::Hashable
152
+ # If set to true, hides the minimum and maximum across all matching rows.
153
+ # The default is false and the value ranges are returned.
154
+ # Corresponds to the JSON property `hideValueRanges`
155
+ # @return [Boolean]
156
+ attr_accessor :hide_value_ranges
157
+ alias_method :hide_value_ranges?, :hide_value_ranges
256
158
 
257
- # Dynamic segment definition for defining the segment within the request.
258
- # A segment can select users, sessions or both.
259
- # Corresponds to the JSON property `dynamicSegment`
260
- # @return [Google::Apis::AnalyticsreportingV4::DynamicSegment]
261
- attr_accessor :dynamic_segment
159
+ # Defines a cohort group.
160
+ # For example:
161
+ # "cohortGroup": `
162
+ # "cohorts": [`
163
+ # "name": "cohort 1",
164
+ # "type": "FIRST_VISIT_DATE",
165
+ # "dateRange": ` "startDate": "2015-08-01", "endDate": "2015-08-01" `
166
+ # `,`
167
+ # "name": "cohort 2"
168
+ # "type": "FIRST_VISIT_DATE"
169
+ # "dateRange": ` "startDate": "2015-07-01", "endDate": "2015-07-01" `
170
+ # `]
171
+ # `
172
+ # Corresponds to the JSON property `cohortGroup`
173
+ # @return [Google::Apis::AnalyticsreportingV4::CohortGroup]
174
+ attr_accessor :cohort_group
262
175
 
263
- # The segment ID of a built-in or custom segment, for example `gaid::-3`.
264
- # Corresponds to the JSON property `segmentId`
176
+ # Dimension or metric filters that restrict the data returned for your
177
+ # request. To use the `filtersExpression`, supply a dimension or metric on
178
+ # which to filter, followed by the filter expression. For example, the
179
+ # following expression selects `ga:browser` dimension which starts with
180
+ # Firefox; `ga:browser=~^Firefox`. For more information on dimensions
181
+ # and metric filters, see
182
+ # [Filters reference](https://developers.google.com/analytics/devguides/
183
+ # reporting/core/v3/reference#filters).
184
+ # Corresponds to the JSON property `filtersExpression`
265
185
  # @return [String]
266
- attr_accessor :segment_id
186
+ attr_accessor :filters_expression
187
+
188
+ # The Analytics
189
+ # [view ID](https://support.google.com/analytics/answer/1009618)
190
+ # from which to retrieve data. Every [ReportRequest](#ReportRequest)
191
+ # within a `batchGet` method must contain the same `viewId`.
192
+ # Corresponds to the JSON property `viewId`
193
+ # @return [String]
194
+ attr_accessor :view_id
195
+
196
+ # The metrics requested.
197
+ # Requests must specify at least one metric. Requests can have a
198
+ # total of 10 metrics.
199
+ # Corresponds to the JSON property `metrics`
200
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Metric>]
201
+ attr_accessor :metrics
202
+
203
+ # The dimension filter clauses for filtering Dimension Values. They are
204
+ # logically combined with the `AND` operator. Note that filtering occurs
205
+ # before any dimensions are aggregated, so that the returned metrics
206
+ # represent the total for only the relevant dimensions.
207
+ # Corresponds to the JSON property `dimensionFilterClauses`
208
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DimensionFilterClause>]
209
+ attr_accessor :dimension_filter_clauses
210
+
211
+ # Sort order on output rows. To compare two rows, the elements of the
212
+ # following are applied in order until a difference is found. All date
213
+ # ranges in the output get the same row order.
214
+ # Corresponds to the JSON property `orderBys`
215
+ # @return [Array<Google::Apis::AnalyticsreportingV4::OrderBy>]
216
+ attr_accessor :order_bys
217
+
218
+ # Segment the data returned for the request. A segment definition helps look
219
+ # at a subset of the segment request. A request can contain up to four
220
+ # segments. Every [ReportRequest](#ReportRequest) within a
221
+ # `batchGet` method must contain the same `segments` definition. Requests
222
+ # with segments must have the `ga:segment` dimension.
223
+ # Corresponds to the JSON property `segments`
224
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Segment>]
225
+ attr_accessor :segments
226
+
227
+ # The desired report
228
+ # [sample](https://support.google.com/analytics/answer/2637192) size.
229
+ # If the the `samplingLevel` field is unspecified the `DEFAULT` sampling
230
+ # level is used. Every [ReportRequest](#ReportRequest) within a
231
+ # `batchGet` method must contain the same `samplingLevel` definition. See
232
+ # [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)
233
+ # for details.
234
+ # Corresponds to the JSON property `samplingLevel`
235
+ # @return [String]
236
+ attr_accessor :sampling_level
237
+
238
+ # The dimensions requested.
239
+ # Requests can have a total of 7 dimensions.
240
+ # Corresponds to the JSON property `dimensions`
241
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Dimension>]
242
+ attr_accessor :dimensions
243
+
244
+ # Date ranges in the request. The request can have a maximum of 2 date
245
+ # ranges. The response will contain a set of metric values for each
246
+ # combination of the dimensions for each date range in the request. So, if
247
+ # there are two date ranges, there will be two set of metric values, one for
248
+ # the original date range and one for the second date range.
249
+ # The `reportRequest.dateRanges` field should not be specified for cohorts
250
+ # or Lifetime value requests.
251
+ # If a date range is not provided, the default date range is (startDate:
252
+ # current date - 7 days, endDate: current date - 1 day). Every
253
+ # [ReportRequest](#ReportRequest) within a `batchGet` method must
254
+ # contain the same `dateRanges` definition.
255
+ # Corresponds to the JSON property `dateRanges`
256
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DateRange>]
257
+ attr_accessor :date_ranges
258
+
259
+ # A continuation token to get the next page of the results. Adding this to
260
+ # the request will return the rows after the pageToken. The pageToken should
261
+ # be the value returned in the nextPageToken parameter in the response to
262
+ # the GetReports request.
263
+ # Corresponds to the JSON property `pageToken`
264
+ # @return [String]
265
+ attr_accessor :page_token
266
+
267
+ # The pivot definitions. Requests can have a maximum of 2 pivots.
268
+ # Corresponds to the JSON property `pivots`
269
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Pivot>]
270
+ attr_accessor :pivots
271
+
272
+ # If set to false, the response does not include rows if all the retrieved
273
+ # metrics are equal to zero. The default is false which will exclude these
274
+ # rows.
275
+ # Corresponds to the JSON property `includeEmptyRows`
276
+ # @return [Boolean]
277
+ attr_accessor :include_empty_rows
278
+ alias_method :include_empty_rows?, :include_empty_rows
267
279
 
268
280
  def initialize(**args)
269
281
  update!(**args)
@@ -271,27 +283,89 @@ module Google
271
283
 
272
284
  # Update properties of this object
273
285
  def update!(**args)
274
- @dynamic_segment = args[:dynamic_segment] if args.key?(:dynamic_segment)
275
- @segment_id = args[:segment_id] if args.key?(:segment_id)
286
+ @metric_filter_clauses = args[:metric_filter_clauses] if args.key?(:metric_filter_clauses)
287
+ @page_size = args[:page_size] if args.key?(:page_size)
288
+ @hide_totals = args[:hide_totals] if args.key?(:hide_totals)
289
+ @hide_value_ranges = args[:hide_value_ranges] if args.key?(:hide_value_ranges)
290
+ @cohort_group = args[:cohort_group] if args.key?(:cohort_group)
291
+ @filters_expression = args[:filters_expression] if args.key?(:filters_expression)
292
+ @view_id = args[:view_id] if args.key?(:view_id)
293
+ @metrics = args[:metrics] if args.key?(:metrics)
294
+ @dimension_filter_clauses = args[:dimension_filter_clauses] if args.key?(:dimension_filter_clauses)
295
+ @order_bys = args[:order_bys] if args.key?(:order_bys)
296
+ @segments = args[:segments] if args.key?(:segments)
297
+ @sampling_level = args[:sampling_level] if args.key?(:sampling_level)
298
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
299
+ @date_ranges = args[:date_ranges] if args.key?(:date_ranges)
300
+ @page_token = args[:page_token] if args.key?(:page_token)
301
+ @pivots = args[:pivots] if args.key?(:pivots)
302
+ @include_empty_rows = args[:include_empty_rows] if args.key?(:include_empty_rows)
276
303
  end
277
304
  end
278
305
 
279
- # A segment sequence definition.
280
- class SegmentSequenceStep
306
+ # [Dimensions](https://support.google.com/analytics/answer/1033861)
307
+ # are attributes of your data. For example, the dimension `ga:city`
308
+ # indicates the city, for example, "Paris" or "New York", from which
309
+ # a session originates.
310
+ class Dimension
281
311
  include Google::Apis::Core::Hashable
282
312
 
283
- # A sequence is specified with a list of Or grouped filters which are
284
- # combined with `AND` operator.
313
+ # If non-empty, we place dimension values into buckets after string to
314
+ # int64. Dimension values that are not the string representation of an
315
+ # integral value will be converted to zero. The bucket values have to be in
316
+ # increasing order. Each bucket is closed on the lower end, and open on the
317
+ # upper end. The "first" bucket includes all values less than the first
318
+ # boundary, the "last" bucket includes all values up to infinity. Dimension
319
+ # values that fall in a bucket get transformed to a new dimension value. For
320
+ # example, if one gives a list of "0, 1, 3, 4, 7", then we return the
321
+ # following buckets:
322
+ # - bucket #1: values < 0, dimension value "<0"
323
+ # - bucket #2: values in [0,1), dimension value "0"
324
+ # - bucket #3: values in [1,3), dimension value "1-2"
325
+ # - bucket #4: values in [3,4), dimension value "3"
326
+ # - bucket #5: values in [4,7), dimension value "4-6"
327
+ # - bucket #6: values >= 7, dimension value "7+"
328
+ # NOTE: If you are applying histogram mutation on any dimension, and using
329
+ # that dimension in sort, you will want to use the sort type
330
+ # `HISTOGRAM_BUCKET` for that purpose. Without that the dimension values
331
+ # will be sorted according to dictionary
332
+ # (lexicographic) order. For example the ascending dictionary order is:
333
+ # "<50", "1001+", "121-1000", "50-120"
334
+ # And the ascending `HISTOGRAM_BUCKET` order is:
335
+ # "<50", "50-120", "121-1000", "1001+"
336
+ # The client has to explicitly request `"orderType": "HISTOGRAM_BUCKET"`
337
+ # for a histogram-mutated dimension.
338
+ # Corresponds to the JSON property `histogramBuckets`
339
+ # @return [Array<Fixnum>]
340
+ attr_accessor :histogram_buckets
341
+
342
+ # Name of the dimension to fetch, for example `ga:browser`.
343
+ # Corresponds to the JSON property `name`
344
+ # @return [String]
345
+ attr_accessor :name
346
+
347
+ def initialize(**args)
348
+ update!(**args)
349
+ end
350
+
351
+ # Update properties of this object
352
+ def update!(**args)
353
+ @histogram_buckets = args[:histogram_buckets] if args.key?(:histogram_buckets)
354
+ @name = args[:name] if args.key?(:name)
355
+ end
356
+ end
357
+
358
+ # A Simple segment conditions consist of one or more dimension/metric
359
+ # conditions that can be combined.
360
+ class SimpleSegment
361
+ include Google::Apis::Core::Hashable
362
+
363
+ # A list of segment filters groups which are combined with logical `AND`
364
+ # operator.
285
365
  # Corresponds to the JSON property `orFiltersForSegment`
286
366
  # @return [Array<Google::Apis::AnalyticsreportingV4::OrFiltersForSegment>]
287
367
  attr_accessor :or_filters_for_segment
288
368
 
289
- # Specifies if the step immediately precedes or can be any time before the
290
- # next step.
291
- # Corresponds to the JSON property `matchType`
292
- # @return [String]
293
- attr_accessor :match_type
294
-
295
369
  def initialize(**args)
296
370
  update!(**args)
297
371
  end
@@ -299,42 +373,30 @@ module Google
299
373
  # Update properties of this object
300
374
  def update!(**args)
301
375
  @or_filters_for_segment = args[:or_filters_for_segment] if args.key?(:or_filters_for_segment)
302
- @match_type = args[:match_type] if args.key?(:match_type)
303
376
  end
304
377
  end
305
378
 
306
- # [Metrics](https://support.google.com/analytics/answer/1033861)
307
- # are the quantitative measurements. For example, the metric `ga:users`
308
- # indicates the total number of users for the requested time period.
309
- class Metric
379
+ # Dynamic segment definition for defining the segment within the request.
380
+ # A segment can select users, sessions or both.
381
+ class DynamicSegment
310
382
  include Google::Apis::Core::Hashable
311
383
 
312
- # Specifies how the metric expression should be formatted, for example
313
- # `INTEGER`.
314
- # Corresponds to the JSON property `formattingType`
315
- # @return [String]
316
- attr_accessor :formatting_type
384
+ # SegmentDefinition defines the segment to be a set of SegmentFilters which
385
+ # are combined together with a logical `AND` operation.
386
+ # Corresponds to the JSON property `sessionSegment`
387
+ # @return [Google::Apis::AnalyticsreportingV4::SegmentDefinition]
388
+ attr_accessor :session_segment
317
389
 
318
- # An alias for the metric expression is an alternate name for the
319
- # expression. The alias can be used for filtering and sorting. This field
320
- # is optional and is useful if the expression is not a single metric but
321
- # a complex expression which cannot be used in filtering and sorting.
322
- # The alias is also used in the response column header.
323
- # Corresponds to the JSON property `alias`
390
+ # The name of the dynamic segment.
391
+ # Corresponds to the JSON property `name`
324
392
  # @return [String]
325
- attr_accessor :alias
393
+ attr_accessor :name
326
394
 
327
- # A metric expression in the request. An expression is constructed from one
328
- # or more metrics and numbers. Accepted operators include: Plus (+), Minus
329
- # (-), Negation (Unary -), Divided by (/), Multiplied by (*), Parenthesis,
330
- # Positive cardinal numbers (0-9), can include decimals and is limited to
331
- # 1024 characters. Example `ga:totalRefunds/ga:users`, in most cases the
332
- # metric expression is just a single metric name like `ga:users`.
333
- # Adding mixed `MetricType` (E.g., `CURRENCY` + `PERCENTAGE`) metrics
334
- # will result in unexpected results.
335
- # Corresponds to the JSON property `expression`
336
- # @return [String]
337
- attr_accessor :expression
395
+ # SegmentDefinition defines the segment to be a set of SegmentFilters which
396
+ # are combined together with a logical `AND` operation.
397
+ # Corresponds to the JSON property `userSegment`
398
+ # @return [Google::Apis::AnalyticsreportingV4::SegmentDefinition]
399
+ attr_accessor :user_segment
338
400
 
339
401
  def initialize(**args)
340
402
  update!(**args)
@@ -342,20 +404,25 @@ module Google
342
404
 
343
405
  # Update properties of this object
344
406
  def update!(**args)
345
- @formatting_type = args[:formatting_type] if args.key?(:formatting_type)
346
- @alias = args[:alias] if args.key?(:alias)
347
- @expression = args[:expression] if args.key?(:expression)
407
+ @session_segment = args[:session_segment] if args.key?(:session_segment)
408
+ @name = args[:name] if args.key?(:name)
409
+ @user_segment = args[:user_segment] if args.key?(:user_segment)
348
410
  end
349
411
  end
350
412
 
351
- # The metric values in the pivot region.
352
- class PivotValueRegion
413
+ # Column headers.
414
+ class ColumnHeader
353
415
  include Google::Apis::Core::Hashable
354
416
 
355
- # The values of the metrics in each of the pivot regions.
356
- # Corresponds to the JSON property `values`
417
+ # The dimension names in the response.
418
+ # Corresponds to the JSON property `dimensions`
357
419
  # @return [Array<String>]
358
- attr_accessor :values
420
+ attr_accessor :dimensions
421
+
422
+ # The headers for the metrics.
423
+ # Corresponds to the JSON property `metricHeader`
424
+ # @return [Google::Apis::AnalyticsreportingV4::MetricHeader]
425
+ attr_accessor :metric_header
359
426
 
360
427
  def initialize(**args)
361
428
  update!(**args)
@@ -363,28 +430,69 @@ module Google
363
430
 
364
431
  # Update properties of this object
365
432
  def update!(**args)
366
- @values = args[:values] if args.key?(:values)
433
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
434
+ @metric_header = args[:metric_header] if args.key?(:metric_header)
367
435
  end
368
436
  end
369
437
 
370
- # The data response corresponding to the request.
371
- class Report
438
+ # Filter Clause to be used in a segment definition, can be wither a metric or
439
+ # a dimension filter.
440
+ class SegmentFilterClause
372
441
  include Google::Apis::Core::Hashable
373
442
 
374
- # The data part of the report.
375
- # Corresponds to the JSON property `data`
376
- # @return [Google::Apis::AnalyticsreportingV4::ReportData]
377
- attr_accessor :data
443
+ # Matches the complement (`!`) of the filter.
444
+ # Corresponds to the JSON property `not`
445
+ # @return [Boolean]
446
+ attr_accessor :not
447
+ alias_method :not?, :not
378
448
 
379
- # Page token to retrieve the next page of results in the list.
380
- # Corresponds to the JSON property `nextPageToken`
449
+ # Dimension filter specifies the filtering options on a dimension.
450
+ # Corresponds to the JSON property `dimensionFilter`
451
+ # @return [Google::Apis::AnalyticsreportingV4::SegmentDimensionFilter]
452
+ attr_accessor :dimension_filter
453
+
454
+ # Metric filter to be used in a segment filter clause.
455
+ # Corresponds to the JSON property `metricFilter`
456
+ # @return [Google::Apis::AnalyticsreportingV4::SegmentMetricFilter]
457
+ attr_accessor :metric_filter
458
+
459
+ def initialize(**args)
460
+ update!(**args)
461
+ end
462
+
463
+ # Update properties of this object
464
+ def update!(**args)
465
+ @not = args[:not] if args.key?(:not)
466
+ @dimension_filter = args[:dimension_filter] if args.key?(:dimension_filter)
467
+ @metric_filter = args[:metric_filter] if args.key?(:metric_filter)
468
+ end
469
+ end
470
+
471
+ # Defines a cohort. A cohort is a group of users who share a common
472
+ # characteristic. For example, all users with the same acquisition date
473
+ # belong to the same cohort.
474
+ class Cohort
475
+ include Google::Apis::Core::Hashable
476
+
477
+ # A unique name for the cohort. If not defined name will be auto-generated
478
+ # with values cohort_[1234...].
479
+ # Corresponds to the JSON property `name`
381
480
  # @return [String]
382
- attr_accessor :next_page_token
481
+ attr_accessor :name
383
482
 
384
- # Column headers.
385
- # Corresponds to the JSON property `columnHeader`
386
- # @return [Google::Apis::AnalyticsreportingV4::ColumnHeader]
387
- attr_accessor :column_header
483
+ # A contiguous set of days: startDate, startDate + 1 day, ..., endDate.
484
+ # The start and end dates are specified in
485
+ # [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.
486
+ # Corresponds to the JSON property `dateRange`
487
+ # @return [Google::Apis::AnalyticsreportingV4::DateRange]
488
+ attr_accessor :date_range
489
+
490
+ # Type of the cohort. The only supported type as of now is
491
+ # `FIRST_VISIT_DATE`. If this field is unspecified the cohort is treated
492
+ # as `FIRST_VISIT_DATE` type cohort.
493
+ # Corresponds to the JSON property `type`
494
+ # @return [String]
495
+ attr_accessor :type
388
496
 
389
497
  def initialize(**args)
390
498
  update!(**args)
@@ -392,25 +500,25 @@ module Google
392
500
 
393
501
  # Update properties of this object
394
502
  def update!(**args)
395
- @data = args[:data] if args.key?(:data)
396
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
397
- @column_header = args[:column_header] if args.key?(:column_header)
503
+ @name = args[:name] if args.key?(:name)
504
+ @date_range = args[:date_range] if args.key?(:date_range)
505
+ @type = args[:type] if args.key?(:type)
398
506
  end
399
507
  end
400
508
 
401
- # The headers for each of the pivot sections defined in the request.
402
- class PivotHeader
509
+ # A row in the report.
510
+ class ReportRow
403
511
  include Google::Apis::Core::Hashable
404
512
 
405
- # A single pivot section header.
406
- # Corresponds to the JSON property `pivotHeaderEntries`
407
- # @return [Array<Google::Apis::AnalyticsreportingV4::PivotHeaderEntry>]
408
- attr_accessor :pivot_header_entries
513
+ # List of metrics for each requested DateRange.
514
+ # Corresponds to the JSON property `metrics`
515
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
516
+ attr_accessor :metrics
409
517
 
410
- # The total number of groups for this pivot.
411
- # Corresponds to the JSON property `totalPivotGroupsCount`
412
- # @return [Fixnum]
413
- attr_accessor :total_pivot_groups_count
518
+ # List of requested dimensions.
519
+ # Corresponds to the JSON property `dimensions`
520
+ # @return [Array<String>]
521
+ attr_accessor :dimensions
414
522
 
415
523
  def initialize(**args)
416
524
  update!(**args)
@@ -418,26 +526,27 @@ module Google
418
526
 
419
527
  # Update properties of this object
420
528
  def update!(**args)
421
- @pivot_header_entries = args[:pivot_header_entries] if args.key?(:pivot_header_entries)
422
- @total_pivot_groups_count = args[:total_pivot_groups_count] if args.key?(:total_pivot_groups_count)
529
+ @metrics = args[:metrics] if args.key?(:metrics)
530
+ @dimensions = args[:dimensions] if args.key?(:dimensions)
423
531
  end
424
532
  end
425
533
 
426
- # A contiguous set of days: startDate, startDate + 1 day, ..., endDate.
427
- # The start and end dates are specified in
428
- # [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.
429
- class DateRange
534
+ # Represents a group of metric filters.
535
+ # Set the operator value to specify how the filters are logically combined.
536
+ class MetricFilterClause
430
537
  include Google::Apis::Core::Hashable
431
538
 
432
- # The start date for the query in the format `YYYY-MM-DD`.
433
- # Corresponds to the JSON property `startDate`
539
+ # The operator for combining multiple metric filters. If unspecified, it is
540
+ # treated as an `OR`.
541
+ # Corresponds to the JSON property `operator`
434
542
  # @return [String]
435
- attr_accessor :start_date
543
+ attr_accessor :operator
436
544
 
437
- # The end date for the query in the format `YYYY-MM-DD`.
438
- # Corresponds to the JSON property `endDate`
439
- # @return [String]
440
- attr_accessor :end_date
545
+ # The repeated set of filters. They are logically combined based on the
546
+ # operator specified.
547
+ # Corresponds to the JSON property `filters`
548
+ # @return [Array<Google::Apis::AnalyticsreportingV4::MetricFilter>]
549
+ attr_accessor :filters
441
550
 
442
551
  def initialize(**args)
443
552
  update!(**args)
@@ -445,41 +554,20 @@ module Google
445
554
 
446
555
  # Update properties of this object
447
556
  def update!(**args)
448
- @start_date = args[:start_date] if args.key?(:start_date)
449
- @end_date = args[:end_date] if args.key?(:end_date)
557
+ @operator = args[:operator] if args.key?(:operator)
558
+ @filters = args[:filters] if args.key?(:filters)
450
559
  end
451
560
  end
452
561
 
453
- # MetricFilter specifies the filter on a metric.
454
- class MetricFilter
562
+ # A list of segment filters in the `OR` group are combined with the logical OR
563
+ # operator.
564
+ class OrFiltersForSegment
455
565
  include Google::Apis::Core::Hashable
456
566
 
457
- # The metric that will be filtered on. A metricFilter must contain a metric
458
- # name. A metric name can be an alias earlier defined as a metric or it can
459
- # also be a metric expression.
460
- # Corresponds to the JSON property `metricName`
461
- # @return [String]
462
- attr_accessor :metric_name
463
-
464
- # The value to compare against.
465
- # Corresponds to the JSON property `comparisonValue`
466
- # @return [String]
467
- attr_accessor :comparison_value
468
-
469
- # Is the metric `EQUAL`, `LESS_THAN` or `GREATER_THAN` the
470
- # comparisonValue, the default is `EQUAL`. If the operator is
471
- # `IS_MISSING`, checks if the metric is missing and would ignore the
472
- # comparisonValue.
473
- # Corresponds to the JSON property `operator`
474
- # @return [String]
475
- attr_accessor :operator
476
-
477
- # Logical `NOT` operator. If this boolean is set to true, then the matching
478
- # metric values will be excluded in the report. The default is false.
479
- # Corresponds to the JSON property `not`
480
- # @return [Boolean]
481
- attr_accessor :not
482
- alias_method :not?, :not
567
+ # List of segment filters to be combined with a `OR` operator.
568
+ # Corresponds to the JSON property `segmentFilterClauses`
569
+ # @return [Array<Google::Apis::AnalyticsreportingV4::SegmentFilterClause>]
570
+ attr_accessor :segment_filter_clauses
483
571
 
484
572
  def initialize(**args)
485
573
  update!(**args)
@@ -487,171 +575,23 @@ module Google
487
575
 
488
576
  # Update properties of this object
489
577
  def update!(**args)
490
- @metric_name = args[:metric_name] if args.key?(:metric_name)
491
- @comparison_value = args[:comparison_value] if args.key?(:comparison_value)
492
- @operator = args[:operator] if args.key?(:operator)
493
- @not = args[:not] if args.key?(:not)
578
+ @segment_filter_clauses = args[:segment_filter_clauses] if args.key?(:segment_filter_clauses)
494
579
  end
495
580
  end
496
581
 
497
- # The main request class which specifies the Reporting API request.
498
- class ReportRequest
582
+ # The headers for the metrics.
583
+ class MetricHeader
499
584
  include Google::Apis::Core::Hashable
500
585
 
501
- # The metric filter clauses. They are logically combined with the `AND`
502
- # operator. Metric filters look at only the first date range and not the
503
- # comparing date range. Note that filtering on metrics occurs after the
504
- # metrics are aggregated.
505
- # Corresponds to the JSON property `metricFilterClauses`
506
- # @return [Array<Google::Apis::AnalyticsreportingV4::MetricFilterClause>]
507
- attr_accessor :metric_filter_clauses
508
-
509
- # Page size is for paging and specifies the maximum number of returned rows.
510
- # Page size should be >= 0. A query returns the default of 1,000 rows.
511
- # The Analytics Core Reporting API returns a maximum of 10,000 rows per
512
- # request, no matter how many you ask for. It can also return fewer rows
513
- # than requested, if there aren't as many dimension segments as you expect.
514
- # For instance, there are fewer than 300 possible values for `ga:country`,
515
- # so when segmenting only by country, you can't get more than 300 rows,
516
- # even if you set `pageSize` to a higher value.
517
- # Corresponds to the JSON property `pageSize`
518
- # @return [Fixnum]
519
- attr_accessor :page_size
520
-
521
- # If set to true, hides the total of all metrics for all the matching rows,
522
- # for every date range. The default false and will return the totals.
523
- # Corresponds to the JSON property `hideTotals`
524
- # @return [Boolean]
525
- attr_accessor :hide_totals
526
- alias_method :hide_totals?, :hide_totals
527
-
528
- # If set to true, hides the minimum and maximum across all matching rows.
529
- # The default is false and the value ranges are returned.
530
- # Corresponds to the JSON property `hideValueRanges`
531
- # @return [Boolean]
532
- attr_accessor :hide_value_ranges
533
- alias_method :hide_value_ranges?, :hide_value_ranges
534
-
535
- # Dimension or metric filters that restrict the data returned for your
536
- # request. To use the `filtersExpression`, supply a dimension or metric on
537
- # which to filter, followed by the filter expression. For example, the
538
- # following expression selects `ga:browser` dimension which starts with
539
- # Firefox; `ga:browser=~^Firefox`. For more information on dimensions
540
- # and metric filters, see
541
- # [Filters reference](https://developers.google.com/analytics/devguides/
542
- # reporting/core/v3/reference#filters).
543
- # Corresponds to the JSON property `filtersExpression`
544
- # @return [String]
545
- attr_accessor :filters_expression
546
-
547
- # Defines a cohort group.
548
- # For example:
549
- # "cohortGroup": `
550
- # "cohorts": [`
551
- # "name": "cohort 1",
552
- # "type": "FIRST_VISIT_DATE",
553
- # "dateRange": ` "startDate": "2015-08-01", "endDate": "2015-08-01" `
554
- # `,`
555
- # "name": "cohort 2"
556
- # "type": "FIRST_VISIT_DATE"
557
- # "dateRange": ` "startDate": "2015-07-01", "endDate": "2015-07-01" `
558
- # `]
559
- # `
560
- # Corresponds to the JSON property `cohortGroup`
561
- # @return [Google::Apis::AnalyticsreportingV4::CohortGroup]
562
- attr_accessor :cohort_group
563
-
564
- # The Analytics
565
- # [view ID](https://support.google.com/analytics/answer/1009618)
566
- # from which to retrieve data. Every [ReportRequest](#ReportRequest)
567
- # within a `batchGet` method must contain the same `viewId`.
568
- # Corresponds to the JSON property `viewId`
569
- # @return [String]
570
- attr_accessor :view_id
571
-
572
- # The metrics requested.
573
- # Requests must specify at least one metric. Requests can have a
574
- # total of 10 metrics.
575
- # Corresponds to the JSON property `metrics`
576
- # @return [Array<Google::Apis::AnalyticsreportingV4::Metric>]
577
- attr_accessor :metrics
578
-
579
- # The dimension filter clauses for filtering Dimension Values. They are
580
- # logically combined with the `AND` operator. Note that filtering occurs
581
- # before any dimensions are aggregated, so that the returned metrics
582
- # represent the total for only the relevant dimensions.
583
- # Corresponds to the JSON property `dimensionFilterClauses`
584
- # @return [Array<Google::Apis::AnalyticsreportingV4::DimensionFilterClause>]
585
- attr_accessor :dimension_filter_clauses
586
-
587
- # Sort order on output rows. To compare two rows, the elements of the
588
- # following are applied in order until a difference is found. All date
589
- # ranges in the output get the same row order.
590
- # Corresponds to the JSON property `orderBys`
591
- # @return [Array<Google::Apis::AnalyticsreportingV4::OrderBy>]
592
- attr_accessor :order_bys
593
-
594
- # Segment the data returned for the request. A segment definition helps look
595
- # at a subset of the segment request. A request can contain up to four
596
- # segments. Every [ReportRequest](#ReportRequest) within a
597
- # `batchGet` method must contain the same `segments` definition. Requests
598
- # with segments must have the `ga:segment` dimension.
599
- # Corresponds to the JSON property `segments`
600
- # @return [Array<Google::Apis::AnalyticsreportingV4::Segment>]
601
- attr_accessor :segments
602
-
603
- # The desired report
604
- # [sample](https://support.google.com/analytics/answer/2637192) size.
605
- # If the the `samplingLevel` field is unspecified the `DEFAULT` sampling
606
- # level is used. Every [ReportRequest](#ReportRequest) within a
607
- # `batchGet` method must contain the same `samplingLevel` definition. See
608
- # [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)
609
- # for details.
610
- # Corresponds to the JSON property `samplingLevel`
611
- # @return [String]
612
- attr_accessor :sampling_level
613
-
614
- # The dimensions requested.
615
- # Requests can have a total of 7 dimensions.
616
- # Corresponds to the JSON property `dimensions`
617
- # @return [Array<Google::Apis::AnalyticsreportingV4::Dimension>]
618
- attr_accessor :dimensions
619
-
620
- # A continuation token to get the next page of the results. Adding this to
621
- # the request will return the rows after the pageToken. The pageToken should
622
- # be the value returned in the nextPageToken parameter in the response to
623
- # the GetReports request.
624
- # Corresponds to the JSON property `pageToken`
625
- # @return [String]
626
- attr_accessor :page_token
627
-
628
- # Date ranges in the request. The request can have a maximum of 2 date
629
- # ranges. The response will contain a set of metric values for each
630
- # combination of the dimensions for each date range in the request. So, if
631
- # there are two date ranges, there will be two set of metric values, one for
632
- # the original date range and one for the second date range.
633
- # The `reportRequest.dateRanges` field should not be specified for cohorts
634
- # or Lifetime value requests.
635
- # If a date range is not provided, the default date range is (startDate:
636
- # current date - 7 days, endDate: current date - 1 day). Every
637
- # [ReportRequest](#ReportRequest) within a `batchGet` method must
638
- # contain the same `dateRanges` definition.
639
- # Corresponds to the JSON property `dateRanges`
640
- # @return [Array<Google::Apis::AnalyticsreportingV4::DateRange>]
641
- attr_accessor :date_ranges
642
-
643
- # The pivot definitions. Requests can have a maximum of 2 pivots.
644
- # Corresponds to the JSON property `pivots`
645
- # @return [Array<Google::Apis::AnalyticsreportingV4::Pivot>]
646
- attr_accessor :pivots
586
+ # Headers for the pivots in the response.
587
+ # Corresponds to the JSON property `pivotHeaders`
588
+ # @return [Array<Google::Apis::AnalyticsreportingV4::PivotHeader>]
589
+ attr_accessor :pivot_headers
647
590
 
648
- # If set to false, the response does not include rows if all the retrieved
649
- # metrics are equal to zero. The default is false which will exclude these
650
- # rows.
651
- # Corresponds to the JSON property `includeEmptyRows`
652
- # @return [Boolean]
653
- attr_accessor :include_empty_rows
654
- alias_method :include_empty_rows?, :include_empty_rows
591
+ # Headers for the metrics in the response.
592
+ # Corresponds to the JSON property `metricHeaderEntries`
593
+ # @return [Array<Google::Apis::AnalyticsreportingV4::MetricHeaderEntry>]
594
+ attr_accessor :metric_header_entries
655
595
 
656
596
  def initialize(**args)
657
597
  update!(**args)
@@ -659,66 +599,27 @@ module Google
659
599
 
660
600
  # Update properties of this object
661
601
  def update!(**args)
662
- @metric_filter_clauses = args[:metric_filter_clauses] if args.key?(:metric_filter_clauses)
663
- @page_size = args[:page_size] if args.key?(:page_size)
664
- @hide_totals = args[:hide_totals] if args.key?(:hide_totals)
665
- @hide_value_ranges = args[:hide_value_ranges] if args.key?(:hide_value_ranges)
666
- @filters_expression = args[:filters_expression] if args.key?(:filters_expression)
667
- @cohort_group = args[:cohort_group] if args.key?(:cohort_group)
668
- @view_id = args[:view_id] if args.key?(:view_id)
669
- @metrics = args[:metrics] if args.key?(:metrics)
670
- @dimension_filter_clauses = args[:dimension_filter_clauses] if args.key?(:dimension_filter_clauses)
671
- @order_bys = args[:order_bys] if args.key?(:order_bys)
672
- @segments = args[:segments] if args.key?(:segments)
673
- @sampling_level = args[:sampling_level] if args.key?(:sampling_level)
674
- @dimensions = args[:dimensions] if args.key?(:dimensions)
675
- @page_token = args[:page_token] if args.key?(:page_token)
676
- @date_ranges = args[:date_ranges] if args.key?(:date_ranges)
677
- @pivots = args[:pivots] if args.key?(:pivots)
678
- @include_empty_rows = args[:include_empty_rows] if args.key?(:include_empty_rows)
602
+ @pivot_headers = args[:pivot_headers] if args.key?(:pivot_headers)
603
+ @metric_header_entries = args[:metric_header_entries] if args.key?(:metric_header_entries)
679
604
  end
680
605
  end
681
606
 
682
- # [Dimensions](https://support.google.com/analytics/answer/1033861)
683
- # are attributes of your data. For example, the dimension `ga:city`
684
- # indicates the city, for example, "Paris" or "New York", from which
685
- # a session originates.
686
- class Dimension
607
+ # A group of dimension filters. Set the operator value to specify how
608
+ # the filters are logically combined.
609
+ class DimensionFilterClause
687
610
  include Google::Apis::Core::Hashable
688
611
 
689
- # If non-empty, we place dimension values into buckets after string to
690
- # int64. Dimension values that are not the string representation of an
691
- # integral value will be converted to zero. The bucket values have to be in
692
- # increasing order. Each bucket is closed on the lower end, and open on the
693
- # upper end. The "first" bucket includes all values less than the first
694
- # boundary, the "last" bucket includes all values up to infinity. Dimension
695
- # values that fall in a bucket get transformed to a new dimension value. For
696
- # example, if one gives a list of "0, 1, 3, 4, 7", then we return the
697
- # following buckets:
698
- # - bucket #1: values < 0, dimension value "<0"
699
- # - bucket #2: values in [0,1), dimension value "0"
700
- # - bucket #3: values in [1,3), dimension value "1-2"
701
- # - bucket #4: values in [3,4), dimension value "3"
702
- # - bucket #5: values in [4,7), dimension value "4-6"
703
- # - bucket #6: values >= 7, dimension value "7+"
704
- # NOTE: If you are applying histogram mutation on any dimension, and using
705
- # that dimension in sort, you will want to use the sort type
706
- # `HISTOGRAM_BUCKET` for that purpose. Without that the dimension values
707
- # will be sorted according to dictionary
708
- # (lexicographic) order. For example the ascending dictionary order is:
709
- # "<50", "1001+", "121-1000", "50-120"
710
- # And the ascending `HISTOGRAM_BUCKET` order is:
711
- # "<50", "50-120", "121-1000", "1001+"
712
- # The client has to explicitly request `"orderType": "HISTOGRAM_BUCKET"`
713
- # for a histogram-mutated dimension.
714
- # Corresponds to the JSON property `histogramBuckets`
715
- # @return [Array<Fixnum>]
716
- attr_accessor :histogram_buckets
717
-
718
- # Name of the dimension to fetch, for example `ga:browser`.
719
- # Corresponds to the JSON property `name`
612
+ # The operator for combining multiple dimension filters. If unspecified, it
613
+ # is treated as an `OR`.
614
+ # Corresponds to the JSON property `operator`
720
615
  # @return [String]
721
- attr_accessor :name
616
+ attr_accessor :operator
617
+
618
+ # The repeated set of filters. They are logically combined based on the
619
+ # operator specified.
620
+ # Corresponds to the JSON property `filters`
621
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DimensionFilter>]
622
+ attr_accessor :filters
722
623
 
723
624
  def initialize(**args)
724
625
  update!(**args)
@@ -726,21 +627,20 @@ module Google
726
627
 
727
628
  # Update properties of this object
728
629
  def update!(**args)
729
- @histogram_buckets = args[:histogram_buckets] if args.key?(:histogram_buckets)
730
- @name = args[:name] if args.key?(:name)
630
+ @operator = args[:operator] if args.key?(:operator)
631
+ @filters = args[:filters] if args.key?(:filters)
731
632
  end
732
633
  end
733
634
 
734
- # A Simple segment conditions consist of one or more dimension/metric
735
- # conditions that can be combined.
736
- class SimpleSegment
635
+ # The main response class which holds the reports from the Reporting API
636
+ # `batchGet` call.
637
+ class GetReportsResponse
737
638
  include Google::Apis::Core::Hashable
738
639
 
739
- # A list of segment filters groups which are combined with logical `AND`
740
- # operator.
741
- # Corresponds to the JSON property `orFiltersForSegment`
742
- # @return [Array<Google::Apis::AnalyticsreportingV4::OrFiltersForSegment>]
743
- attr_accessor :or_filters_for_segment
640
+ # Responses corresponding to each of the request.
641
+ # Corresponds to the JSON property `reports`
642
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Report>]
643
+ attr_accessor :reports
744
644
 
745
645
  def initialize(**args)
746
646
  update!(**args)
@@ -748,31 +648,73 @@ module Google
748
648
 
749
649
  # Update properties of this object
750
650
  def update!(**args)
751
- @or_filters_for_segment = args[:or_filters_for_segment] if args.key?(:or_filters_for_segment)
651
+ @reports = args[:reports] if args.key?(:reports)
752
652
  end
753
653
  end
754
654
 
755
- # Dynamic segment definition for defining the segment within the request.
756
- # A segment can select users, sessions or both.
757
- class DynamicSegment
655
+ # Sequence conditions consist of one or more steps, where each step is defined
656
+ # by one or more dimension/metric conditions. Multiple steps can be combined
657
+ # with special sequence operators.
658
+ class SequenceSegment
758
659
  include Google::Apis::Core::Hashable
759
660
 
760
- # SegmentDefinition defines the segment to be a set of SegmentFilters which
761
- # are combined together with a logical `AND` operation.
762
- # Corresponds to the JSON property `sessionSegment`
763
- # @return [Google::Apis::AnalyticsreportingV4::SegmentDefinition]
764
- attr_accessor :session_segment
661
+ # The list of steps in the sequence.
662
+ # Corresponds to the JSON property `segmentSequenceSteps`
663
+ # @return [Array<Google::Apis::AnalyticsreportingV4::SegmentSequenceStep>]
664
+ attr_accessor :segment_sequence_steps
765
665
 
766
- # The name of the dynamic segment.
767
- # Corresponds to the JSON property `name`
666
+ # If set, first step condition must match the first hit of the visitor (in
667
+ # the date range).
668
+ # Corresponds to the JSON property `firstStepShouldMatchFirstHit`
669
+ # @return [Boolean]
670
+ attr_accessor :first_step_should_match_first_hit
671
+ alias_method :first_step_should_match_first_hit?, :first_step_should_match_first_hit
672
+
673
+ def initialize(**args)
674
+ update!(**args)
675
+ end
676
+
677
+ # Update properties of this object
678
+ def update!(**args)
679
+ @segment_sequence_steps = args[:segment_sequence_steps] if args.key?(:segment_sequence_steps)
680
+ @first_step_should_match_first_hit = args[:first_step_should_match_first_hit] if args.key?(:first_step_should_match_first_hit)
681
+ end
682
+ end
683
+
684
+ # Metric filter to be used in a segment filter clause.
685
+ class SegmentMetricFilter
686
+ include Google::Apis::Core::Hashable
687
+
688
+ # The metric that will be filtered on. A `metricFilter` must contain a
689
+ # metric name.
690
+ # Corresponds to the JSON property `metricName`
768
691
  # @return [String]
769
- attr_accessor :name
692
+ attr_accessor :metric_name
770
693
 
771
- # SegmentDefinition defines the segment to be a set of SegmentFilters which
772
- # are combined together with a logical `AND` operation.
773
- # Corresponds to the JSON property `userSegment`
774
- # @return [Google::Apis::AnalyticsreportingV4::SegmentDefinition]
775
- attr_accessor :user_segment
694
+ # Scope for a metric defines the level at which that metric is defined. The
695
+ # specified metric scope must be equal to or greater than its primary scope
696
+ # as defined in the data model. The primary scope is defined by if the
697
+ # segment is selecting users or sessions.
698
+ # Corresponds to the JSON property `scope`
699
+ # @return [String]
700
+ attr_accessor :scope
701
+
702
+ # Max comparison value is only used for `BETWEEN` operator.
703
+ # Corresponds to the JSON property `maxComparisonValue`
704
+ # @return [String]
705
+ attr_accessor :max_comparison_value
706
+
707
+ # The value to compare against. If the operator is `BETWEEN`, this value is
708
+ # treated as minimum comparison value.
709
+ # Corresponds to the JSON property `comparisonValue`
710
+ # @return [String]
711
+ attr_accessor :comparison_value
712
+
713
+ # Specifies is the operation to perform to compare the metric. The default
714
+ # is `EQUAL`.
715
+ # Corresponds to the JSON property `operator`
716
+ # @return [String]
717
+ attr_accessor :operator
776
718
 
777
719
  def initialize(**args)
778
720
  update!(**args)
@@ -780,25 +722,28 @@ module Google
780
722
 
781
723
  # Update properties of this object
782
724
  def update!(**args)
783
- @session_segment = args[:session_segment] if args.key?(:session_segment)
784
- @name = args[:name] if args.key?(:name)
785
- @user_segment = args[:user_segment] if args.key?(:user_segment)
725
+ @metric_name = args[:metric_name] if args.key?(:metric_name)
726
+ @scope = args[:scope] if args.key?(:scope)
727
+ @max_comparison_value = args[:max_comparison_value] if args.key?(:max_comparison_value)
728
+ @comparison_value = args[:comparison_value] if args.key?(:comparison_value)
729
+ @operator = args[:operator] if args.key?(:operator)
786
730
  end
787
731
  end
788
732
 
789
- # Column headers.
790
- class ColumnHeader
733
+ # Used to return a list of metrics for a single DateRange / dimension
734
+ # combination
735
+ class DateRangeValues
791
736
  include Google::Apis::Core::Hashable
792
737
 
793
- # The dimension names in the response.
794
- # Corresponds to the JSON property `dimensions`
738
+ # Each value corresponds to each Metric in the request.
739
+ # Corresponds to the JSON property `values`
795
740
  # @return [Array<String>]
796
- attr_accessor :dimensions
741
+ attr_accessor :values
797
742
 
798
- # The headers for the metrics.
799
- # Corresponds to the JSON property `metricHeader`
800
- # @return [Google::Apis::AnalyticsreportingV4::MetricHeader]
801
- attr_accessor :metric_header
743
+ # The values of each pivot region.
744
+ # Corresponds to the JSON property `pivotValueRegions`
745
+ # @return [Array<Google::Apis::AnalyticsreportingV4::PivotValueRegion>]
746
+ attr_accessor :pivot_value_regions
802
747
 
803
748
  def initialize(**args)
804
749
  update!(**args)
@@ -806,31 +751,63 @@ module Google
806
751
 
807
752
  # Update properties of this object
808
753
  def update!(**args)
809
- @dimensions = args[:dimensions] if args.key?(:dimensions)
810
- @metric_header = args[:metric_header] if args.key?(:metric_header)
754
+ @values = args[:values] if args.key?(:values)
755
+ @pivot_value_regions = args[:pivot_value_regions] if args.key?(:pivot_value_regions)
811
756
  end
812
757
  end
813
758
 
814
- # Filter Clause to be used in a segment definition, can be wither a metric or
815
- # a dimension filter.
816
- class SegmentFilterClause
759
+ # Defines a cohort group.
760
+ # For example:
761
+ # "cohortGroup": `
762
+ # "cohorts": [`
763
+ # "name": "cohort 1",
764
+ # "type": "FIRST_VISIT_DATE",
765
+ # "dateRange": ` "startDate": "2015-08-01", "endDate": "2015-08-01" `
766
+ # `,`
767
+ # "name": "cohort 2"
768
+ # "type": "FIRST_VISIT_DATE"
769
+ # "dateRange": ` "startDate": "2015-07-01", "endDate": "2015-07-01" `
770
+ # `]
771
+ # `
772
+ class CohortGroup
817
773
  include Google::Apis::Core::Hashable
818
774
 
819
- # Metric filter to be used in a segment filter clause.
820
- # Corresponds to the JSON property `metricFilter`
821
- # @return [Google::Apis::AnalyticsreportingV4::SegmentMetricFilter]
822
- attr_accessor :metric_filter
823
-
824
- # Matches the complement (`!`) of the filter.
825
- # Corresponds to the JSON property `not`
775
+ # Enable Life Time Value (LTV). LTV measures lifetime value for users
776
+ # acquired through different channels.
777
+ # Please see:
778
+ # [Cohort Analysis](https://support.google.com/analytics/answer/6074676) and
779
+ # [Lifetime Value](https://support.google.com/analytics/answer/6182550)
780
+ # If the value of lifetimeValue is false:
781
+ # - The metric values are similar to the values in the web interface cohort
782
+ # report.
783
+ # - The cohort definition date ranges must be aligned to the calendar week
784
+ # and month. i.e. while requesting `ga:cohortNthWeek` the `startDate` in
785
+ # the cohort definition should be a Sunday and the `endDate` should be the
786
+ # following Saturday, and for `ga:cohortNthMonth`, the `startDate`
787
+ # should be the 1st of the month and `endDate` should be the last day
788
+ # of the month.
789
+ # When the lifetimeValue is true:
790
+ # - The metric values will correspond to the values in the web interface
791
+ # LifeTime value report.
792
+ # - The Lifetime Value report shows you how user value (Revenue) and
793
+ # engagement (Appviews, Goal Completions, Sessions, and Session Duration)
794
+ # grow during the 90 days after a user is acquired.
795
+ # - The metrics are calculated as a cumulative average per user per the time
796
+ # increment.
797
+ # - The cohort definition date ranges need not be aligned to the calendar
798
+ # week and month boundaries.
799
+ # - The `viewId` must be an
800
+ # [app view ID](https://support.google.com/analytics/answer/2649553#
801
+ # WebVersusAppViews)
802
+ # Corresponds to the JSON property `lifetimeValue`
826
803
  # @return [Boolean]
827
- attr_accessor :not
828
- alias_method :not?, :not
804
+ attr_accessor :lifetime_value
805
+ alias_method :lifetime_value?, :lifetime_value
829
806
 
830
- # Dimension filter specifies the filtering options on a dimension.
831
- # Corresponds to the JSON property `dimensionFilter`
832
- # @return [Google::Apis::AnalyticsreportingV4::SegmentDimensionFilter]
833
- attr_accessor :dimension_filter
807
+ # The definition for the cohort.
808
+ # Corresponds to the JSON property `cohorts`
809
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Cohort>]
810
+ attr_accessor :cohorts
834
811
 
835
812
  def initialize(**args)
836
813
  update!(**args)
@@ -838,37 +815,21 @@ module Google
838
815
 
839
816
  # Update properties of this object
840
817
  def update!(**args)
841
- @metric_filter = args[:metric_filter] if args.key?(:metric_filter)
842
- @not = args[:not] if args.key?(:not)
843
- @dimension_filter = args[:dimension_filter] if args.key?(:dimension_filter)
818
+ @lifetime_value = args[:lifetime_value] if args.key?(:lifetime_value)
819
+ @cohorts = args[:cohorts] if args.key?(:cohorts)
844
820
  end
845
821
  end
846
822
 
847
- # Defines a cohort. A cohort is a group of users who share a common
848
- # characteristic. For example, all users with the same acquisition date
849
- # belong to the same cohort.
850
- class Cohort
823
+ # The batch request containing multiple report request.
824
+ class GetReportsRequest
851
825
  include Google::Apis::Core::Hashable
852
826
 
853
- # A unique name for the cohort. If not defined name will be auto-generated
854
- # with values cohort_[1234...].
855
- # Corresponds to the JSON property `name`
856
- # @return [String]
857
- attr_accessor :name
858
-
859
- # A contiguous set of days: startDate, startDate + 1 day, ..., endDate.
860
- # The start and end dates are specified in
861
- # [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.
862
- # Corresponds to the JSON property `dateRange`
863
- # @return [Google::Apis::AnalyticsreportingV4::DateRange]
864
- attr_accessor :date_range
865
-
866
- # Type of the cohort. The only supported type as of now is
867
- # `FIRST_VISIT_DATE`. If this field is unspecified the cohort is treated
868
- # as `FIRST_VISIT_DATE` type cohort.
869
- # Corresponds to the JSON property `type`
870
- # @return [String]
871
- attr_accessor :type
827
+ # Requests, each request will have a separate response.
828
+ # There can be a maximum of 5 requests. All requests should have the same
829
+ # `dateRanges`, `viewId`, `segments`, `samplingLevel`, and `cohortGroup`.
830
+ # Corresponds to the JSON property `reportRequests`
831
+ # @return [Array<Google::Apis::AnalyticsreportingV4::ReportRequest>]
832
+ attr_accessor :report_requests
872
833
 
873
834
  def initialize(**args)
874
835
  update!(**args)
@@ -876,74 +837,95 @@ module Google
876
837
 
877
838
  # Update properties of this object
878
839
  def update!(**args)
879
- @name = args[:name] if args.key?(:name)
880
- @date_range = args[:date_range] if args.key?(:date_range)
881
- @type = args[:type] if args.key?(:type)
840
+ @report_requests = args[:report_requests] if args.key?(:report_requests)
882
841
  end
883
842
  end
884
843
 
885
- # A row in the report.
886
- class ReportRow
844
+ # The Pivot describes the pivot section in the request.
845
+ # The Pivot helps rearrange the information in the table for certain reports
846
+ # by pivoting your data on a second dimension.
847
+ class Pivot
887
848
  include Google::Apis::Core::Hashable
888
849
 
889
- # List of metrics for each requested DateRange.
850
+ # If k metrics were requested, then the response will contain some
851
+ # data-dependent multiple of k columns in the report. E.g., if you pivoted
852
+ # on the dimension `ga:browser` then you'd get k columns for "Firefox", k
853
+ # columns for "IE", k columns for "Chrome", etc. The ordering of the groups
854
+ # of columns is determined by descending order of "total" for the first of
855
+ # the k values. Ties are broken by lexicographic ordering of the first
856
+ # pivot dimension, then lexicographic ordering of the second pivot
857
+ # dimension, and so on. E.g., if the totals for the first value for
858
+ # Firefox, IE, and Chrome were 8, 2, 8, respectively, the order of columns
859
+ # would be Chrome, Firefox, IE.
860
+ # The following let you choose which of the groups of k columns are
861
+ # included in the response.
862
+ # Corresponds to the JSON property `startGroup`
863
+ # @return [Fixnum]
864
+ attr_accessor :start_group
865
+
866
+ # The pivot metrics. Pivot metrics are part of the
867
+ # restriction on total number of metrics allowed in the request.
890
868
  # Corresponds to the JSON property `metrics`
891
- # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
869
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Metric>]
892
870
  attr_accessor :metrics
893
871
 
894
- # List of requested dimensions.
872
+ # A list of dimensions to show as pivot columns. A Pivot can have a maximum
873
+ # of 4 dimensions. Pivot dimensions are part of the restriction on the
874
+ # total number of dimensions allowed in the request.
895
875
  # Corresponds to the JSON property `dimensions`
896
- # @return [Array<String>]
876
+ # @return [Array<Google::Apis::AnalyticsreportingV4::Dimension>]
897
877
  attr_accessor :dimensions
898
878
 
879
+ # DimensionFilterClauses are logically combined with an `AND` operator: only
880
+ # data that is included by all these DimensionFilterClauses contributes to
881
+ # the values in this pivot region. Dimension filters can be used to restrict
882
+ # the columns shown in the pivot region. For example if you have
883
+ # `ga:browser` as the requested dimension in the pivot region, and you
884
+ # specify key filters to restrict `ga:browser` to only "IE" or "Firefox",
885
+ # then only those two browsers would show up as columns.
886
+ # Corresponds to the JSON property `dimensionFilterClauses`
887
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DimensionFilterClause>]
888
+ attr_accessor :dimension_filter_clauses
889
+
890
+ # Specifies the maximum number of groups to return.
891
+ # The default value is 10, also the maximum value is 1,000.
892
+ # Corresponds to the JSON property `maxGroupCount`
893
+ # @return [Fixnum]
894
+ attr_accessor :max_group_count
895
+
899
896
  def initialize(**args)
900
897
  update!(**args)
901
898
  end
902
899
 
903
900
  # Update properties of this object
904
901
  def update!(**args)
902
+ @start_group = args[:start_group] if args.key?(:start_group)
905
903
  @metrics = args[:metrics] if args.key?(:metrics)
906
904
  @dimensions = args[:dimensions] if args.key?(:dimensions)
905
+ @dimension_filter_clauses = args[:dimension_filter_clauses] if args.key?(:dimension_filter_clauses)
906
+ @max_group_count = args[:max_group_count] if args.key?(:max_group_count)
907
907
  end
908
908
  end
909
909
 
910
- # Represents a group of metric filters.
911
- # Set the operator value to specify how the filters are logically combined.
912
- class MetricFilterClause
910
+ # The headers for the each of the metric column corresponding to the metrics
911
+ # requested in the pivots section of the response.
912
+ class PivotHeaderEntry
913
913
  include Google::Apis::Core::Hashable
914
914
 
915
- # The operator for combining multiple metric filters. If unspecified, it is
916
- # treated as an `OR`.
917
- # Corresponds to the JSON property `operator`
918
- # @return [String]
919
- attr_accessor :operator
920
-
921
- # The repeated set of filters. They are logically combined based on the
922
- # operator specified.
923
- # Corresponds to the JSON property `filters`
924
- # @return [Array<Google::Apis::AnalyticsreportingV4::MetricFilter>]
925
- attr_accessor :filters
926
-
927
- def initialize(**args)
928
- update!(**args)
929
- end
930
-
931
- # Update properties of this object
932
- def update!(**args)
933
- @operator = args[:operator] if args.key?(:operator)
934
- @filters = args[:filters] if args.key?(:filters)
935
- end
936
- end
915
+ # The name of the dimensions in the pivot response.
916
+ # Corresponds to the JSON property `dimensionNames`
917
+ # @return [Array<String>]
918
+ attr_accessor :dimension_names
937
919
 
938
- # A list of segment filters in the `OR` group are combined with the logical OR
939
- # operator.
940
- class OrFiltersForSegment
941
- include Google::Apis::Core::Hashable
920
+ # Header for the metrics.
921
+ # Corresponds to the JSON property `metric`
922
+ # @return [Google::Apis::AnalyticsreportingV4::MetricHeaderEntry]
923
+ attr_accessor :metric
942
924
 
943
- # List of segment filters to be combined with a `OR` operator.
944
- # Corresponds to the JSON property `segmentFilterClauses`
945
- # @return [Array<Google::Apis::AnalyticsreportingV4::SegmentFilterClause>]
946
- attr_accessor :segment_filter_clauses
925
+ # The values for the dimensions in the pivot.
926
+ # Corresponds to the JSON property `dimensionValues`
927
+ # @return [Array<String>]
928
+ attr_accessor :dimension_values
947
929
 
948
930
  def initialize(**args)
949
931
  update!(**args)
@@ -951,23 +933,54 @@ module Google
951
933
 
952
934
  # Update properties of this object
953
935
  def update!(**args)
954
- @segment_filter_clauses = args[:segment_filter_clauses] if args.key?(:segment_filter_clauses)
936
+ @dimension_names = args[:dimension_names] if args.key?(:dimension_names)
937
+ @metric = args[:metric] if args.key?(:metric)
938
+ @dimension_values = args[:dimension_values] if args.key?(:dimension_values)
955
939
  end
956
940
  end
957
941
 
958
- # The headers for the metrics.
959
- class MetricHeader
942
+ # SegmentFilter defines the segment to be either a simple or a sequence
943
+ # segment. A simple segment condition contains dimension and metric conditions
944
+ # to select the sessions or users. A sequence segment condition can be used to
945
+ # select users or sessions based on sequential conditions.
946
+ class SegmentFilter
960
947
  include Google::Apis::Core::Hashable
961
948
 
962
- # Headers for the pivots in the response.
963
- # Corresponds to the JSON property `pivotHeaders`
964
- # @return [Array<Google::Apis::AnalyticsreportingV4::PivotHeader>]
965
- attr_accessor :pivot_headers
949
+ # If true, match the complement of simple or sequence segment.
950
+ # For example, to match all visits not from "New York", we can define the
951
+ # segment as follows:
952
+ # "sessionSegment": `
953
+ # "segmentFilters": [`
954
+ # "simpleSegment" :`
955
+ # "orFiltersForSegment": [`
956
+ # "segmentFilterClauses":[`
957
+ # "dimensionFilter": `
958
+ # "dimensionName": "ga:city",
959
+ # "expressions": ["New York"]
960
+ # `
961
+ # `]
962
+ # `]
963
+ # `,
964
+ # "not": "True"
965
+ # `]
966
+ # `,
967
+ # Corresponds to the JSON property `not`
968
+ # @return [Boolean]
969
+ attr_accessor :not
970
+ alias_method :not?, :not
966
971
 
967
- # Headers for the metrics in the response.
968
- # Corresponds to the JSON property `metricHeaderEntries`
969
- # @return [Array<Google::Apis::AnalyticsreportingV4::MetricHeaderEntry>]
970
- attr_accessor :metric_header_entries
972
+ # A Simple segment conditions consist of one or more dimension/metric
973
+ # conditions that can be combined.
974
+ # Corresponds to the JSON property `simpleSegment`
975
+ # @return [Google::Apis::AnalyticsreportingV4::SimpleSegment]
976
+ attr_accessor :simple_segment
977
+
978
+ # Sequence conditions consist of one or more steps, where each step is defined
979
+ # by one or more dimension/metric conditions. Multiple steps can be combined
980
+ # with special sequence operators.
981
+ # Corresponds to the JSON property `sequenceSegment`
982
+ # @return [Google::Apis::AnalyticsreportingV4::SequenceSegment]
983
+ attr_accessor :sequence_segment
971
984
 
972
985
  def initialize(**args)
973
986
  update!(**args)
@@ -975,27 +988,22 @@ module Google
975
988
 
976
989
  # Update properties of this object
977
990
  def update!(**args)
978
- @pivot_headers = args[:pivot_headers] if args.key?(:pivot_headers)
979
- @metric_header_entries = args[:metric_header_entries] if args.key?(:metric_header_entries)
991
+ @not = args[:not] if args.key?(:not)
992
+ @simple_segment = args[:simple_segment] if args.key?(:simple_segment)
993
+ @sequence_segment = args[:sequence_segment] if args.key?(:sequence_segment)
980
994
  end
981
995
  end
982
996
 
983
- # A group of dimension filters. Set the operator value to specify how
984
- # the filters are logically combined.
985
- class DimensionFilterClause
997
+ # SegmentDefinition defines the segment to be a set of SegmentFilters which
998
+ # are combined together with a logical `AND` operation.
999
+ class SegmentDefinition
986
1000
  include Google::Apis::Core::Hashable
987
1001
 
988
- # The operator for combining multiple dimension filters. If unspecified, it
989
- # is treated as an `OR`.
990
- # Corresponds to the JSON property `operator`
991
- # @return [String]
992
- attr_accessor :operator
993
-
994
- # The repeated set of filters. They are logically combined based on the
995
- # operator specified.
996
- # Corresponds to the JSON property `filters`
997
- # @return [Array<Google::Apis::AnalyticsreportingV4::DimensionFilter>]
998
- attr_accessor :filters
1002
+ # A segment is defined by a set of segment filters which are combined
1003
+ # together with a logical `AND` operation.
1004
+ # Corresponds to the JSON property `segmentFilters`
1005
+ # @return [Array<Google::Apis::AnalyticsreportingV4::SegmentFilter>]
1006
+ attr_accessor :segment_filters
999
1007
 
1000
1008
  def initialize(**args)
1001
1009
  update!(**args)
@@ -1003,20 +1011,23 @@ module Google
1003
1011
 
1004
1012
  # Update properties of this object
1005
1013
  def update!(**args)
1006
- @operator = args[:operator] if args.key?(:operator)
1007
- @filters = args[:filters] if args.key?(:filters)
1014
+ @segment_filters = args[:segment_filters] if args.key?(:segment_filters)
1008
1015
  end
1009
1016
  end
1010
1017
 
1011
- # The main response class which holds the reports from the Reporting API
1012
- # `batchGet` call.
1013
- class GetReportsResponse
1018
+ # Header for the metrics.
1019
+ class MetricHeaderEntry
1014
1020
  include Google::Apis::Core::Hashable
1015
1021
 
1016
- # Responses corresponding to each of the request.
1017
- # Corresponds to the JSON property `reports`
1018
- # @return [Array<Google::Apis::AnalyticsreportingV4::Report>]
1019
- attr_accessor :reports
1022
+ # The name of the header.
1023
+ # Corresponds to the JSON property `name`
1024
+ # @return [String]
1025
+ attr_accessor :name
1026
+
1027
+ # The type of the metric, for example `INTEGER`.
1028
+ # Corresponds to the JSON property `type`
1029
+ # @return [String]
1030
+ attr_accessor :type
1020
1031
 
1021
1032
  def initialize(**args)
1022
1033
  update!(**args)
@@ -1024,27 +1035,85 @@ module Google
1024
1035
 
1025
1036
  # Update properties of this object
1026
1037
  def update!(**args)
1027
- @reports = args[:reports] if args.key?(:reports)
1038
+ @name = args[:name] if args.key?(:name)
1039
+ @type = args[:type] if args.key?(:type)
1028
1040
  end
1029
1041
  end
1030
1042
 
1031
- # Sequence conditions consist of one or more steps, where each step is defined
1032
- # by one or more dimension/metric conditions. Multiple steps can be combined
1033
- # with special sequence operators.
1034
- class SequenceSegment
1043
+ # The data part of the report.
1044
+ class ReportData
1035
1045
  include Google::Apis::Core::Hashable
1036
1046
 
1037
- # If set, first step condition must match the first hit of the visitor (in
1038
- # the date range).
1039
- # Corresponds to the JSON property `firstStepShouldMatchFirstHit`
1047
+ # If the results are
1048
+ # [sampled](https://support.google.com/analytics/answer/2637192),
1049
+ # this returns the total number of
1050
+ # samples present, one entry per date range. If the results are not sampled
1051
+ # this field will not be defined. See
1052
+ # [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)
1053
+ # for details.
1054
+ # Corresponds to the JSON property `samplingSpaceSizes`
1055
+ # @return [Array<Fixnum>]
1056
+ attr_accessor :sampling_space_sizes
1057
+
1058
+ # Minimum and maximum values seen over all matching rows. These are both
1059
+ # empty when `hideValueRanges` in the request is false, or when
1060
+ # rowCount is zero.
1061
+ # Corresponds to the JSON property `minimums`
1062
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
1063
+ attr_accessor :minimums
1064
+
1065
+ # For each requested date range, for the set of all rows that match
1066
+ # the query, every requested value format gets a total. The total
1067
+ # for a value format is computed by first totaling the metrics
1068
+ # mentioned in the value format and then evaluating the value
1069
+ # format as a scalar expression. E.g., The "totals" for
1070
+ # `3 / (ga:sessions + 2)` we compute
1071
+ # `3 / ((sum of all relevant ga:sessions) + 2)`.
1072
+ # Totals are computed before pagination.
1073
+ # Corresponds to the JSON property `totals`
1074
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
1075
+ attr_accessor :totals
1076
+
1077
+ # If the results are
1078
+ # [sampled](https://support.google.com/analytics/answer/2637192),
1079
+ # this returns the total number of samples read, one entry per date range.
1080
+ # If the results are not sampled this field will not be defined. See
1081
+ # [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling)
1082
+ # for details.
1083
+ # Corresponds to the JSON property `samplesReadCounts`
1084
+ # @return [Array<Fixnum>]
1085
+ attr_accessor :samples_read_counts
1086
+
1087
+ # Total number of matching rows for this query.
1088
+ # Corresponds to the JSON property `rowCount`
1089
+ # @return [Fixnum]
1090
+ attr_accessor :row_count
1091
+
1092
+ # There's one ReportRow for every unique combination of dimensions.
1093
+ # Corresponds to the JSON property `rows`
1094
+ # @return [Array<Google::Apis::AnalyticsreportingV4::ReportRow>]
1095
+ attr_accessor :rows
1096
+
1097
+ # Indicates if response to this request is golden or not. Data is
1098
+ # golden when the exact same request will not produce any new results if
1099
+ # asked at a later point in time.
1100
+ # Corresponds to the JSON property `isDataGolden`
1040
1101
  # @return [Boolean]
1041
- attr_accessor :first_step_should_match_first_hit
1042
- alias_method :first_step_should_match_first_hit?, :first_step_should_match_first_hit
1102
+ attr_accessor :is_data_golden
1103
+ alias_method :is_data_golden?, :is_data_golden
1043
1104
 
1044
- # The list of steps in the sequence.
1045
- # Corresponds to the JSON property `segmentSequenceSteps`
1046
- # @return [Array<Google::Apis::AnalyticsreportingV4::SegmentSequenceStep>]
1047
- attr_accessor :segment_sequence_steps
1105
+ # The last time the data in the report was refreshed. All the hits received
1106
+ # before this timestamp are included in the calculation of the report.
1107
+ # Corresponds to the JSON property `dataLastRefreshed`
1108
+ # @return [String]
1109
+ attr_accessor :data_last_refreshed
1110
+
1111
+ # Minimum and maximum values seen over all matching rows. These are both
1112
+ # empty when `hideValueRanges` in the request is false, or when
1113
+ # rowCount is zero.
1114
+ # Corresponds to the JSON property `maximums`
1115
+ # @return [Array<Google::Apis::AnalyticsreportingV4::DateRangeValues>]
1116
+ attr_accessor :maximums
1048
1117
 
1049
1118
  def initialize(**args)
1050
1119
  update!(**args)
@@ -1052,45 +1121,52 @@ module Google
1052
1121
 
1053
1122
  # Update properties of this object
1054
1123
  def update!(**args)
1055
- @first_step_should_match_first_hit = args[:first_step_should_match_first_hit] if args.key?(:first_step_should_match_first_hit)
1056
- @segment_sequence_steps = args[:segment_sequence_steps] if args.key?(:segment_sequence_steps)
1124
+ @sampling_space_sizes = args[:sampling_space_sizes] if args.key?(:sampling_space_sizes)
1125
+ @minimums = args[:minimums] if args.key?(:minimums)
1126
+ @totals = args[:totals] if args.key?(:totals)
1127
+ @samples_read_counts = args[:samples_read_counts] if args.key?(:samples_read_counts)
1128
+ @row_count = args[:row_count] if args.key?(:row_count)
1129
+ @rows = args[:rows] if args.key?(:rows)
1130
+ @is_data_golden = args[:is_data_golden] if args.key?(:is_data_golden)
1131
+ @data_last_refreshed = args[:data_last_refreshed] if args.key?(:data_last_refreshed)
1132
+ @maximums = args[:maximums] if args.key?(:maximums)
1057
1133
  end
1058
1134
  end
1059
1135
 
1060
- # Metric filter to be used in a segment filter clause.
1061
- class SegmentMetricFilter
1136
+ # Dimension filter specifies the filtering options on a dimension.
1137
+ class DimensionFilter
1062
1138
  include Google::Apis::Core::Hashable
1063
1139
 
1064
- # The metric that will be filtered on. A `metricFilter` must contain a
1065
- # metric name.
1066
- # Corresponds to the JSON property `metricName`
1140
+ # The dimension to filter on. A DimensionFilter must contain a dimension.
1141
+ # Corresponds to the JSON property `dimensionName`
1067
1142
  # @return [String]
1068
- attr_accessor :metric_name
1143
+ attr_accessor :dimension_name
1069
1144
 
1070
- # Scope for a metric defines the level at which that metric is defined. The
1071
- # specified metric scope must be equal to or greater than its primary scope
1072
- # as defined in the data model. The primary scope is defined by if the
1073
- # segment is selecting users or sessions.
1074
- # Corresponds to the JSON property `scope`
1145
+ # How to match the dimension to the expression. The default is REGEXP.
1146
+ # Corresponds to the JSON property `operator`
1075
1147
  # @return [String]
1076
- attr_accessor :scope
1148
+ attr_accessor :operator
1077
1149
 
1078
- # Max comparison value is only used for `BETWEEN` operator.
1079
- # Corresponds to the JSON property `maxComparisonValue`
1080
- # @return [String]
1081
- attr_accessor :max_comparison_value
1150
+ # Logical `NOT` operator. If this boolean is set to true, then the matching
1151
+ # dimension values will be excluded in the report. The default is false.
1152
+ # Corresponds to the JSON property `not`
1153
+ # @return [Boolean]
1154
+ attr_accessor :not
1155
+ alias_method :not?, :not
1082
1156
 
1083
- # The value to compare against. If the operator is `BETWEEN`, this value is
1084
- # treated as minimum comparison value.
1085
- # Corresponds to the JSON property `comparisonValue`
1086
- # @return [String]
1087
- attr_accessor :comparison_value
1157
+ # Strings or regular expression to match against. Only the first value of
1158
+ # the list is used for comparison unless the operator is `IN_LIST`.
1159
+ # If `IN_LIST` operator, then the entire list is used to filter the
1160
+ # dimensions as explained in the description of the `IN_LIST` operator.
1161
+ # Corresponds to the JSON property `expressions`
1162
+ # @return [Array<String>]
1163
+ attr_accessor :expressions
1088
1164
 
1089
- # Specifies is the operation to perform to compare the metric. The default
1090
- # is `EQUAL`.
1091
- # Corresponds to the JSON property `operator`
1092
- # @return [String]
1093
- attr_accessor :operator
1165
+ # Should the match be case sensitive? Default is false.
1166
+ # Corresponds to the JSON property `caseSensitive`
1167
+ # @return [Boolean]
1168
+ attr_accessor :case_sensitive
1169
+ alias_method :case_sensitive?, :case_sensitive
1094
1170
 
1095
1171
  def initialize(**args)
1096
1172
  update!(**args)
@@ -1098,92 +1174,48 @@ module Google
1098
1174
 
1099
1175
  # Update properties of this object
1100
1176
  def update!(**args)
1101
- @metric_name = args[:metric_name] if args.key?(:metric_name)
1102
- @scope = args[:scope] if args.key?(:scope)
1103
- @max_comparison_value = args[:max_comparison_value] if args.key?(:max_comparison_value)
1104
- @comparison_value = args[:comparison_value] if args.key?(:comparison_value)
1177
+ @dimension_name = args[:dimension_name] if args.key?(:dimension_name)
1105
1178
  @operator = args[:operator] if args.key?(:operator)
1179
+ @not = args[:not] if args.key?(:not)
1180
+ @expressions = args[:expressions] if args.key?(:expressions)
1181
+ @case_sensitive = args[:case_sensitive] if args.key?(:case_sensitive)
1106
1182
  end
1107
1183
  end
1108
1184
 
1109
- # Used to return a list of metrics for a single DateRange / dimension
1110
- # combination
1111
- class DateRangeValues
1185
+ # Dimension filter specifies the filtering options on a dimension.
1186
+ class SegmentDimensionFilter
1112
1187
  include Google::Apis::Core::Hashable
1113
1188
 
1114
- # Each value corresponds to each Metric in the request.
1115
- # Corresponds to the JSON property `values`
1116
- # @return [Array<String>]
1117
- attr_accessor :values
1118
-
1119
- # The values of each pivot region.
1120
- # Corresponds to the JSON property `pivotValueRegions`
1121
- # @return [Array<Google::Apis::AnalyticsreportingV4::PivotValueRegion>]
1122
- attr_accessor :pivot_value_regions
1123
-
1124
- def initialize(**args)
1125
- update!(**args)
1126
- end
1189
+ # Name of the dimension for which the filter is being applied.
1190
+ # Corresponds to the JSON property `dimensionName`
1191
+ # @return [String]
1192
+ attr_accessor :dimension_name
1127
1193
 
1128
- # Update properties of this object
1129
- def update!(**args)
1130
- @values = args[:values] if args.key?(:values)
1131
- @pivot_value_regions = args[:pivot_value_regions] if args.key?(:pivot_value_regions)
1132
- end
1133
- end
1194
+ # The operator to use to match the dimension with the expressions.
1195
+ # Corresponds to the JSON property `operator`
1196
+ # @return [String]
1197
+ attr_accessor :operator
1134
1198
 
1135
- # Defines a cohort group.
1136
- # For example:
1137
- # "cohortGroup": `
1138
- # "cohorts": [`
1139
- # "name": "cohort 1",
1140
- # "type": "FIRST_VISIT_DATE",
1141
- # "dateRange": ` "startDate": "2015-08-01", "endDate": "2015-08-01" `
1142
- # `,`
1143
- # "name": "cohort 2"
1144
- # "type": "FIRST_VISIT_DATE"
1145
- # "dateRange": ` "startDate": "2015-07-01", "endDate": "2015-07-01" `
1146
- # `]
1147
- # `
1148
- class CohortGroup
1149
- include Google::Apis::Core::Hashable
1199
+ # The list of expressions, only the first element is used for all operators
1200
+ # Corresponds to the JSON property `expressions`
1201
+ # @return [Array<String>]
1202
+ attr_accessor :expressions
1150
1203
 
1151
- # Enable Life Time Value (LTV). LTV measures lifetime value for users
1152
- # acquired through different channels.
1153
- # Please see:
1154
- # [Cohort Analysis](https://support.google.com/analytics/answer/6074676) and
1155
- # [Lifetime Value](https://support.google.com/analytics/answer/6182550)
1156
- # If the value of lifetimeValue is false:
1157
- # - The metric values are similar to the values in the web interface cohort
1158
- # report.
1159
- # - The cohort definition date ranges must be aligned to the calendar week
1160
- # and month. i.e. while requesting `ga:cohortNthWeek` the `startDate` in
1161
- # the cohort definition should be a Sunday and the `endDate` should be the
1162
- # following Saturday, and for `ga:cohortNthMonth`, the `startDate`
1163
- # should be the 1st of the month and `endDate` should be the last day
1164
- # of the month.
1165
- # When the lifetimeValue is true:
1166
- # - The metric values will correspond to the values in the web interface
1167
- # LifeTime value report.
1168
- # - The Lifetime Value report shows you how user value (Revenue) and
1169
- # engagement (Appviews, Goal Completions, Sessions, and Session Duration)
1170
- # grow during the 90 days after a user is acquired.
1171
- # - The metrics are calculated as a cumulative average per user per the time
1172
- # increment.
1173
- # - The cohort definition date ranges need not be aligned to the calendar
1174
- # week and month boundaries.
1175
- # - The `viewId` must be an
1176
- # [app view ID](https://support.google.com/analytics/answer/2649553#
1177
- # WebVersusAppViews)
1178
- # Corresponds to the JSON property `lifetimeValue`
1204
+ # Should the match be case sensitive, ignored for `IN_LIST` operator.
1205
+ # Corresponds to the JSON property `caseSensitive`
1179
1206
  # @return [Boolean]
1180
- attr_accessor :lifetime_value
1181
- alias_method :lifetime_value?, :lifetime_value
1207
+ attr_accessor :case_sensitive
1208
+ alias_method :case_sensitive?, :case_sensitive
1182
1209
 
1183
- # The definition for the cohort.
1184
- # Corresponds to the JSON property `cohorts`
1185
- # @return [Array<Google::Apis::AnalyticsreportingV4::Cohort>]
1186
- attr_accessor :cohorts
1210
+ # Minimum comparison values for `BETWEEN` match type.
1211
+ # Corresponds to the JSON property `minComparisonValue`
1212
+ # @return [String]
1213
+ attr_accessor :min_comparison_value
1214
+
1215
+ # Maximum comparison values for `BETWEEN` match type.
1216
+ # Corresponds to the JSON property `maxComparisonValue`
1217
+ # @return [String]
1218
+ attr_accessor :max_comparison_value
1187
1219
 
1188
1220
  def initialize(**args)
1189
1221
  update!(**args)
@@ -1191,21 +1223,36 @@ module Google
1191
1223
 
1192
1224
  # Update properties of this object
1193
1225
  def update!(**args)
1194
- @lifetime_value = args[:lifetime_value] if args.key?(:lifetime_value)
1195
- @cohorts = args[:cohorts] if args.key?(:cohorts)
1226
+ @dimension_name = args[:dimension_name] if args.key?(:dimension_name)
1227
+ @operator = args[:operator] if args.key?(:operator)
1228
+ @expressions = args[:expressions] if args.key?(:expressions)
1229
+ @case_sensitive = args[:case_sensitive] if args.key?(:case_sensitive)
1230
+ @min_comparison_value = args[:min_comparison_value] if args.key?(:min_comparison_value)
1231
+ @max_comparison_value = args[:max_comparison_value] if args.key?(:max_comparison_value)
1196
1232
  end
1197
1233
  end
1198
1234
 
1199
- # The batch request containing multiple report request.
1200
- class GetReportsRequest
1235
+ # Specifies the sorting options.
1236
+ class OrderBy
1201
1237
  include Google::Apis::Core::Hashable
1202
1238
 
1203
- # Requests, each request will have a separate response.
1204
- # There can be a maximum of 5 requests. All requests should have the same
1205
- # `dateRanges`, `viewId`, `segments`, `samplingLevel`, and `cohortGroup`.
1206
- # Corresponds to the JSON property `reportRequests`
1207
- # @return [Array<Google::Apis::AnalyticsreportingV4::ReportRequest>]
1208
- attr_accessor :report_requests
1239
+ # The sorting order for the field.
1240
+ # Corresponds to the JSON property `sortOrder`
1241
+ # @return [String]
1242
+ attr_accessor :sort_order
1243
+
1244
+ # The field which to sort by. The default sort order is ascending. Example:
1245
+ # `ga:browser`.
1246
+ # Note, that you can only specify one field for sort here. For example,
1247
+ # `ga:browser, ga:city` is not valid.
1248
+ # Corresponds to the JSON property `fieldName`
1249
+ # @return [String]
1250
+ attr_accessor :field_name
1251
+
1252
+ # The order type. The default orderType is `VALUE`.
1253
+ # Corresponds to the JSON property `orderType`
1254
+ # @return [String]
1255
+ attr_accessor :order_type
1209
1256
 
1210
1257
  def initialize(**args)
1211
1258
  update!(**args)
@@ -1213,61 +1260,28 @@ module Google
1213
1260
 
1214
1261
  # Update properties of this object
1215
1262
  def update!(**args)
1216
- @report_requests = args[:report_requests] if args.key?(:report_requests)
1263
+ @sort_order = args[:sort_order] if args.key?(:sort_order)
1264
+ @field_name = args[:field_name] if args.key?(:field_name)
1265
+ @order_type = args[:order_type] if args.key?(:order_type)
1217
1266
  end
1218
1267
  end
1219
1268
 
1220
- # The Pivot describes the pivot section in the request.
1221
- # The Pivot helps rearrange the information in the table for certain reports
1222
- # by pivoting your data on a second dimension.
1223
- class Pivot
1269
+ # The segment definition, if the report needs to be segmented.
1270
+ # A Segment is a subset of the Analytics data. For example, of the entire
1271
+ # set of users, one Segment might be users from a particular country or city.
1272
+ class Segment
1224
1273
  include Google::Apis::Core::Hashable
1225
1274
 
1226
- # A list of dimensions to show as pivot columns. A Pivot can have a maximum
1227
- # of 4 dimensions. Pivot dimensions are part of the restriction on the
1228
- # total number of dimensions allowed in the request.
1229
- # Corresponds to the JSON property `dimensions`
1230
- # @return [Array<Google::Apis::AnalyticsreportingV4::Dimension>]
1231
- attr_accessor :dimensions
1232
-
1233
- # DimensionFilterClauses are logically combined with an `AND` operator: only
1234
- # data that is included by all these DimensionFilterClauses contributes to
1235
- # the values in this pivot region. Dimension filters can be used to restrict
1236
- # the columns shown in the pivot region. For example if you have
1237
- # `ga:browser` as the requested dimension in the pivot region, and you
1238
- # specify key filters to restrict `ga:browser` to only "IE" or "Firefox",
1239
- # then only those two browsers would show up as columns.
1240
- # Corresponds to the JSON property `dimensionFilterClauses`
1241
- # @return [Array<Google::Apis::AnalyticsreportingV4::DimensionFilterClause>]
1242
- attr_accessor :dimension_filter_clauses
1243
-
1244
- # Specifies the maximum number of groups to return.
1245
- # The default value is 10, also the maximum value is 1,000.
1246
- # Corresponds to the JSON property `maxGroupCount`
1247
- # @return [Fixnum]
1248
- attr_accessor :max_group_count
1249
-
1250
- # If k metrics were requested, then the response will contain some
1251
- # data-dependent multiple of k columns in the report. E.g., if you pivoted
1252
- # on the dimension `ga:browser` then you'd get k columns for "Firefox", k
1253
- # columns for "IE", k columns for "Chrome", etc. The ordering of the groups
1254
- # of columns is determined by descending order of "total" for the first of
1255
- # the k values. Ties are broken by lexicographic ordering of the first
1256
- # pivot dimension, then lexicographic ordering of the second pivot
1257
- # dimension, and so on. E.g., if the totals for the first value for
1258
- # Firefox, IE, and Chrome were 8, 2, 8, respectively, the order of columns
1259
- # would be Chrome, Firefox, IE.
1260
- # The following let you choose which of the groups of k columns are
1261
- # included in the response.
1262
- # Corresponds to the JSON property `startGroup`
1263
- # @return [Fixnum]
1264
- attr_accessor :start_group
1275
+ # Dynamic segment definition for defining the segment within the request.
1276
+ # A segment can select users, sessions or both.
1277
+ # Corresponds to the JSON property `dynamicSegment`
1278
+ # @return [Google::Apis::AnalyticsreportingV4::DynamicSegment]
1279
+ attr_accessor :dynamic_segment
1265
1280
 
1266
- # The pivot metrics. Pivot metrics are part of the
1267
- # restriction on total number of metrics allowed in the request.
1268
- # Corresponds to the JSON property `metrics`
1269
- # @return [Array<Google::Apis::AnalyticsreportingV4::Metric>]
1270
- attr_accessor :metrics
1281
+ # The segment ID of a built-in or custom segment, for example `gaid::-3`.
1282
+ # Corresponds to the JSON property `segmentId`
1283
+ # @return [String]
1284
+ attr_accessor :segment_id
1271
1285
 
1272
1286
  def initialize(**args)
1273
1287
  update!(**args)
@@ -1275,33 +1289,26 @@ module Google
1275
1289
 
1276
1290
  # Update properties of this object
1277
1291
  def update!(**args)
1278
- @dimensions = args[:dimensions] if args.key?(:dimensions)
1279
- @dimension_filter_clauses = args[:dimension_filter_clauses] if args.key?(:dimension_filter_clauses)
1280
- @max_group_count = args[:max_group_count] if args.key?(:max_group_count)
1281
- @start_group = args[:start_group] if args.key?(:start_group)
1282
- @metrics = args[:metrics] if args.key?(:metrics)
1292
+ @dynamic_segment = args[:dynamic_segment] if args.key?(:dynamic_segment)
1293
+ @segment_id = args[:segment_id] if args.key?(:segment_id)
1283
1294
  end
1284
1295
  end
1285
1296
 
1286
- # The headers for the each of the metric column corresponding to the metrics
1287
- # requested in the pivots section of the response.
1288
- class PivotHeaderEntry
1297
+ # A segment sequence definition.
1298
+ class SegmentSequenceStep
1289
1299
  include Google::Apis::Core::Hashable
1290
1300
 
1291
- # The values for the dimensions in the pivot.
1292
- # Corresponds to the JSON property `dimensionValues`
1293
- # @return [Array<String>]
1294
- attr_accessor :dimension_values
1295
-
1296
- # The name of the dimensions in the pivot response.
1297
- # Corresponds to the JSON property `dimensionNames`
1298
- # @return [Array<String>]
1299
- attr_accessor :dimension_names
1301
+ # A sequence is specified with a list of Or grouped filters which are
1302
+ # combined with `AND` operator.
1303
+ # Corresponds to the JSON property `orFiltersForSegment`
1304
+ # @return [Array<Google::Apis::AnalyticsreportingV4::OrFiltersForSegment>]
1305
+ attr_accessor :or_filters_for_segment
1300
1306
 
1301
- # Header for the metrics.
1302
- # Corresponds to the JSON property `metric`
1303
- # @return [Google::Apis::AnalyticsreportingV4::MetricHeaderEntry]
1304
- attr_accessor :metric
1307
+ # Specifies if the step immediately precedes or can be any time before the
1308
+ # next step.
1309
+ # Corresponds to the JSON property `matchType`
1310
+ # @return [String]
1311
+ attr_accessor :match_type
1305
1312
 
1306
1313
  def initialize(**args)
1307
1314
  update!(**args)
@@ -1309,54 +1316,43 @@ module Google
1309
1316
 
1310
1317
  # Update properties of this object
1311
1318
  def update!(**args)
1312
- @dimension_values = args[:dimension_values] if args.key?(:dimension_values)
1313
- @dimension_names = args[:dimension_names] if args.key?(:dimension_names)
1314
- @metric = args[:metric] if args.key?(:metric)
1319
+ @or_filters_for_segment = args[:or_filters_for_segment] if args.key?(:or_filters_for_segment)
1320
+ @match_type = args[:match_type] if args.key?(:match_type)
1315
1321
  end
1316
1322
  end
1317
1323
 
1318
- # SegmentFilter defines the segment to be either a simple or a sequence
1319
- # segment. A simple segment condition contains dimension and metric conditions
1320
- # to select the sessions or users. A sequence segment condition can be used to
1321
- # select users or sessions based on sequential conditions.
1322
- class SegmentFilter
1324
+ # [Metrics](https://support.google.com/analytics/answer/1033861)
1325
+ # are the quantitative measurements. For example, the metric `ga:users`
1326
+ # indicates the total number of users for the requested time period.
1327
+ class Metric
1323
1328
  include Google::Apis::Core::Hashable
1324
1329
 
1325
- # If true, match the complement of simple or sequence segment.
1326
- # For example, to match all visits not from "New York", we can define the
1327
- # segment as follows:
1328
- # "sessionSegment": `
1329
- # "segmentFilters": [`
1330
- # "simpleSegment" :`
1331
- # "orFiltersForSegment": [`
1332
- # "segmentFilterClauses":[`
1333
- # "dimensionFilter": `
1334
- # "dimensionName": "ga:city",
1335
- # "expressions": ["New York"]
1336
- # `
1337
- # `]
1338
- # `]
1339
- # `,
1340
- # "not": "True"
1341
- # `]
1342
- # `,
1343
- # Corresponds to the JSON property `not`
1344
- # @return [Boolean]
1345
- attr_accessor :not
1346
- alias_method :not?, :not
1330
+ # An alias for the metric expression is an alternate name for the
1331
+ # expression. The alias can be used for filtering and sorting. This field
1332
+ # is optional and is useful if the expression is not a single metric but
1333
+ # a complex expression which cannot be used in filtering and sorting.
1334
+ # The alias is also used in the response column header.
1335
+ # Corresponds to the JSON property `alias`
1336
+ # @return [String]
1337
+ attr_accessor :alias
1347
1338
 
1348
- # A Simple segment conditions consist of one or more dimension/metric
1349
- # conditions that can be combined.
1350
- # Corresponds to the JSON property `simpleSegment`
1351
- # @return [Google::Apis::AnalyticsreportingV4::SimpleSegment]
1352
- attr_accessor :simple_segment
1339
+ # A metric expression in the request. An expression is constructed from one
1340
+ # or more metrics and numbers. Accepted operators include: Plus (+), Minus
1341
+ # (-), Negation (Unary -), Divided by (/), Multiplied by (*), Parenthesis,
1342
+ # Positive cardinal numbers (0-9), can include decimals and is limited to
1343
+ # 1024 characters. Example `ga:totalRefunds/ga:users`, in most cases the
1344
+ # metric expression is just a single metric name like `ga:users`.
1345
+ # Adding mixed `MetricType` (E.g., `CURRENCY` + `PERCENTAGE`) metrics
1346
+ # will result in unexpected results.
1347
+ # Corresponds to the JSON property `expression`
1348
+ # @return [String]
1349
+ attr_accessor :expression
1353
1350
 
1354
- # Sequence conditions consist of one or more steps, where each step is defined
1355
- # by one or more dimension/metric conditions. Multiple steps can be combined
1356
- # with special sequence operators.
1357
- # Corresponds to the JSON property `sequenceSegment`
1358
- # @return [Google::Apis::AnalyticsreportingV4::SequenceSegment]
1359
- attr_accessor :sequence_segment
1351
+ # Specifies how the metric expression should be formatted, for example
1352
+ # `INTEGER`.
1353
+ # Corresponds to the JSON property `formattingType`
1354
+ # @return [String]
1355
+ attr_accessor :formatting_type
1360
1356
 
1361
1357
  def initialize(**args)
1362
1358
  update!(**args)
@@ -1364,22 +1360,20 @@ module Google
1364
1360
 
1365
1361
  # Update properties of this object
1366
1362
  def update!(**args)
1367
- @not = args[:not] if args.key?(:not)
1368
- @simple_segment = args[:simple_segment] if args.key?(:simple_segment)
1369
- @sequence_segment = args[:sequence_segment] if args.key?(:sequence_segment)
1363
+ @alias = args[:alias] if args.key?(:alias)
1364
+ @expression = args[:expression] if args.key?(:expression)
1365
+ @formatting_type = args[:formatting_type] if args.key?(:formatting_type)
1370
1366
  end
1371
1367
  end
1372
1368
 
1373
- # SegmentDefinition defines the segment to be a set of SegmentFilters which
1374
- # are combined together with a logical `AND` operation.
1375
- class SegmentDefinition
1369
+ # The metric values in the pivot region.
1370
+ class PivotValueRegion
1376
1371
  include Google::Apis::Core::Hashable
1377
1372
 
1378
- # A segment is defined by a set of segment filters which are combined
1379
- # together with a logical `AND` operation.
1380
- # Corresponds to the JSON property `segmentFilters`
1381
- # @return [Array<Google::Apis::AnalyticsreportingV4::SegmentFilter>]
1382
- attr_accessor :segment_filters
1373
+ # The values of the metrics in each of the pivot regions.
1374
+ # Corresponds to the JSON property `values`
1375
+ # @return [Array<String>]
1376
+ attr_accessor :values
1383
1377
 
1384
1378
  def initialize(**args)
1385
1379
  update!(**args)
@@ -1387,23 +1381,28 @@ module Google
1387
1381
 
1388
1382
  # Update properties of this object
1389
1383
  def update!(**args)
1390
- @segment_filters = args[:segment_filters] if args.key?(:segment_filters)
1384
+ @values = args[:values] if args.key?(:values)
1391
1385
  end
1392
1386
  end
1393
1387
 
1394
- # Header for the metrics.
1395
- class MetricHeaderEntry
1388
+ # The data response corresponding to the request.
1389
+ class Report
1396
1390
  include Google::Apis::Core::Hashable
1397
1391
 
1398
- # The name of the header.
1399
- # Corresponds to the JSON property `name`
1400
- # @return [String]
1401
- attr_accessor :name
1392
+ # Column headers.
1393
+ # Corresponds to the JSON property `columnHeader`
1394
+ # @return [Google::Apis::AnalyticsreportingV4::ColumnHeader]
1395
+ attr_accessor :column_header
1402
1396
 
1403
- # The type of the metric, for example `INTEGER`.
1404
- # Corresponds to the JSON property `type`
1397
+ # The data part of the report.
1398
+ # Corresponds to the JSON property `data`
1399
+ # @return [Google::Apis::AnalyticsreportingV4::ReportData]
1400
+ attr_accessor :data
1401
+
1402
+ # Page token to retrieve the next page of results in the list.
1403
+ # Corresponds to the JSON property `nextPageToken`
1405
1404
  # @return [String]
1406
- attr_accessor :type
1405
+ attr_accessor :next_page_token
1407
1406
 
1408
1407
  def initialize(**args)
1409
1408
  update!(**args)
@@ -1411,8 +1410,9 @@ module Google
1411
1410
 
1412
1411
  # Update properties of this object
1413
1412
  def update!(**args)
1414
- @name = args[:name] if args.key?(:name)
1415
- @type = args[:type] if args.key?(:type)
1413
+ @column_header = args[:column_header] if args.key?(:column_header)
1414
+ @data = args[:data] if args.key?(:data)
1415
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1416
1416
  end
1417
1417
  end
1418
1418
  end