diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
index e5acc5fdb9db..4a6313b3e5da 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/oss_catalog.json
@@ -14410,7 +14410,7 @@
"sourceDefinitionId": "3cc2eafd-84aa-4dca-93af-322d9dfeec1a",
"name": "Google Analytics 4 (GA4)",
"dockerRepository": "airbyte/source-google-analytics-data-api",
- "dockerImageTag": "0.1.3",
+ "dockerImageTag": "0.2.0",
"documentationUrl": "https://docs.airbyte.com/integrations/sources/google-analytics-data-api",
"icon": "google-analytics.svg",
"sourceType": "api",
@@ -14496,7 +14496,7 @@
"date_ranges_start_date": {
"type": "string",
"title": "Start Date",
- "description": "The start date from which to replicate report data in the format YYYY-MM-DD. Data generated before this date will not be included in the report.",
+ "description": "The start date from which to replicate report data in the format YYYY-MM-DD. Data generated before this date will not be included in the report. Not applied to custom Cohort reports.",
"format": "date",
"order": 2
},
@@ -14509,7 +14509,7 @@
"window_in_days": {
"type": "integer",
"title": "Data request time increment in days",
- "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364.",
+ "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. Not applied to custom Cohort reports.",
"examples": [ 30, 60, 90, 120, 200, 364 ],
"minimum": 1,
"maximum": 364,
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
index f0fda6cd38ea..46b82e9c0b85 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_definitions.yaml
@@ -823,7 +823,7 @@
- name: Google Analytics 4 (GA4)
sourceDefinitionId: 3cc2eafd-84aa-4dca-93af-322d9dfeec1a
dockerRepository: airbyte/source-google-analytics-data-api
- dockerImageTag: 0.1.3
+ dockerImageTag: 0.2.0
documentationUrl: https://docs.airbyte.com/integrations/sources/google-analytics-data-api
icon: google-analytics.svg
sourceType: api
diff --git a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
index 0feb5289286c..0d91328c8c97 100644
--- a/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
+++ b/airbyte-config-oss/init-oss/src/main/resources/seed/source_specs.yaml
@@ -6049,7 +6049,7 @@
oauthFlowOutputParameters:
- - "access_token"
- - "refresh_token"
-- dockerImage: "airbyte/source-google-analytics-data-api:0.1.3"
+- dockerImage: "airbyte/source-google-analytics-data-api:0.2.0"
spec:
documentationUrl: "https://docs.airbyte.com/integrations/sources/google-analytics-data-api"
connectionSpecification:
@@ -6131,7 +6131,7 @@
title: "Start Date"
description: "The start date from which to replicate report data in the\
\ format YYYY-MM-DD. Data generated before this date will not be included\
- \ in the report."
+ \ in the report. Not applied to custom Cohort reports."
format: "date"
order: 2
custom_reports:
@@ -6153,7 +6153,7 @@
\ causing inaccuracies in the returned results. We recommend setting this\
\ to 1 unless you have a hard requirement to make the sync faster at the\
\ expense of accuracy. The minimum allowed value for this field is 1,\
- \ and the maximum is 364."
+ \ and the maximum is 364. Not applied to custom Cohort reports."
examples:
- 30
- 60
diff --git a/airbyte-integrations/connectors/source-google-analytics-data-api/Dockerfile b/airbyte-integrations/connectors/source-google-analytics-data-api/Dockerfile
index 91818294f89e..8e47ffa219ab 100644
--- a/airbyte-integrations/connectors/source-google-analytics-data-api/Dockerfile
+++ b/airbyte-integrations/connectors/source-google-analytics-data-api/Dockerfile
@@ -28,5 +28,5 @@ COPY source_google_analytics_data_api ./source_google_analytics_data_api
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
-LABEL io.airbyte.version=0.1.3
+LABEL io.airbyte.version=0.2.0
LABEL io.airbyte.name=airbyte/source-google-analytics-data-api
diff --git a/airbyte-integrations/connectors/source-google-analytics-data-api/acceptance-test-config.yml b/airbyte-integrations/connectors/source-google-analytics-data-api/acceptance-test-config.yml
index dcdaa79f3e77..d6ae13d132a2 100644
--- a/airbyte-integrations/connectors/source-google-analytics-data-api/acceptance-test-config.yml
+++ b/airbyte-integrations/connectors/source-google-analytics-data-api/acceptance-test-config.yml
@@ -58,6 +58,14 @@ acceptance_tests:
bypass_reason: "dynamically created field"
- name: averageSessionDuration
bypass_reason: "dynamically created field"
+ cohort_report:
+ - name: uuid
+ bypass_reason: "dynamically created field"
+ pivot_report:
+ - name: uuid
+ bypass_reason: "dynamically created field"
+ - name: sessions
+ bypass_reason: "volatile data"
full_refresh:
tests:
- config_path: "secrets/config.json"
@@ -95,9 +103,15 @@ acceptance_tests:
bypass_reason: "dynamically created field"
- name: averageSessionDuration
bypass_reason: "dynamically created field"
+ cohort_report:
+ - name: uuid
+ bypass_reason: "dynamically created field"
+ pivot_report:
+ - name: uuid
+ bypass_reason: "dynamically created field"
incremental:
tests:
- config_path: "secrets/config.json"
- configured_catalog_path: "integration_tests/configured_catalog.json"
+ configured_catalog_path: "integration_tests/incremental_catalog.json"
future_state:
future_state_path: "integration_tests/abnormal_state.json"
diff --git a/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/configured_catalog.json b/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/configured_catalog.json
index 0900aa6dbfed..390b4952d02b 100644
--- a/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/configured_catalog.json
+++ b/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/configured_catalog.json
@@ -9,7 +9,7 @@
"default_cursor_field": ["date"],
"source_defined_primary_key": [["uuid"]]
},
- "sync_mode": "incremental",
+ "sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
@@ -21,7 +21,7 @@
"default_cursor_field": ["date"],
"source_defined_primary_key": [["uuid"]]
},
- "sync_mode": "incremental",
+ "sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
@@ -33,7 +33,7 @@
"default_cursor_field": ["date"],
"source_defined_primary_key": [["uuid"]]
},
- "sync_mode": "incremental",
+ "sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
@@ -45,7 +45,7 @@
"default_cursor_field": ["date"],
"source_defined_primary_key": [["uuid"]]
},
- "sync_mode": "incremental",
+ "sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
@@ -57,7 +57,7 @@
"default_cursor_field": ["date"],
"source_defined_primary_key": [["uuid"]]
},
- "sync_mode": "incremental",
+ "sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
@@ -69,7 +69,7 @@
"default_cursor_field": ["date"],
"source_defined_primary_key": [["uuid"]]
},
- "sync_mode": "incremental",
+ "sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
@@ -81,7 +81,7 @@
"default_cursor_field": ["date"],
"source_defined_primary_key": [["uuid"]]
},
- "sync_mode": "incremental",
+ "sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
@@ -93,7 +93,27 @@
"default_cursor_field": ["date"],
"source_defined_primary_key": [["uuid"]]
},
- "sync_mode": "incremental",
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "cohort_report",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"],
+ "source_defined_primary_key": [["uuid"]]
+ },
+ "sync_mode": "full_refresh",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "pivot_report",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh"],
+ "source_defined_primary_key": [["uuid"]]
+ },
+ "sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
}
]
diff --git a/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/expected_records.jsonl b/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/expected_records.jsonl
index 992b7cf5af2c..f63d7d13fdfa 100644
--- a/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/expected_records.jsonl
+++ b/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/expected_records.jsonl
@@ -1,143 +1,90 @@
-{"stream":"daily_active_users","data":{"uuid":"d740634d-5a99-4c00-8535-cc7dd39cf102","property_id":"314186564","date":"20230126","active1DayUsers":5588},"emitted_at":1678381333675}
-{"stream":"daily_active_users","data":{"uuid":"5d856f4a-e129-4ab0-9b03-ad5f9ab36cd3","property_id":"314186564","date":"20230130","active1DayUsers":3044},"emitted_at":1678381333676}
-{"stream":"daily_active_users","data":{"uuid":"bea93bd9-7b12-4035-b696-38b9e02d81b4","property_id":"314186564","date":"20230112","active1DayUsers":2783},"emitted_at":1678381333676}
-{"stream":"daily_active_users","data":{"uuid":"537e93bf-d7af-4078-ab87-371a0ffbdf8c","property_id":"314186564","date":"20230228","active1DayUsers":2626},"emitted_at":1678381333979}
-{"stream":"daily_active_users","data":{"uuid":"c842e31f-63ba-4610-845f-12d0683ff8b4","property_id":"314186564","date":"20230214","active1DayUsers":2582},"emitted_at":1678381333979}
-{"stream":"daily_active_users","data":{"uuid":"11aa822c-5eeb-4ef2-b8aa-a71c8555c399","property_id":"314186564","date":"20230301","active1DayUsers":2562},"emitted_at":1678381333979}
-{"stream":"daily_active_users","data":{"uuid":"9e6a5066-dfee-40e1-8a86-6e58ae79163a","property_id":"314186564","date":"20230213","active1DayUsers":2518},"emitted_at":1678381333979}
-{"stream":"daily_active_users","data":{"uuid":"3a86c4fa-1d22-4d6d-96d4-aa1aa3ed4aae","property_id":"314186564","date":"20230205","active1DayUsers":1470},"emitted_at":1678381333980}
-{"stream":"daily_active_users","data":{"uuid":"cb7ecf2b-96de-460f-8825-d79cc19e0017","property_id":"314186564","date":"20230204","active1DayUsers":1350},"emitted_at":1678381333980}
-{"stream":"daily_active_users","data":{"uuid":"cf843a52-5509-4bc1-9be7-2680e444f72c","property_id":"314186564","date":"20230212","active1DayUsers":1269},"emitted_at":1678381333980}
-{"stream":"daily_active_users","data":{"uuid":"4100edb8-2d5a-4b1c-98c3-32c24555f6e4","property_id":"314186564","date":"20230219","active1DayUsers":1211},"emitted_at":1678381333980}
-{"stream":"daily_active_users","data":{"uuid":"6f06e832-f653-44ab-aca5-1b8bb95817cf","property_id":"314186564","date":"20230226","active1DayUsers":1189},"emitted_at":1678381333980}
-{"stream":"daily_active_users","data":{"uuid":"e9204355-3a80-42a7-ad19-213438c8318a","property_id":"314186564","date":"20230211","active1DayUsers":958},"emitted_at":1678381333980}
-{"stream":"daily_active_users","data":{"uuid":"4bc46fdf-3e61-4152-ab9a-de5de6317094","property_id":"314186564","date":"20230225","active1DayUsers":839},"emitted_at":1678381333980}
-{"stream":"daily_active_users","data":{"uuid":"a1358391-2d0b-4a76-904c-fcc1b7ede7df","property_id":"314186564","date":"20230306","active1DayUsers":5849},"emitted_at":1678381334875}
-{"stream":"daily_active_users","data":{"uuid":"0a018ec9-a1be-4027-b55d-150000c604ff","property_id":"314186564","date":"20230307","active1DayUsers":4285},"emitted_at":1678381334875}
-{"stream":"daily_active_users","data":{"uuid":"2e83053e-62fd-4ade-84b5-25b44e824108","property_id":"314186564","date":"20230308","active1DayUsers":3180},"emitted_at":1678381334875}
-{"stream":"daily_active_users","data":{"uuid":"1b0b5f7a-235b-4825-b892-d427df3eeb27","property_id":"314186564","date":"20230305","active1DayUsers":1358},"emitted_at":1678381334876}
-{"stream":"daily_active_users","data":{"uuid":"c859dee1-408c-4951-9ff8-15ac042ccf14","property_id":"314186564","date":"20230304","active1DayUsers":1115},"emitted_at":1678381334876}
-{"stream":"weekly_active_users","data":{"uuid":"934cdcae-1d0a-4681-93ca-31e4f2c4aa10","property_id":"314186564","date":"20230130","active7DayUsers":16837},"emitted_at":1678381336463}
-{"stream":"weekly_active_users","data":{"uuid":"41bedd57-61a6-479d-812a-f732a1accb06","property_id":"314186564","date":"20230129","active7DayUsers":16577},"emitted_at":1678381336463}
-{"stream":"weekly_active_users","data":{"uuid":"307ec546-fae5-4e95-8586-5615dc9d4a7d","property_id":"314186564","date":"20230128","active7DayUsers":16537},"emitted_at":1678381336463}
-{"stream":"weekly_active_users","data":{"uuid":"11585f70-3b55-4050-bcd7-5479a8e5624c","property_id":"314186564","date":"20230127","active7DayUsers":16368},"emitted_at":1678381336463}
-{"stream":"weekly_active_users","data":{"uuid":"eeb8a338-e038-4eb2-a47a-be13788bf5a3","property_id":"314186564","date":"20230126","active7DayUsers":15828},"emitted_at":1678381336463}
-{"stream":"weekly_active_users","data":{"uuid":"7adb80f4-66af-461a-9c33-a4d338ae87b5","property_id":"314186564","date":"20230114","active7DayUsers":12970},"emitted_at":1678381336464}
-{"stream":"weekly_active_users","data":{"uuid":"cb72a0da-164f-4f19-95cd-65fd24ab70ab","property_id":"314186564","date":"20230116","active7DayUsers":12895},"emitted_at":1678381336464}
-{"stream":"weekly_active_users","data":{"uuid":"5ecba746-b1aa-4235-a5a8-fb94205615ca","property_id":"314186564","date":"20230202","active7DayUsers":15770},"emitted_at":1678381336755}
-{"stream":"weekly_active_users","data":{"uuid":"c23432db-5910-40bc-9604-bd3cd8eae79b","property_id":"314186564","date":"20230205","active7DayUsers":15623},"emitted_at":1678381336755}
-{"stream":"weekly_active_users","data":{"uuid":"4a6cd27c-cfbf-4cac-b367-bc749252c054","property_id":"314186564","date":"20230204","active7DayUsers":15553},"emitted_at":1678381336755}
-{"stream":"weekly_active_users","data":{"uuid":"892dadfd-6229-481f-bdaa-3c9c5a840054","property_id":"314186564","date":"20230222","active7DayUsers":15450},"emitted_at":1678381336755}
-{"stream":"weekly_active_users","data":{"uuid":"9ae54cbe-fd5e-4cda-ab37-bd2f0b0840e6","property_id":"314186564","date":"20230203","active7DayUsers":15362},"emitted_at":1678381336755}
-{"stream":"weekly_active_users","data":{"uuid":"cbe3383e-ead1-4afb-b95f-53233b221da7","property_id":"314186564","date":"20230227","active7DayUsers":11582},"emitted_at":1678381336756}
-{"stream":"weekly_active_users","data":{"uuid":"5ce683a4-603e-4e17-b98f-658348a5d255","property_id":"314186564","date":"20230225","active7DayUsers":11207},"emitted_at":1678381336756}
-{"stream":"weekly_active_users","data":{"uuid":"641cb10e-8816-4dc8-8843-51a9e812ee6e","property_id":"314186564","date":"20230226","active7DayUsers":11152},"emitted_at":1678381336757}
-{"stream":"weekly_active_users","data":{"uuid":"e4ea2069-6254-42e6-a14e-125f22d558e4","property_id":"314186564","date":"20230308","active7DayUsers":18126},"emitted_at":1678381337525}
-{"stream":"weekly_active_users","data":{"uuid":"6b3d7cca-2abc-471e-9bc9-da6e4d435d71","property_id":"314186564","date":"20230307","active7DayUsers":17555},"emitted_at":1678381337527}
-{"stream":"weekly_active_users","data":{"uuid":"83473b8d-0716-4ecc-8700-baa6e4cd77be","property_id":"314186564","date":"20230306","active7DayUsers":15874},"emitted_at":1678381337530}
-{"stream":"weekly_active_users","data":{"uuid":"23df8c7f-237e-4fa0-98ad-4d230528c97d","property_id":"314186564","date":"20230302","active7DayUsers":12087},"emitted_at":1678381337530}
-{"stream":"four_weekly_active_users","data":{"uuid":"2834dea3-9cfd-4649-b924-8e16c63aaa92","property_id":"314186564","date":"20230130","active28DayUsers":48553},"emitted_at":1678381339570}
-{"stream":"four_weekly_active_users","data":{"uuid":"463276cf-364b-4103-a351-4767d71e9fe8","property_id":"314186564","date":"20230129","active28DayUsers":47206},"emitted_at":1678381339571}
-{"stream":"four_weekly_active_users","data":{"uuid":"a27d065b-8e3e-4200-b5cb-91f07569f9c6","property_id":"314186564","date":"20230128","active28DayUsers":46942},"emitted_at":1678381339571}
-{"stream":"four_weekly_active_users","data":{"uuid":"28322223-18ca-42f1-9b58-5291921ce283","property_id":"314186564","date":"20230205","active28DayUsers":53252},"emitted_at":1678381340113}
-{"stream":"four_weekly_active_users","data":{"uuid":"150e0866-7bef-457d-ba05-1511a91ca247","property_id":"314186564","date":"20230213","active28DayUsers":53161},"emitted_at":1678381340113}
-{"stream":"four_weekly_active_users","data":{"uuid":"b5b3c0c5-53f6-4aed-b7e1-eb481b098d6f","property_id":"314186564","date":"20230214","active28DayUsers":53007},"emitted_at":1678381340113}
-{"stream":"four_weekly_active_users","data":{"uuid":"96575bb1-77c6-4590-91b7-df2e33c9ee45","property_id":"314186564","date":"20230210","active28DayUsers":52974},"emitted_at":1678381340113}
-{"stream":"four_weekly_active_users","data":{"uuid":"2124baf5-b40a-4c84-aaae-d11a14eb5b8a","property_id":"314186564","date":"20230212","active28DayUsers":52950},"emitted_at":1678381340113}
-{"stream":"four_weekly_active_users","data":{"uuid":"c915e1a0-d294-4659-a92b-997e07471947","property_id":"314186564","date":"20230204","active28DayUsers":52836},"emitted_at":1678381340113}
-{"stream":"four_weekly_active_users","data":{"uuid":"86a9b1a2-6e80-48e0-b3be-dc7628c39a95","property_id":"314186564","date":"20230211","active28DayUsers":52772},"emitted_at":1678381340113}
-{"stream":"four_weekly_active_users","data":{"uuid":"9f00870e-c0db-41d1-940c-6784533c91c8","property_id":"314186564","date":"20230223","active28DayUsers":52720},"emitted_at":1678381340113}
-{"stream":"four_weekly_active_users","data":{"uuid":"51c9744f-3658-4965-9050-4ab9208581a4","property_id":"314186564","date":"20230203","active28DayUsers":52096},"emitted_at":1678381340114}
-{"stream":"four_weekly_active_users","data":{"uuid":"472b845d-044b-41c2-adcb-9cdda71f4777","property_id":"314186564","date":"20230224","active28DayUsers":51840},"emitted_at":1678381340114}
-{"stream":"four_weekly_active_users","data":{"uuid":"951547b6-2713-40f2-9938-3cc75c0d0ef9","property_id":"314186564","date":"20230202","active28DayUsers":51576},"emitted_at":1678381340114}
-{"stream":"four_weekly_active_users","data":{"uuid":"d60c7684-e66a-4cdc-86b4-afeda1fd1b84","property_id":"314186564","date":"20230225","active28DayUsers":51554},"emitted_at":1678381340114}
-{"stream":"four_weekly_active_users","data":{"uuid":"69fc3620-304f-41f3-9006-bd1c9272d310","property_id":"314186564","date":"20230226","active28DayUsers":51297},"emitted_at":1678381340114}
-{"stream":"four_weekly_active_users","data":{"uuid":"7291c49c-6af8-4723-baaf-7d4c22a0fb91","property_id":"314186564","date":"20230227","active28DayUsers":50957},"emitted_at":1678381340114}
-{"stream":"four_weekly_active_users","data":{"uuid":"79a678a4-68d6-43ce-b20a-5d1aae10577f","property_id":"314186564","date":"20230201","active28DayUsers":50822},"emitted_at":1678381340114}
-{"stream":"four_weekly_active_users","data":{"uuid":"ecc068ac-45ce-4cf2-9f5e-e52a9f618996","property_id":"314186564","date":"20230228","active28DayUsers":50206},"emitted_at":1678381340114}
-{"stream":"four_weekly_active_users","data":{"uuid":"7dfb2df2-e4c3-4ec6-9e28-8ed84af37edc","property_id":"314186564","date":"20230131","active28DayUsers":49804},"emitted_at":1678381340114}
-{"stream":"devices","data":{"uuid":"3730e4f7-be18-46e5-afc4-cc19ab0f6a94","property_id":"314186564","date":"20230126","deviceCategory":"desktop","operatingSystem":"Macintosh","browser":"Chrome","totalUsers":1889,"newUsers":1081,"sessions":3323,"sessionsPerUser":2.0525015441630634,"averageSessionDuration":190.25625341889858,"screenPageViews":7700,"screenPageViewsPerSession":2.3171832681312066,"bounceRate":0.534456816130003},"emitted_at":1678381343155}
-{"stream":"devices","data":{"uuid":"d55035f9-73d3-411a-8a24-630b74fccb17","property_id":"314186564","date":"20230114","deviceCategory":"desktop","operatingSystem":"Macintosh","browser":"Chrome","totalUsers":243,"newUsers":116,"sessions":430,"sessionsPerUser":2.4571428571428573,"averageSessionDuration":149.79113474418602,"screenPageViews":689,"screenPageViewsPerSession":1.6023255813953488,"bounceRate":0.6627906976744186},"emitted_at":1678381343179}
-{"stream":"devices","data":{"uuid":"092d0654-402e-4eb0-839c-f538f218d48d","property_id":"314186564","date":"20230113","deviceCategory":"mobile","operatingSystem":"iOS","browser":"Safari","totalUsers":240,"newUsers":199,"sessions":282,"sessionsPerUser":1.247787610619469,"averageSessionDuration":116.2066634539007,"screenPageViews":401,"screenPageViewsPerSession":1.4219858156028369,"bounceRate":0.7056737588652482},"emitted_at":1678381343179}
-{"stream":"devices","data":{"uuid":"cbd4ebc6-2c4a-403e-b809-d19b347e98e8","property_id":"314186564","date":"20230128","deviceCategory":"mobile","operatingSystem":"Android","browser":"Chrome","totalUsers":236,"newUsers":143,"sessions":306,"sessionsPerUser":1.4232558139534883,"averageSessionDuration":116.41804944444443,"screenPageViews":515,"screenPageViewsPerSession":1.6830065359477124,"bounceRate":0.4803921568627451},"emitted_at":1678381343179}
-{"stream":"devices","data":{"uuid":"4c01fcbd-db57-4226-b35e-11960422a743","property_id":"314186564","date":"20230117","deviceCategory":"mobile","operatingSystem":"Android","browser":"Chrome","totalUsers":230,"newUsers":135,"sessions":335,"sessionsPerUser":1.7447916666666667,"averageSessionDuration":111.30464799104477,"screenPageViews":457,"screenPageViewsPerSession":1.364179104477612,"bounceRate":0.5044776119402985},"emitted_at":1678381343180}
-{"stream":"devices","data":{"uuid":"08317b82-161b-425f-a29c-7c9b1326d188","property_id":"314186564","date":"20230102","deviceCategory":"mobile","operatingSystem":"Android","browser":"Chrome","totalUsers":226,"newUsers":160,"sessions":277,"sessionsPerUser":1.357843137254902,"averageSessionDuration":116.45424140433212,"screenPageViews":371,"screenPageViewsPerSession":1.339350180505415,"bounceRate":0.4657039711191336},"emitted_at":1678381343180}
-{"stream":"devices","data":{"uuid":"e3e8cfe4-2a79-448c-8ccb-1d686744cf0f","property_id":"314186564","date":"20230101","deviceCategory":"desktop","operatingSystem":"Windows","browser":"Chrome","totalUsers":225,"newUsers":125,"sessions":329,"sessionsPerUser":1.848314606741573,"averageSessionDuration":130.99515609726444,"screenPageViews":426,"screenPageViewsPerSession":1.2948328267477203,"bounceRate":0.6261398176291794},"emitted_at":1678381343180}
-{"stream":"devices","data":{"uuid":"e6d3ef35-fbcb-4d88-b543-d4d5e4ce7959","property_id":"314186564","date":"20230107","deviceCategory":"desktop","operatingSystem":"Macintosh","browser":"Chrome","totalUsers":220,"newUsers":89,"sessions":333,"sessionsPerUser":2.176470588235294,"averageSessionDuration":136.88719382882883,"screenPageViews":407,"screenPageViewsPerSession":1.2222222222222223,"bounceRate":0.6996996996996997},"emitted_at":1678381343180}
-{"stream":"devices","data":{"uuid":"0f3bf211-b9a3-41fa-9e47-dded2b3b500a","property_id":"314186564","date":"20230116","deviceCategory":"mobile","operatingSystem":"Android","browser":"Chrome","totalUsers":218,"newUsers":115,"sessions":351,"sessionsPerUser":1.9285714285714286,"averageSessionDuration":99.59775829629629,"screenPageViews":406,"screenPageViewsPerSession":1.1566951566951567,"bounceRate":0.5641025641025641},"emitted_at":1678381343180}
-{"stream":"devices","data":{"uuid":"d6e3a43e-76e8-463d-85f7-1ea3a27fb7d8","property_id":"314186564","date":"20230129","deviceCategory":"desktop","operatingSystem":"Linux","browser":"Firefox","totalUsers":14,"newUsers":7,"sessions":16,"sessionsPerUser":1.4545454545454546,"averageSessionDuration":134.647638625,"screenPageViews":36,"screenPageViewsPerSession":2.25,"bounceRate":0.3125},"emitted_at":1678381343211}
-{"stream":"devices","data":{"uuid":"a2dbbe29-1522-4fe2-86af-e607f1a2c6f2","property_id":"314186564","date":"20230130","deviceCategory":"desktop","operatingSystem":"Windows","browser":"Opera","totalUsers":14,"newUsers":9,"sessions":17,"sessionsPerUser":1.4166666666666667,"averageSessionDuration":150.37403394117646,"screenPageViews":31,"screenPageViewsPerSession":1.8235294117647058,"bounceRate":0.4117647058823529},"emitted_at":1678381343211}
-{"stream":"devices","data":{"uuid":"7502960e-587d-4871-80bc-fa10fc081ad9","property_id":"314186564","date":"20230307","deviceCategory":"mobile","operatingSystem":"Android","browser":"YaBrowser","totalUsers":1,"newUsers":0,"sessions":1,"sessionsPerUser":1,"averageSessionDuration":102.720276,"screenPageViews":0,"screenPageViewsPerSession":0,"bounceRate":1},"emitted_at":1678381347026}
-{"stream":"devices","data":{"uuid":"23b15459-4201-4797-9106-9b4ecbffc862","property_id":"314186564","date":"20230307","deviceCategory":"mobile","operatingSystem":"Linux","browser":"Chrome","totalUsers":1,"newUsers":1,"sessions":1,"sessionsPerUser":1,"averageSessionDuration":0,"screenPageViews":1,"screenPageViewsPerSession":1,"bounceRate":1},"emitted_at":1678381347026}
-{"stream":"devices","data":{"uuid":"b79ee675-8830-436c-8f0b-2b0aba5a5900","property_id":"314186564","date":"20230308","deviceCategory":"desktop","operatingSystem":"Linux","browser":"Edge","totalUsers":1,"newUsers":0,"sessions":1,"sessionsPerUser":0,"averageSessionDuration":0,"screenPageViews":1,"screenPageViewsPerSession":1,"bounceRate":1},"emitted_at":1678381347026}
-{"stream":"devices","data":{"uuid":"4f78c49a-88f1-456f-b3d2-01157a9574c0","property_id":"314186564","date":"20230308","deviceCategory":"desktop","operatingSystem":"Linux","browser":"Safari","totalUsers":1,"newUsers":1,"sessions":1,"sessionsPerUser":1,"averageSessionDuration":0.092779,"screenPageViews":1,"screenPageViewsPerSession":1,"bounceRate":1},"emitted_at":1678381347026}
-{"stream":"devices","data":{"uuid":"63f2544b-e0a3-4c71-b549-168ab2eedbba","property_id":"314186564","date":"20230308","deviceCategory":"desktop","operatingSystem":"Linux","browser":"YaBrowser","totalUsers":1,"newUsers":0,"sessions":1,"sessionsPerUser":0,"averageSessionDuration":0,"screenPageViews":1,"screenPageViewsPerSession":1,"bounceRate":1},"emitted_at":1678381347026}
-{"stream":"devices","data":{"uuid":"68fa7c4d-9c61-45cb-acfb-55cb632125f5","property_id":"314186564","date":"20230308","deviceCategory":"desktop","operatingSystem":"Windows","browser":"YaBrowser","totalUsers":1,"newUsers":0,"sessions":1,"sessionsPerUser":1,"averageSessionDuration":1668.097776,"screenPageViews":1,"screenPageViewsPerSession":1,"bounceRate":0},"emitted_at":1678381347027}
-{"stream":"devices","data":{"uuid":"15cd2ca9-07c6-4013-9b0d-f129f7a3ca76","property_id":"314186564","date":"20230308","deviceCategory":"mobile","operatingSystem":"Android","browser":"Android Browser","totalUsers":1,"newUsers":1,"sessions":1,"sessionsPerUser":1,"averageSessionDuration":0,"screenPageViews":1,"screenPageViewsPerSession":1,"bounceRate":1},"emitted_at":1678381347027}
-{"stream":"devices","data":{"uuid":"6aaebc5c-831f-4b62-84a7-8972f94d9a9a","property_id":"314186564","date":"20230308","deviceCategory":"mobile","operatingSystem":"Macintosh","browser":"Chrome","totalUsers":1,"newUsers":1,"sessions":1,"sessionsPerUser":1,"averageSessionDuration":0,"screenPageViews":0,"screenPageViewsPerSession":0,"bounceRate":1},"emitted_at":1678381347027}
-{"stream":"devices","data":{"uuid":"53bcd195-bb7e-4025-825d-8678186a1a3f","property_id":"314186564","date":"20230308","deviceCategory":"mobile","operatingSystem":"Windows","browser":"Chrome","totalUsers":1,"newUsers":0,"sessions":1,"sessionsPerUser":1,"averageSessionDuration":0,"screenPageViews":0,"screenPageViewsPerSession":0,"bounceRate":0},"emitted_at":1678381347027}
-{"stream":"devices","data":{"uuid":"61be0c8d-ebd6-49f7-9a3b-eaa270c74df2","property_id":"314186564","date":"20230308","deviceCategory":"tablet","operatingSystem":"Android","browser":"Coc Coc","totalUsers":1,"newUsers":1,"sessions":2,"sessionsPerUser":2,"averageSessionDuration":0,"screenPageViews":1,"screenPageViewsPerSession":0.5,"bounceRate":1},"emitted_at":1678381347027}
-{"stream":"devices","data":{"uuid":"37e512c9-7663-4440-adef-08caba1ed42b","property_id":"314186564","date":"20230308","deviceCategory":"tablet","operatingSystem":"iOS","browser":"Safari","totalUsers":1,"newUsers":1,"sessions":1,"sessionsPerUser":1,"averageSessionDuration":22.754585,"screenPageViews":1,"screenPageViewsPerSession":1,"bounceRate":0},"emitted_at":1678381347027}
-{"stream":"locations","data":{"uuid":"59b23b72-df6f-4b57-aa87-b9c52fc5ba6b","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230126","totalUsers":261,"newUsers":186,"sessions":348,"sessionsPerUser":1.43801652892562,"averageSessionDuration":177.4253606494253,"screenPageViews":797,"screenPageViewsPerSession":2.2902298850574714,"bounceRate":0.41954022988505746},"emitted_at":1678381351369}
-{"stream":"locations","data":{"uuid":"067cc6e2-06a0-43a6-9d36-545c6cdd9aba","property_id":"314186564","region":"California","country":"United States","city":"San Francisco","date":"20230126","totalUsers":173,"newUsers":102,"sessions":237,"sessionsPerUser":1.5095541401273886,"averageSessionDuration":219.36087900843881,"screenPageViews":585,"screenPageViewsPerSession":2.4683544303797467,"bounceRate":0.4177215189873418},"emitted_at":1678381351369}
-{"stream":"locations","data":{"uuid":"3dd8a901-4881-46ac-9367-75efc95171de","property_id":"314186564","region":"California","country":"United States","city":"San Jose","date":"20230126","totalUsers":125,"newUsers":102,"sessions":143,"sessionsPerUser":1.2222222222222223,"averageSessionDuration":159.3054194195804,"screenPageViews":249,"screenPageViewsPerSession":1.7412587412587412,"bounceRate":0.4195804195804196},"emitted_at":1678381351369}
-{"stream":"locations","data":{"uuid":"3711890a-805e-417d-bd75-d869ca3172c0","property_id":"314186564","region":"Washington","country":"United States","city":"Seattle","date":"20230126","totalUsers":119,"newUsers":84,"sessions":193,"sessionsPerUser":1.7545454545454546,"averageSessionDuration":103.39999222797927,"screenPageViews":323,"screenPageViewsPerSession":1.6735751295336787,"bounceRate":0.5699481865284974},"emitted_at":1678381351369}
-{"stream":"locations","data":{"uuid":"9372b250-d3e0-4063-ba6d-643456ae78ed","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230123","totalUsers":117,"newUsers":63,"sessions":167,"sessionsPerUser":1.7395833333333333,"averageSessionDuration":269.8072515628742,"screenPageViews":538,"screenPageViewsPerSession":3.2215568862275448,"bounceRate":0.49700598802395207},"emitted_at":1678381351369}
-{"stream":"locations","data":{"uuid":"1e72f548-0bc9-467d-b8c4-c48275d43554","property_id":"314186564","region":"England","country":"United Kingdom","city":"London","date":"20230126","totalUsers":115,"newUsers":15,"sessions":196,"sessionsPerUser":2.0631578947368423,"averageSessionDuration":75.64311498979592,"screenPageViews":231,"screenPageViewsPerSession":1.1785714285714286,"bounceRate":0.8214285714285714},"emitted_at":1678381351370}
-{"stream":"locations","data":{"uuid":"3d583d87-19b2-469e-9c8d-f7fbe8673fff","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230125","totalUsers":114,"newUsers":66,"sessions":171,"sessionsPerUser":1.693069306930693,"averageSessionDuration":314.769004625731,"screenPageViews":747,"screenPageViewsPerSession":4.368421052631579,"bounceRate":0.39766081871345027},"emitted_at":1678381351370}
-{"stream":"locations","data":{"uuid":"a32e99fd-7804-4f3f-872e-20ca17adaabe","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230111","totalUsers":108,"newUsers":71,"sessions":156,"sessionsPerUser":1.7333333333333334,"averageSessionDuration":226.08829592307688,"screenPageViews":451,"screenPageViewsPerSession":2.891025641025641,"bounceRate":0.5769230769230769},"emitted_at":1678381351370}
-{"stream":"locations","data":{"uuid":"469ff29d-f73d-4ec6-95b9-af454cee1365","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230127","totalUsers":107,"newUsers":54,"sessions":158,"sessionsPerUser":1.880952380952381,"averageSessionDuration":394.91075217721516,"screenPageViews":1063,"screenPageViewsPerSession":6.727848101265823,"bounceRate":0.5189873417721519},"emitted_at":1678381351370}
-{"stream":"locations","data":{"uuid":"26c149f6-bbcb-4f92-a5d1-32e1052a6549","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230119","totalUsers":106,"newUsers":59,"sessions":140,"sessionsPerUser":1.5217391304347827,"averageSessionDuration":226.4892927142857,"screenPageViews":304,"screenPageViewsPerSession":2.1714285714285713,"bounceRate":0.4714285714285714},"emitted_at":1678381351370}
-{"stream":"locations","data":{"uuid":"aa385c07-0081-4350-99d1-64d1f352e842","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230124","totalUsers":106,"newUsers":49,"sessions":166,"sessionsPerUser":1.711340206185567,"averageSessionDuration":314.4820807349397,"screenPageViews":683,"screenPageViewsPerSession":4.114457831325301,"bounceRate":0.5301204819277109},"emitted_at":1678381351370}
-{"stream":"locations","data":{"uuid":"4118cbba-0628-441f-94d8-6aad16d65dc4","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230118","totalUsers":101,"newUsers":64,"sessions":134,"sessionsPerUser":1.425531914893617,"averageSessionDuration":204.23028168656717,"screenPageViews":421,"screenPageViewsPerSession":3.1417910447761193,"bounceRate":0.4701492537313433},"emitted_at":1678381351371}
-{"stream":"locations","data":{"uuid":"f31fbc84-53e2-4c87-a0d6-b8fb79be5128","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230130","totalUsers":100,"newUsers":50,"sessions":148,"sessionsPerUser":1.7411764705882353,"averageSessionDuration":588.3146048175676,"screenPageViews":1659,"screenPageViewsPerSession":11.20945945945946,"bounceRate":0.46621621621621623},"emitted_at":1678381351371}
-{"stream":"locations","data":{"uuid":"3c54aefd-a080-4a24-92c5-071a511c00f0","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230117","totalUsers":99,"newUsers":53,"sessions":130,"sessionsPerUser":1.6883116883116882,"averageSessionDuration":252.9449443615385,"screenPageViews":310,"screenPageViewsPerSession":2.3846153846153846,"bounceRate":0.49230769230769234},"emitted_at":1678381351371}
-{"stream":"locations","data":{"uuid":"f88cec28-9ac0-43e4-a0b7-70943c7b0499","property_id":"314186564","region":"California","country":"United States","city":"Los Angeles","date":"20230126","totalUsers":94,"newUsers":78,"sessions":115,"sessionsPerUser":1.2921348314606742,"averageSessionDuration":115.01889710434781,"screenPageViews":194,"screenPageViewsPerSession":1.6869565217391305,"bounceRate":0.4608695652173913},"emitted_at":1678381351371}
-{"stream":"locations","data":{"uuid":"b21cf7b6-1708-4a67-bcf3-8645039c20c7","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230112","totalUsers":94,"newUsers":54,"sessions":125,"sessionsPerUser":1.6025641025641026,"averageSessionDuration":385.297371184,"screenPageViews":393,"screenPageViewsPerSession":3.144,"bounceRate":0.52},"emitted_at":1678381351371}
-{"stream":"locations","data":{"uuid":"3e4b220d-2825-48d6-aa5b-e67f608c4761","property_id":"314186564","region":"Karnataka","country":"India","city":"Bengaluru","date":"20230111","totalUsers":92,"newUsers":52,"sessions":115,"sessionsPerUser":1.4375,"averageSessionDuration":266.1262206173913,"screenPageViews":185,"screenPageViewsPerSession":1.608695652173913,"bounceRate":0.4782608695652174},"emitted_at":1678381351371}
-{"stream":"locations","data":{"uuid":"aaeafa30-ea15-4e4c-abfe-26e7248fd26b","property_id":"314186564","region":"New York","country":"United States","city":"New York","date":"20230110","totalUsers":92,"newUsers":54,"sessions":134,"sessionsPerUser":1.7402597402597402,"averageSessionDuration":165.56627757462687,"screenPageViews":162,"screenPageViewsPerSession":1.208955223880597,"bounceRate":0.5373134328358209},"emitted_at":1678381351371}
-{"stream":"locations","data":{"uuid":"61b39026-477f-4fbb-8a64-d39a38a3ae81","property_id":"314186564","region":"Virginia","country":"United States","city":"Ashburn","date":"20230126","totalUsers":91,"newUsers":69,"sessions":115,"sessionsPerUser":1.3855421686746987,"averageSessionDuration":56.888851956521734,"screenPageViews":140,"screenPageViewsPerSession":1.2173913043478262,"bounceRate":0.6086956521739131},"emitted_at":1678381351371}
-{"stream":"locations","data":{"uuid":"cc88c92e-0f4b-4e28-b617-d885d755d654","property_id":"314186564","region":"California","country":"United States","city":"Oakland","date":"20230124","totalUsers":12,"newUsers":4,"sessions":15,"sessionsPerUser":1.5,"averageSessionDuration":129.37265566666667,"screenPageViews":21,"screenPageViewsPerSession":1.4,"bounceRate":0.6},"emitted_at":1678381351464}
-{"stream":"locations","data":{"uuid":"1fc85a8b-0c1d-4481-b5f1-db3213dd6e7b","property_id":"314186564","region":"California","country":"United States","city":"San Diego","date":"20230118","totalUsers":12,"newUsers":6,"sessions":16,"sessionsPerUser":1.7777777777777777,"averageSessionDuration":191.2098831875,"screenPageViews":24,"screenPageViewsPerSession":1.5,"bounceRate":0.5},"emitted_at":1678381351464}
-{"stream":"locations","data":{"uuid":"cc0645bc-d844-4a74-b7b9-4a17e96b0eff","property_id":"314186564","region":"California","country":"United States","city":"San Diego","date":"20230130","totalUsers":12,"newUsers":8,"sessions":22,"sessionsPerUser":2,"averageSessionDuration":207.01342677272726,"screenPageViews":43,"screenPageViewsPerSession":1.9545454545454546,"bounceRate":0.36363636363636365},"emitted_at":1678381351464}
-{"stream":"pages","data":{"uuid":"88a07f5d-684c-4711-a813-a8b9aca86087","property_id":"314186564","date":"20230126","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":2276,"bounceRate":0.7348798674399337},"emitted_at":1678381363213}
-{"stream":"pages","data":{"uuid":"e118fcaf-26b2-442b-9e16-3520b5448d19","property_id":"314186564","date":"20230126","hostName":"airbyte.com","pagePathPlusQueryString":"/blog/why-airbyte-made-alpha-and-beta-connectors-free","screenPageViews":2176,"bounceRate":0.3861464968152866},"emitted_at":1678381363213}
-{"stream":"pages","data":{"uuid":"30a61f7f-58b2-4629-97e8-1b2590d7bb5f","property_id":"314186564","date":"20230130","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1638,"bounceRate":0.6044857768052516},"emitted_at":1678381363213}
-{"stream":"pages","data":{"uuid":"c627bc4b-3959-4bcb-98d9-ad0de7b4b915","property_id":"314186564","date":"20230109","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1594,"bounceRate":0.6356033452807647},"emitted_at":1678381363213}
-{"stream":"pages","data":{"uuid":"7b52c8e8-946f-4564-8b23-bb6d9d7f49c2","property_id":"314186564","date":"20230117","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1481,"bounceRate":0.6195266272189349},"emitted_at":1678381363213}
-{"stream":"pages","data":{"uuid":"6e600ce8-afba-4645-8825-06df0e00b70a","property_id":"314186564","date":"20230118","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1438,"bounceRate":0.5996376811594203},"emitted_at":1678381363213}
-{"stream":"pages","data":{"uuid":"3780cae2-de2a-42bb-b11f-24e56b88ed78","property_id":"314186564","date":"20230110","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1402,"bounceRate":0.6209677419354839},"emitted_at":1678381363213}
-{"stream":"pages","data":{"uuid":"8ca47bcc-2fed-47bf-ae41-285a8cbd4acb","property_id":"314186564","date":"20230112","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1384,"bounceRate":0.6355255070682237},"emitted_at":1678381363213}
-{"stream":"pages","data":{"uuid":"fc2802e8-7b37-4aa5-b801-e5d7c6e3244e","property_id":"314186564","date":"20230111","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1358,"bounceRate":0.6296529968454259},"emitted_at":1678381363214}
-{"stream":"pages","data":{"uuid":"3205cc1f-8f1f-4748-9794-295d51734587","property_id":"314186564","date":"20230119","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1337,"bounceRate":0.6132381570408826},"emitted_at":1678381363214}
-{"stream":"pages","data":{"uuid":"cfd090a0-0c40-43b0-b366-6668f79c4de6","property_id":"314186564","date":"20230124","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1327,"bounceRate":0.6260869565217392},"emitted_at":1678381363214}
-{"stream":"pages","data":{"uuid":"2d1eef6c-13f1-4ecc-91bf-3fe27cbc7e92","property_id":"314186564","date":"20230123","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1324,"bounceRate":0.5990660440293529},"emitted_at":1678381363214}
-{"stream":"pages","data":{"uuid":"cc7235d4-1a60-4594-8f40-884e91a6f4ea","property_id":"314186564","date":"20230127","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1249,"bounceRate":0.6347095871238628},"emitted_at":1678381363214}
-{"stream":"pages","data":{"uuid":"0b8be776-1f23-4060-9210-3879849368cb","property_id":"314186564","date":"20230125","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1212,"bounceRate":0.5846042120551924},"emitted_at":1678381363214}
-{"stream":"pages","data":{"uuid":"110b98e1-0ab8-49c6-88a0-cf45a18928fa","property_id":"314186564","date":"20230116","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1150,"bounceRate":0.6237698713096139},"emitted_at":1678381363214}
-{"stream":"pages","data":{"uuid":"470a6b49-00c8-49e9-a0c7-dbe667460ef1","property_id":"314186564","date":"20230105","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1144,"bounceRate":0.6569940476190477},"emitted_at":1678381363214}
-{"stream":"pages","data":{"uuid":"80d446d0-f561-4e90-9451-76b9d7fac99a","property_id":"314186564","date":"20230104","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1124,"bounceRate":0.6132723112128147},"emitted_at":1678381363214}
-{"stream":"pages","data":{"uuid":"a6159c64-0d9f-4a58-a7ed-2ec3f670af66","property_id":"314186564","date":"20230113","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1085,"bounceRate":0.6420600858369099},"emitted_at":1678381363214}
-{"stream":"pages","data":{"uuid":"65704725-7c22-4f2d-90d6-8205f952367d","property_id":"314186564","date":"20230103","hostName":"airbyte.com","pagePathPlusQueryString":"/","screenPageViews":1082,"bounceRate":0.6127490039840637},"emitted_at":1678381363214}
-{"stream":"website_overview","data":{"uuid":"61113a98-9297-42c0-bf4d-ae7ef3eb44d5","property_id":"314186564","date":"20230126","totalUsers":6168,"newUsers":4070,"sessions":8834,"sessionsPerUser":1.580887616320687,"averageSessionDuration":164.98179401697985,"screenPageViews":17314,"screenPageViewsPerSession":1.9599275526375368,"bounceRate":0.528073352954494},"emitted_at":1678381377100}
-{"stream":"website_overview","data":{"uuid":"14cca8fb-0ccb-42ff-beb1-3cb54b733fbd","property_id":"314186564","date":"20230130","totalUsers":3682,"newUsers":2000,"sessions":6608,"sessionsPerUser":2.1708278580814717,"averageSessionDuration":190.6988095730932,"screenPageViews":14538,"screenPageViewsPerSession":2.2000605326876514,"bounceRate":0.612590799031477},"emitted_at":1678381377101}
-{"stream":"website_overview","data":{"uuid":"bcc011da-9dce-40ae-ac00-bb25b28c2747","property_id":"314186564","date":"20230112","totalUsers":3416,"newUsers":1892,"sessions":5598,"sessionsPerUser":2.011498383039885,"averageSessionDuration":188.77579687477672,"screenPageViews":11043,"screenPageViewsPerSession":1.972668810289389,"bounceRate":0.6379063951411218},"emitted_at":1678381377101}
-{"stream":"website_overview","data":{"uuid":"bb4b1589-61be-43c7-8a73-d2255172d4b6","property_id":"314186564","date":"20230123","totalUsers":3308,"newUsers":1749,"sessions":5535,"sessionsPerUser":1.9967532467532467,"averageSessionDuration":188.03694558265582,"screenPageViews":10295,"screenPageViewsPerSession":1.8599819331526648,"bounceRate":0.5694670280036134},"emitted_at":1678381377102}
-{"stream":"website_overview","data":{"uuid":"c909659f-3dbc-4a96-b3c8-499522dee675","property_id":"314186564","date":"20230118","totalUsers":3248,"newUsers":1658,"sessions":5376,"sessionsPerUser":2.0317460317460316,"averageSessionDuration":172.09874560900298,"screenPageViews":8572,"screenPageViewsPerSession":1.5944940476190477,"bounceRate":0.5926339285714286},"emitted_at":1678381377102}
-{"stream":"website_overview","data":{"uuid":"01530e84-96f6-4d38-9475-6b95897b43de","property_id":"314186564","date":"20230111","totalUsers":3231,"newUsers":1894,"sessions":5518,"sessionsPerUser":2.06203288490284,"averageSessionDuration":149.535961576477,"screenPageViews":8722,"screenPageViewsPerSession":1.5806451612903225,"bounceRate":0.6652772743747735},"emitted_at":1678381377102}
-{"stream":"website_overview","data":{"uuid":"4e1e4484-8b31-4a09-8bb3-babba35c6ed1","property_id":"314186564","date":"20230117","totalUsers":3107,"newUsers":1512,"sessions":5135,"sessionsPerUser":2.0385073441842,"averageSessionDuration":183.1596054231743,"screenPageViews":9669,"screenPageViewsPerSession":1.8829600778967868,"bounceRate":0.5888997078870497},"emitted_at":1678381377103}
-{"stream":"website_overview","data":{"uuid":"8d7fea6d-3004-4319-a45c-2b1109670773","property_id":"314186564","date":"20230127","totalUsers":3098,"newUsers":1601,"sessions":4931,"sessionsPerUser":1.9739791833466773,"averageSessionDuration":178.9474292780369,"screenPageViews":9555,"screenPageViewsPerSession":1.9377408233624012,"bounceRate":0.619549787061448},"emitted_at":1678381377103}
-{"stream":"website_overview","data":{"uuid":"e850847f-74cf-4bba-bc5f-16f3d1cdc1c9","property_id":"314186564","date":"20230124","totalUsers":3061,"newUsers":1509,"sessions":5339,"sessionsPerUser":2.1296370163542084,"averageSessionDuration":193.48503378460387,"screenPageViews":10235,"screenPageViewsPerSession":1.9170256602359992,"bounceRate":0.6147218580258476},"emitted_at":1678381377103}
-{"stream":"website_overview","data":{"uuid":"51b80e4d-9e7f-4055-8497-c435a2617130","property_id":"314186564","date":"20230119","totalUsers":3035,"newUsers":1523,"sessions":5033,"sessionsPerUser":2.026983487716472,"averageSessionDuration":184.39271639558913,"screenPageViews":9458,"screenPageViewsPerSession":1.8791972978342937,"bounceRate":0.5845420226505067},"emitted_at":1678381377104}
-{"stream":"website_overview","data":{"uuid":"fc93bcad-558d-454b-81eb-614d99e15b85","property_id":"314186564","date":"20230125","totalUsers":2840,"newUsers":1441,"sessions":4652,"sessionsPerUser":2.0008602150537635,"averageSessionDuration":204.45900655674978,"screenPageViews":9531,"screenPageViewsPerSession":2.0487962166809974,"bounceRate":0.5801805674978504},"emitted_at":1678381377104}
-{"stream":"website_overview","data":{"uuid":"52aad0a3-2340-403b-99f7-a0e5a2fd8eb3","property_id":"314186564","date":"20230113","totalUsers":2786,"newUsers":1545,"sessions":4403,"sessionsPerUser":1.9210296684118673,"averageSessionDuration":193.9103609679764,"screenPageViews":8331,"screenPageViewsPerSession":1.8921190097660685,"bounceRate":0.6422893481717011},"emitted_at":1678381377104}
-{"stream":"website_overview","data":{"uuid":"784a70e8-4325-44c9-8286-0bfe2d7ef8fb","property_id":"314186564","date":"20230110","totalUsers":2757,"newUsers":1419,"sessions":4681,"sessionsPerUser":2.134518923848609,"averageSessionDuration":128.47261591860715,"screenPageViews":5555,"screenPageViewsPerSession":1.1867122409741508,"bounceRate":0.6656697286904507},"emitted_at":1678381377104}
-{"stream":"website_overview","data":{"uuid":"34659aa4-9983-4a68-9de5-63a1381ec607","property_id":"314186564","date":"20230109","totalUsers":2691,"newUsers":1390,"sessions":4564,"sessionsPerUser":2.115901715345387,"averageSessionDuration":132.07061591520596,"screenPageViews":5725,"screenPageViewsPerSession":1.2543821209465382,"bounceRate":0.6726555652936022},"emitted_at":1678381377105}
-{"stream":"website_overview","data":{"uuid":"17ad08b5-4b51-40f3-be6f-838967a900b8","property_id":"314186564","date":"20230116","totalUsers":2594,"newUsers":1268,"sessions":4517,"sessionsPerUser":2.194849368318756,"averageSessionDuration":172.99511950099625,"screenPageViews":7693,"screenPageViewsPerSession":1.7031215408456941,"bounceRate":0.6232012397609032},"emitted_at":1678381377105}
-{"stream":"website_overview","data":{"uuid":"5f09f109-a218-46de-a3e4-14c0719d3aaf","property_id":"314186564","date":"20230105","totalUsers":2377,"newUsers":1194,"sessions":3913,"sessionsPerUser":2.041210224308816,"averageSessionDuration":144.14393872629697,"screenPageViews":4813,"screenPageViewsPerSession":1.2300025555839509,"bounceRate":0.6580628673651929},"emitted_at":1678381377105}
-{"stream":"website_overview","data":{"uuid":"e8917eaa-449d-49c7-9d13-6af381ba50a0","property_id":"314186564","date":"20230120","totalUsers":2344,"newUsers":1173,"sessions":3816,"sessionsPerUser":2.04392072844135,"averageSessionDuration":190.34353808307128,"screenPageViews":7625,"screenPageViewsPerSession":1.9981656184486374,"bounceRate":0.5880503144654088},"emitted_at":1678381377106}
-{"stream":"website_overview","data":{"uuid":"fdd62ddb-a6a9-49c9-9f25-5f011a79a560","property_id":"314186564","date":"20230104","totalUsers":2239,"newUsers":1137,"sessions":3765,"sessionsPerUser":2.1139809096013478,"averageSessionDuration":139.47659503585655,"screenPageViews":4638,"screenPageViewsPerSession":1.2318725099601593,"bounceRate":0.6608233731739708},"emitted_at":1678381377106}
-{"stream":"website_overview","data":{"uuid":"89654a98-195a-4402-b828-9c64086c60a3","property_id":"314186564","date":"20230302","totalUsers":2770,"newUsers":1386,"sessions":4008,"sessionsPerUser":1.660314830157415,"averageSessionDuration":271.822018881986,"screenPageViews":11290,"screenPageViewsPerSession":2.8168662674650697,"bounceRate":0.41092814371257486},"emitted_at":1678381379199}
-{"stream":"website_overview","data":{"uuid":"5a39fa48-8a34-448e-8593-376d16d3ab92","property_id":"314186564","date":"20230303","totalUsers":2292,"newUsers":1161,"sessions":3200,"sessionsPerUser":1.634320735444331,"averageSessionDuration":244.685786118125,"screenPageViews":8864,"screenPageViewsPerSession":2.77,"bounceRate":0.43875},"emitted_at":1678381379199}
-{"stream":"website_overview","data":{"uuid":"a3cd1fb4-d6cd-4cdf-a9a3-273455a939e2","property_id":"314186564","date":"20230305","totalUsers":1576,"newUsers":901,"sessions":2028,"sessionsPerUser":1.4933726067746687,"averageSessionDuration":218.57345723915188,"screenPageViews":4863,"screenPageViewsPerSession":2.3979289940828403,"bounceRate":0.4285009861932939},"emitted_at":1678381379201}
-{"stream":"website_overview","data":{"uuid":"00d72b8b-24a8-4885-af3e-6e2edc617c74","property_id":"314186564","date":"20230304","totalUsers":1253,"newUsers":784,"sessions":1593,"sessionsPerUser":1.4286995515695067,"averageSessionDuration":234.63554106779657,"screenPageViews":3917,"screenPageViewsPerSession":2.4588826114249844,"bounceRate":0.455743879472693},"emitted_at":1678381379202}
+{"stream": "daily_active_users", "data": {"uuid": "8958ad05-9217-4232-af3a-842b2ef3066a", "property_id": "314186564", "date": "20230406", "active1DayUsers": 2562}, "emitted_at": 1681405954033}
+{"stream": "daily_active_users", "data": {"uuid": "2ededb64-296c-4cd3-8285-258f952e6d01", "property_id": "314186564", "date": "20230403", "active1DayUsers": 2521}, "emitted_at": 1681405954034}
+{"stream": "daily_active_users", "data": {"uuid": "aee7c406-9668-4e7d-8f1e-e4b6e944781a", "property_id": "314186564", "date": "20230404", "active1DayUsers": 2386}, "emitted_at": 1681405954034}
+{"stream": "daily_active_users", "data": {"uuid": "8fdcf306-c6ce-418d-a8b0-114c3e0853e3", "property_id": "314186564", "date": "20230405", "active1DayUsers": 2318}, "emitted_at": 1681405954035}
+{"stream": "daily_active_users", "data": {"uuid": "ddae49fa-6a49-409c-a3d9-972043e1297e", "property_id": "314186564", "date": "20230411", "active1DayUsers": 2248}, "emitted_at": 1681405954035}
+{"stream": "daily_active_users", "data": {"uuid": "d3c0fe8d-729b-49d5-ba09-836d11c72b36", "property_id": "314186564", "date": "20230412", "active1DayUsers": 2164}, "emitted_at": 1681405954036}
+{"stream": "daily_active_users", "data": {"uuid": "3bed51b3-fe19-4cfe-aa7b-2f834444e4ac", "property_id": "314186564", "date": "20230410", "active1DayUsers": 2021}, "emitted_at": 1681405954036}
+{"stream": "daily_active_users", "data": {"uuid": "930dc88c-2176-44d7-b89d-f7a0deed7cb6", "property_id": "314186564", "date": "20230407", "active1DayUsers": 1628}, "emitted_at": 1681405954037}
+{"stream": "daily_active_users", "data": {"uuid": "862aee10-bc17-4fcb-9917-c03dcf930b7a", "property_id": "314186564", "date": "20230409", "active1DayUsers": 1009}, "emitted_at": 1681405954037}
+{"stream": "daily_active_users", "data": {"uuid": "888e8a03-f908-49ea-bc24-47d3e0c71ce5", "property_id": "314186564", "date": "20230402", "active1DayUsers": 978}, "emitted_at": 1681405954038}
+{"stream": "weekly_active_users", "data": {"uuid": "552f657c-894d-42a5-b136-621a27c83f20", "property_id": "314186564", "date": "20230403", "active7DayUsers": 11840}, "emitted_at": 1681405954684}
+{"stream": "weekly_active_users", "data": {"uuid": "ab335ba9-16a4-47f7-9475-0cd0c71e13c5", "property_id": "314186564", "date": "20230406", "active7DayUsers": 11828}, "emitted_at": 1681405954685}
+{"stream": "weekly_active_users", "data": {"uuid": "c2249443-a731-454f-a92d-dcabde1e053e", "property_id": "314186564", "date": "20230404", "active7DayUsers": 11812}, "emitted_at": 1681405954685}
+{"stream": "weekly_active_users", "data": {"uuid": "9031b092-0365-45f6-a3fd-a42697fc60e5", "property_id": "314186564", "date": "20230405", "active7DayUsers": 11751}, "emitted_at": 1681405954685}
+{"stream": "weekly_active_users", "data": {"uuid": "686ec0f2-245a-41ee-8b2f-28c6ff58cca3", "property_id": "314186564", "date": "20230408", "active7DayUsers": 11745}, "emitted_at": 1681405954685}
+{"stream": "weekly_active_users", "data": {"uuid": "c230f0bb-e08d-410c-aaf7-92ea55c1eb3c", "property_id": "314186564", "date": "20230409", "active7DayUsers": 11739}, "emitted_at": 1681405954685}
+{"stream": "weekly_active_users", "data": {"uuid": "360eeddb-8e7c-4cf8-ba68-fe0f74bdd4b2", "property_id": "314186564", "date": "20230407", "active7DayUsers": 11637}, "emitted_at": 1681405954685}
+{"stream": "weekly_active_users", "data": {"uuid": "fa08f066-b0fe-4cce-9ff1-aa51533a36a2", "property_id": "314186564", "date": "20230401", "active7DayUsers": 11547}, "emitted_at": 1681405954685}
+{"stream": "weekly_active_users", "data": {"uuid": "99849845-7511-46ee-bb0f-b99fcbe86094", "property_id": "314186564", "date": "20230402", "active7DayUsers": 11521}, "emitted_at": 1681405954685}
+{"stream": "weekly_active_users", "data": {"uuid": "1537fbde-6a1e-4676-ad38-3952c6c49517", "property_id": "314186564", "date": "20230410", "active7DayUsers": 11369}, "emitted_at": 1681405954686}
+{"stream": "four_weekly_active_users", "data": {"uuid": "3ea1880f-1e1b-42f8-858f-d66c49400592", "property_id": "314186564", "date": "20230401", "active28DayUsers": 48082}, "emitted_at": 1681405955854}
+{"stream": "four_weekly_active_users", "data": {"uuid": "e3697089-6a56-466f-893c-57506cce44f4", "property_id": "314186564", "date": "20230402", "active28DayUsers": 47927}, "emitted_at": 1681405955854}
+{"stream": "four_weekly_active_users", "data": {"uuid": "2a76a756-b625-4291-9012-09d6449b4460", "property_id": "314186564", "date": "20230403", "active28DayUsers": 44678}, "emitted_at": 1681405955854}
+{"stream": "four_weekly_active_users", "data": {"uuid": "30f93662-7a47-4455-bb87-4e23753d7836", "property_id": "314186564", "date": "20230404", "active28DayUsers": 42997}, "emitted_at": 1681405955854}
+{"stream": "four_weekly_active_users", "data": {"uuid": "bf5980dd-18bd-4dd3-b6f7-123a8d9bc7ba", "property_id": "314186564", "date": "20230405", "active28DayUsers": 42219}, "emitted_at": 1681405955855}
+{"stream": "four_weekly_active_users", "data": {"uuid": "095af0ca-ca67-44a9-acaf-fbe1f04beb8f", "property_id": "314186564", "date": "20230406", "active28DayUsers": 42028}, "emitted_at": 1681405955855}
+{"stream": "four_weekly_active_users", "data": {"uuid": "29958f7e-91a1-4377-a5e7-763ee1fc26f7", "property_id": "314186564", "date": "20230407", "active28DayUsers": 41851}, "emitted_at": 1681405955855}
+{"stream": "four_weekly_active_users", "data": {"uuid": "b5cd639e-99a4-4fd9-871e-9883a509d35e", "property_id": "314186564", "date": "20230408", "active28DayUsers": 41775}, "emitted_at": 1681405955855}
+{"stream": "four_weekly_active_users", "data": {"uuid": "b85e1864-aca2-45ae-8bc2-614da510ac29", "property_id": "314186564", "date": "20230409", "active28DayUsers": 41717}, "emitted_at": 1681405955855}
+{"stream": "four_weekly_active_users", "data": {"uuid": "505deea8-b4d0-4d76-9c78-1faaa8e3c725", "property_id": "314186564", "date": "20230410", "active28DayUsers": 41212}, "emitted_at": 1681405955855}
+{"stream": "devices", "data": {"uuid": "f43b1120-b565-4174-a974-251de4ddb3e7", "property_id": "314186564", "date": "20230411", "deviceCategory": "desktop", "operatingSystem": "Macintosh", "browser": "Chrome", "totalUsers": 973, "newUsers": 368, "sessions": 1667, "sessionsPerUser": 2.110126582278481, "averageSessionDuration": 308.8923676994601, "screenPageViews": 5367, "screenPageViewsPerSession": 3.2195560887822436, "bounceRate": 0.498500299940012}, "emitted_at": 1681405958296}
+{"stream": "devices", "data": {"uuid": "11fa7956-54f4-42ae-bf50-ccd7f78acb43", "property_id": "314186564", "date": "20230412", "deviceCategory": "desktop", "operatingSystem": "Macintosh", "browser": "Chrome", "totalUsers": 969, "newUsers": 350, "sessions": 1588, "sessionsPerUser": 2.0025220680958387, "averageSessionDuration": 336.108126070529, "screenPageViews": 4726, "screenPageViewsPerSession": 2.9760705289672544, "bounceRate": 0.5012594458438288}, "emitted_at": 1681405958296}
+{"stream": "devices", "data": {"uuid": "3a7a9be6-715f-407d-964d-36a335d1f89c", "property_id": "314186564", "date": "20230404", "deviceCategory": "desktop", "operatingSystem": "Macintosh", "browser": "Chrome", "totalUsers": 942, "newUsers": 352, "sessions": 1554, "sessionsPerUser": 2.007751937984496, "averageSessionDuration": 328.66656451029604, "screenPageViews": 5217, "screenPageViewsPerSession": 3.357142857142857, "bounceRate": 0.4954954954954955}, "emitted_at": 1681405958296}
+{"stream": "devices", "data": {"uuid": "d174c54a-7091-4736-b921-c191bf5dd4b6", "property_id": "314186564", "date": "20230406", "deviceCategory": "desktop", "operatingSystem": "Macintosh", "browser": "Chrome", "totalUsers": 942, "newUsers": 389, "sessions": 1551, "sessionsPerUser": 1.9783163265306123, "averageSessionDuration": 357.5382107272727, "screenPageViews": 5102, "screenPageViewsPerSession": 3.289490651192779, "bounceRate": 0.49258542875564154}, "emitted_at": 1681405958297}
+{"stream": "devices", "data": {"uuid": "889df6a1-f480-483e-8957-d4ca767028f8", "property_id": "314186564", "date": "20230403", "deviceCategory": "desktop", "operatingSystem": "Macintosh", "browser": "Chrome", "totalUsers": 929, "newUsers": 341, "sessions": 1546, "sessionsPerUser": 2.0558510638297873, "averageSessionDuration": 315.4776974385511, "screenPageViews": 5116, "screenPageViewsPerSession": 3.309184993531695, "bounceRate": 0.5071151358344114}, "emitted_at": 1681405958297}
+{"stream": "devices", "data": {"uuid": "7a12fdb1-65bd-4f9d-9b28-f7d4bd9efc45", "property_id": "314186564", "date": "20230405", "deviceCategory": "desktop", "operatingSystem": "Macintosh", "browser": "Chrome", "totalUsers": 926, "newUsers": 363, "sessions": 1573, "sessionsPerUser": 2.0428571428571427, "averageSessionDuration": 346.09502719898285, "screenPageViews": 5032, "screenPageViewsPerSession": 3.1989828353464715, "bounceRate": 0.4869675778766688}, "emitted_at": 1681405958297}
+{"stream": "devices", "data": {"uuid": "36283f3b-12f0-44bf-af7e-fa17790a536a", "property_id": "314186564", "date": "20230410", "deviceCategory": "desktop", "operatingSystem": "Macintosh", "browser": "Chrome", "totalUsers": 920, "newUsers": 374, "sessions": 1524, "sessionsPerUser": 2.0456375838926175, "averageSessionDuration": 255.77025801837266, "screenPageViews": 4025, "screenPageViewsPerSession": 2.641076115485564, "bounceRate": 0.5255905511811023}, "emitted_at": 1681405958297}
+{"stream": "devices", "data": {"uuid": "9ed102f9-6670-4883-890a-86d647e3e08a", "property_id": "314186564", "date": "20230403", "deviceCategory": "desktop", "operatingSystem": "Windows", "browser": "Chrome", "totalUsers": 781, "newUsers": 366, "sessions": 1184, "sessionsPerUser": 1.8528951486697967, "averageSessionDuration": 278.84846059881755, "screenPageViews": 2993, "screenPageViewsPerSession": 2.5278716216216215, "bounceRate": 0.5616554054054054}, "emitted_at": 1681405958297}
+{"stream": "devices", "data": {"uuid": "a4d1798d-40ec-4653-b3ec-2c4951fa7323", "property_id": "314186564", "date": "20230411", "deviceCategory": "desktop", "operatingSystem": "Windows", "browser": "Chrome", "totalUsers": 760, "newUsers": 365, "sessions": 1155, "sessionsPerUser": 1.896551724137931, "averageSessionDuration": 264.1307251896104, "screenPageViews": 2452, "screenPageViewsPerSession": 2.122943722943723, "bounceRate": 0.5316017316017316}, "emitted_at": 1681405958298}
+{"stream": "devices", "data": {"uuid": "0f4cb5c7-703f-4e21-9efd-828da56eb03b", "property_id": "314186564", "date": "20230404", "deviceCategory": "desktop", "operatingSystem": "Windows", "browser": "Chrome", "totalUsers": 727, "newUsers": 345, "sessions": 1137, "sessionsPerUser": 1.8517915309446253, "averageSessionDuration": 252.06245670272648, "screenPageViews": 2601, "screenPageViewsPerSession": 2.287598944591029, "bounceRate": 0.5488126649076517}, "emitted_at": 1681405958298}
+{"stream": "locations", "data": {"uuid": "5606f203-9304-4b42-82c8-af3d825cd34a", "property_id": "314186564", "region": "New York", "country": "United States", "city": "New York", "date": "20230406", "totalUsers": 108, "newUsers": 62, "sessions": 157, "sessionsPerUser": 1.6354166666666667, "averageSessionDuration": 435.44268001273895, "screenPageViews": 534, "screenPageViewsPerSession": 3.4012738853503186, "bounceRate": 0.5031847133757962}, "emitted_at": 1681405962136}
+{"stream": "locations", "data": {"uuid": "759886f0-3723-44bf-ba3f-1b994169ed85", "property_id": "314186564", "region": "New York", "country": "United States", "city": "New York", "date": "20230405", "totalUsers": 95, "newUsers": 54, "sessions": 123, "sessionsPerUser": 1.5769230769230769, "averageSessionDuration": 499.2074986666667, "screenPageViews": 481, "screenPageViewsPerSession": 3.910569105691057, "bounceRate": 0.44715447154471544}, "emitted_at": 1681405962136}
+{"stream": "locations", "data": {"uuid": "81c1cd25-8d43-48a9-836b-e10b1991466a", "property_id": "314186564", "region": "New York", "country": "United States", "city": "New York", "date": "20230403", "totalUsers": 94, "newUsers": 46, "sessions": 126, "sessionsPerUser": 1.68, "averageSessionDuration": 424.00281903174607, "screenPageViews": 499, "screenPageViewsPerSession": 3.9603174603174605, "bounceRate": 0.5238095238095238}, "emitted_at": 1681405962136}
+{"stream": "locations", "data": {"uuid": "1a833419-629e-4678-9fb2-f97f10da5d40", "property_id": "314186564", "region": "New York", "country": "United States", "city": "New York", "date": "20230404", "totalUsers": 85, "newUsers": 47, "sessions": 121, "sessionsPerUser": 1.6575342465753424, "averageSessionDuration": 378.81275640495863, "screenPageViews": 434, "screenPageViewsPerSession": 3.5867768595041323, "bounceRate": 0.48760330578512395}, "emitted_at": 1681405962136}
+{"stream": "locations", "data": {"uuid": "577fd852-67a2-43c3-8321-56fa00dac58c", "property_id": "314186564", "region": "New York", "country": "United States", "city": "New York", "date": "20230412", "totalUsers": 85, "newUsers": 49, "sessions": 131, "sessionsPerUser": 1.8194444444444444, "averageSessionDuration": 379.1322029236641, "screenPageViews": 391, "screenPageViewsPerSession": 2.984732824427481, "bounceRate": 0.5267175572519084}, "emitted_at": 1681405962137}
+{"stream": "locations", "data": {"uuid": "bb0f3fa2-dc9c-475d-a47c-ace82c720da2", "property_id": "314186564", "region": "New York", "country": "United States", "city": "New York", "date": "20230410", "totalUsers": 81, "newUsers": 42, "sessions": 135, "sessionsPerUser": 1.9565217391304348, "averageSessionDuration": 303.13140742962963, "screenPageViews": 376, "screenPageViewsPerSession": 2.785185185185185, "bounceRate": 0.5407407407407407}, "emitted_at": 1681405962137}
+{"stream": "locations", "data": {"uuid": "f7057f58-fbbd-4947-ae37-a7a29d6700ac", "property_id": "314186564", "region": "New York", "country": "United States", "city": "New York", "date": "20230411", "totalUsers": 81, "newUsers": 38, "sessions": 123, "sessionsPerUser": 1.9523809523809523, "averageSessionDuration": 362.51537134146344, "screenPageViews": 312, "screenPageViewsPerSession": 2.5365853658536586, "bounceRate": 0.5934959349593496}, "emitted_at": 1681405962137}
+{"stream": "locations", "data": {"uuid": "afb62a0d-5e5a-4f88-8367-3fe45a35d06f", "property_id": "314186564", "region": "Karnataka", "country": "India", "city": "Bengaluru", "date": "20230411", "totalUsers": 76, "newUsers": 52, "sessions": 123, "sessionsPerUser": 1.8636363636363635, "averageSessionDuration": 203.00314456910567, "screenPageViews": 261, "screenPageViewsPerSession": 2.1219512195121952, "bounceRate": 0.4959349593495935}, "emitted_at": 1681405962137}
+{"stream": "locations", "data": {"uuid": "ce319e7f-8f8f-4c73-9f45-9a80a08bcf33", "property_id": "314186564", "region": "Karnataka", "country": "India", "city": "Bengaluru", "date": "20230403", "totalUsers": 69, "newUsers": 34, "sessions": 102, "sessionsPerUser": 1.728813559322034, "averageSessionDuration": 256.4942830490196, "screenPageViews": 216, "screenPageViewsPerSession": 2.1176470588235294, "bounceRate": 0.5490196078431373}, "emitted_at": 1681405962137}
+{"stream": "locations", "data": {"uuid": "28fa18ea-3a0c-4c09-9ffc-b24d2d5abeaf", "property_id": "314186564", "region": "New York", "country": "United States", "city": "New York", "date": "20230407", "totalUsers": 69, "newUsers": 30, "sessions": 98, "sessionsPerUser": 1.849056603773585, "averageSessionDuration": 489.54009168367344, "screenPageViews": 376, "screenPageViewsPerSession": 3.836734693877551, "bounceRate": 0.4489795918367347}, "emitted_at": 1681405962137}
+{"stream": "pages", "data": {"uuid": "1d042583-6008-4bb8-abad-a1d3a171c9c5", "property_id": "314186564", "date": "20230405", "hostName": "airbyte.com", "pagePathPlusQueryString": "/", "screenPageViews": 1190, "bounceRate": 0.5516393442622951}, "emitted_at": 1681405967183}
+{"stream": "pages", "data": {"uuid": "e24096ca-ad32-49eb-824a-2a65e52b9a08", "property_id": "314186564", "date": "20230411", "hostName": "airbyte.com", "pagePathPlusQueryString": "/", "screenPageViews": 1151, "bounceRate": 0.5400641025641025}, "emitted_at": 1681405967184}
+{"stream": "pages", "data": {"uuid": "8911f922-c707-4af1-95b5-18a81e31b5af", "property_id": "314186564", "date": "20230404", "hostName": "airbyte.com", "pagePathPlusQueryString": "/", "screenPageViews": 1137, "bounceRate": 0.5617232808616405}, "emitted_at": 1681405967184}
+{"stream": "pages", "data": {"uuid": "315dad3c-81e5-432f-a47c-134e89a7cf42", "property_id": "314186564", "date": "20230410", "hostName": "airbyte.com", "pagePathPlusQueryString": "/", "screenPageViews": 1099, "bounceRate": 0.5416666666666666}, "emitted_at": 1681405967184}
+{"stream": "pages", "data": {"uuid": "8ba00398-80cf-4a17-afba-2cf223244cfe", "property_id": "314186564", "date": "20230403", "hostName": "airbyte.com", "pagePathPlusQueryString": "/", "screenPageViews": 1092, "bounceRate": 0.5569070373588184}, "emitted_at": 1681405967184}
+{"stream": "pages", "data": {"uuid": "0d62e64a-4da9-46b8-8e90-e1180ea9b1ab", "property_id": "314186564", "date": "20230412", "hostName": "airbyte.com", "pagePathPlusQueryString": "/", "screenPageViews": 1089, "bounceRate": 0.5690515806988353}, "emitted_at": 1681405967184}
+{"stream": "pages", "data": {"uuid": "d5a7b5bf-b8a9-4f29-8a06-0e4bcfee17a7", "property_id": "314186564", "date": "20230406", "hostName": "airbyte.com", "pagePathPlusQueryString": "/", "screenPageViews": 1005, "bounceRate": 0.5516279069767441}, "emitted_at": 1681405967185}
+{"stream": "pages", "data": {"uuid": "e77044bf-1cd6-4ef0-a475-ff6255ac1cf8", "property_id": "314186564", "date": "20230407", "hostName": "airbyte.com", "pagePathPlusQueryString": "/", "screenPageViews": 734, "bounceRate": 0.571619812583668}, "emitted_at": 1681405967185}
+{"stream": "pages", "data": {"uuid": "2c0db575-cf8a-4cca-955d-baa2032bec54", "property_id": "314186564", "date": "20230403", "hostName": "airbyte.com", "pagePathPlusQueryString": "/blog/data-modeling-unsung-hero-data-engineering-introduction", "screenPageViews": 541, "bounceRate": 0.7192691029900332}, "emitted_at": 1681405967185}
+{"stream": "pages", "data": {"uuid": "4d4ea3e6-91ac-4da7-baf6-4e8cd6665b8c", "property_id": "314186564", "date": "20230402", "hostName": "airbyte.com", "pagePathPlusQueryString": "/", "screenPageViews": 529, "bounceRate": 0.5614678899082569}, "emitted_at": 1681405967185}
+{"stream": "website_overview", "data": {"uuid": "3175b7c6-8257-4111-b15a-5c97e16437fe", "property_id": "314186564", "date": "20230406", "totalUsers": 3014, "newUsers": 1539, "sessions": 4257, "sessionsPerUser": 1.661592505854801, "averageSessionDuration": 270.9253856281419, "screenPageViews": 10839, "screenPageViewsPerSession": 2.5461592670894997, "bounceRate": 0.5391120507399577}, "emitted_at": 1681405971634}
+{"stream": "website_overview", "data": {"uuid": "c376b15d-d38e-4caf-816d-9dc2b8f04d8f", "property_id": "314186564", "date": "20230403", "totalUsers": 2988, "newUsers": 1461, "sessions": 4350, "sessionsPerUser": 1.725505751685839, "averageSessionDuration": 246.36103450390806, "screenPageViews": 10749, "screenPageViewsPerSession": 2.4710344827586206, "bounceRate": 0.5618390804597702}, "emitted_at": 1681405971634}
+{"stream": "website_overview", "data": {"uuid": "28294b7a-85ad-4d73-bd11-20e5041c7de9", "property_id": "314186564", "date": "20230404", "totalUsers": 2817, "newUsers": 1367, "sessions": 4153, "sessionsPerUser": 1.7405699916177704, "averageSessionDuration": 259.69049313965803, "screenPageViews": 10653, "screenPageViewsPerSession": 2.5651336383337346, "bounceRate": 0.5379243920057789}, "emitted_at": 1681405971635}
+{"stream": "website_overview", "data": {"uuid": "7cba1969-8d97-4f56-b1c2-07795408ec05", "property_id": "314186564", "date": "20230405", "totalUsers": 2754, "newUsers": 1333, "sessions": 4004, "sessionsPerUser": 1.727351164797239, "averageSessionDuration": 290.08648263536463, "screenPageViews": 10737, "screenPageViewsPerSession": 2.6815684315684316, "bounceRate": 0.5072427572427572}, "emitted_at": 1681405971635}
+{"stream": "website_overview", "data": {"uuid": "19b5c257-3ff5-4f76-af0a-e8d54915fcf5", "property_id": "314186564", "date": "20230411", "totalUsers": 2730, "newUsers": 1273, "sessions": 4006, "sessionsPerUser": 1.7820284697508897, "averageSessionDuration": 256.8832527284074, "screenPageViews": 10073, "screenPageViewsPerSession": 2.514478282576136, "bounceRate": 0.5162256615077384}, "emitted_at": 1681405971635}
+{"stream": "website_overview", "data": {"uuid": "14c67449-e3d5-4e59-af8e-8fc8dd3880db", "property_id": "314186564", "date": "20230412", "totalUsers": 2642, "newUsers": 1215, "sessions": 3940, "sessionsPerUser": 1.820702402957486, "averageSessionDuration": 281.3629124893401, "screenPageViews": 10621, "screenPageViewsPerSession": 2.6956852791878174, "bounceRate": 0.5309644670050762}, "emitted_at": 1681405971635}
+{"stream": "website_overview", "data": {"uuid": "ffa23a73-b5b1-41f6-ae2e-b27a4b6e020e", "property_id": "314186564", "date": "20230410", "totalUsers": 2409, "newUsers": 1173, "sessions": 3602, "sessionsPerUser": 1.7822859970311726, "averageSessionDuration": 252.51497996779568, "screenPageViews": 8973, "screenPageViewsPerSession": 2.491116046640755, "bounceRate": 0.524153248195447}, "emitted_at": 1681405971635}
+{"stream": "website_overview", "data": {"uuid": "e42b5011-0d04-4e34-8b40-03b463f8537c", "property_id": "314186564", "date": "20230407", "totalUsers": 1950, "newUsers": 974, "sessions": 2710, "sessionsPerUser": 1.6646191646191646, "averageSessionDuration": 261.6388968815498, "screenPageViews": 6972, "screenPageViewsPerSession": 2.572693726937269, "bounceRate": 0.5431734317343173}, "emitted_at": 1681405971635}
+{"stream": "website_overview", "data": {"uuid": "93775261-4ea3-4fb4-babb-4110b6843fbb", "property_id": "314186564", "date": "20230409", "totalUsers": 1277, "newUsers": 664, "sessions": 1661, "sessionsPerUser": 1.6461843409316155, "averageSessionDuration": 199.5610062384106, "screenPageViews": 3300, "screenPageViewsPerSession": 1.9867549668874172, "bounceRate": 0.5605057194461168}, "emitted_at": 1681405971635}
+{"stream": "website_overview", "data": {"uuid": "4df90187-80fa-433e-8c99-bfa28764c5a3", "property_id": "314186564", "date": "20230402", "totalUsers": 1185, "newUsers": 605, "sessions": 1505, "sessionsPerUser": 1.5388548057259714, "averageSessionDuration": 221.2044838358804, "screenPageViews": 3260, "screenPageViewsPerSession": 2.166112956810631, "bounceRate": 0.5348837209302325}, "emitted_at": 1681405971636}
+{"stream": "cohort_report", "data": {"uuid": "f75938fd-3274-4807-8c37-ce7dd0c3a790", "property_id": "314186564", "cohort": "cohort_0", "cohortNthDay": "0000", "cohortActiveUsers": 731}, "emitted_at": 1681405973101}
+{"stream": "cohort_report", "data": {"uuid": "8f228a9c-57b8-4329-9de7-f5fb56ee18b6", "property_id": "314186564", "cohort": "cohort_0", "cohortNthDay": "0001", "cohortActiveUsers": 25}, "emitted_at": 1681405973101}
+{"stream": "cohort_report", "data": {"uuid": "f79f8d4d-4166-4fcd-9ca0-0704c3b9af13", "property_id": "314186564", "cohort": "cohort_0", "cohortNthDay": "0002", "cohortActiveUsers": 9}, "emitted_at": 1681405973101}
+{"stream": "cohort_report", "data": {"uuid": "d47f77ef-5e72-4c66-9360-cee92352deaf", "property_id": "314186564", "cohort": "cohort_0", "cohortNthDay": "0003", "cohortActiveUsers": 6}, "emitted_at": 1681405973101}
+{"stream": "cohort_report", "data": {"uuid": "d90efbfd-b320-45ea-9b51-672fa86d01bb", "property_id": "314186564", "cohort": "cohort_0", "cohortNthDay": "0004", "cohortActiveUsers": 4}, "emitted_at": 1681405973101}
+{"stream": "cohort_report", "data": {"uuid": "8b2ded37-ede8-4f27-932f-b6b357c363a8", "property_id": "314186564", "cohort": "cohort_0", "cohortNthDay": "0009", "cohortActiveUsers": 4}, "emitted_at": 1681405973102}
+{"stream": "cohort_report", "data": {"uuid": "6e8e19a2-a5cb-4a82-b800-23f38a0f5268", "property_id": "314186564", "cohort": "cohort_0", "cohortNthDay": "0010", "cohortActiveUsers": 4}, "emitted_at": 1681405973102}
+{"stream": "cohort_report", "data": {"uuid": "38fc20ce-d8f1-459c-b880-44851128a923", "property_id": "314186564", "cohort": "cohort_0", "cohortNthDay": "0011", "cohortActiveUsers": 4}, "emitted_at": 1681405973102}
+{"stream": "cohort_report", "data": {"uuid": "8a77d306-0c5d-431c-b2a7-6b2c87383719", "property_id": "314186564", "cohort": "cohort_0", "cohortNthDay": "0013", "cohortActiveUsers": 4}, "emitted_at": 1681405973102}
+{"stream": "cohort_report", "data": {"uuid": "105f7916-0d45-4e17-98db-c6ea3e7d5223", "property_id": "314186564", "cohort": "cohort_0", "cohortNthDay": "0025", "cohortActiveUsers": 4}, "emitted_at": 1681405973102}
+{"stream": "pivot_report", "data": {"uuid": "a220f05f-5185-41b7-9730-379875cc8866", "property_id": "314186564", "browser": "Chrome", "country": "United States", "language": "English", "sessions": 10441}, "emitted_at": 1681405974686}
+{"stream": "pivot_report", "data": {"uuid": "d01ac2b1-8947-4231-89f6-822fc7b08a01", "property_id": "314186564", "browser": "Chrome", "country": "India", "language": "English", "sessions": 4170}, "emitted_at": 1681405974686}
+{"stream": "pivot_report", "data": {"uuid": "cd9027aa-8226-418c-9b60-9d6856327a93", "property_id": "314186564", "browser": "Safari", "country": "United States", "language": "English", "sessions": 1798}, "emitted_at": 1681405974686}
+{"stream": "pivot_report", "data": {"uuid": "79a69e5c-0ceb-45e7-b789-5a4904ce273d", "property_id": "314186564", "browser": "Chrome", "country": "Canada", "language": "English", "sessions": 961}, "emitted_at": 1681405974686}
+{"stream": "pivot_report", "data": {"uuid": "c9d18f96-3762-47e0-b322-72ad7953c645", "property_id": "314186564", "browser": "Chrome", "country": "United Kingdom", "language": "English", "sessions": 740}, "emitted_at": 1681405974686}
+{"stream": "pivot_report", "data": {"uuid": "5688b831-a3be-4b5a-ae0b-f464b8098de4", "property_id": "314186564", "browser": "Chrome", "country": "Australia", "language": "English", "sessions": 621}, "emitted_at": 1681405974687}
+{"stream": "pivot_report", "data": {"uuid": "fac29ad5-6fcb-42ef-ac2f-31b782c391cd", "property_id": "314186564", "browser": "Chrome", "country": "Brazil", "language": "Portuguese", "sessions": 566}, "emitted_at": 1681405974687}
+{"stream": "pivot_report", "data": {"uuid": "a4e75b7f-034f-4511-8491-70c801950e93", "property_id": "314186564", "browser": "Chrome", "country": "Vietnam", "language": "English", "sessions": 565}, "emitted_at": 1681405974687}
+{"stream": "pivot_report", "data": {"uuid": "ad237798-ae12-46bd-892d-0d8b28acca8e", "property_id": "314186564", "browser": "Edge", "country": "United States", "language": "English", "sessions": 555}, "emitted_at": 1681405974687}
+{"stream": "pivot_report", "data": {"uuid": "8a06cd72-4789-4f36-bf5b-f2c860e1aece", "property_id": "314186564", "browser": "Chrome", "country": "Pakistan", "language": "English", "sessions": 522}, "emitted_at": 1681405974687}
\ No newline at end of file
diff --git a/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/incremental_catalog.json b/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/incremental_catalog.json
new file mode 100644
index 000000000000..0900aa6dbfed
--- /dev/null
+++ b/airbyte-integrations/connectors/source-google-analytics-data-api/integration_tests/incremental_catalog.json
@@ -0,0 +1,100 @@
+{
+ "streams": [
+ {
+ "stream": {
+ "name": "daily_active_users",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_cursor": true,
+ "default_cursor_field": ["date"],
+ "source_defined_primary_key": [["uuid"]]
+ },
+ "sync_mode": "incremental",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "weekly_active_users",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_cursor": true,
+ "default_cursor_field": ["date"],
+ "source_defined_primary_key": [["uuid"]]
+ },
+ "sync_mode": "incremental",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "four_weekly_active_users",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_cursor": true,
+ "default_cursor_field": ["date"],
+ "source_defined_primary_key": [["uuid"]]
+ },
+ "sync_mode": "incremental",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "devices",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_cursor": true,
+ "default_cursor_field": ["date"],
+ "source_defined_primary_key": [["uuid"]]
+ },
+ "sync_mode": "incremental",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "locations",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_cursor": true,
+ "default_cursor_field": ["date"],
+ "source_defined_primary_key": [["uuid"]]
+ },
+ "sync_mode": "incremental",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "pages",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_cursor": true,
+ "default_cursor_field": ["date"],
+ "source_defined_primary_key": [["uuid"]]
+ },
+ "sync_mode": "incremental",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "traffic_sources",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_cursor": true,
+ "default_cursor_field": ["date"],
+ "source_defined_primary_key": [["uuid"]]
+ },
+ "sync_mode": "incremental",
+ "destination_sync_mode": "overwrite"
+ },
+ {
+ "stream": {
+ "name": "website_overview",
+ "json_schema": {},
+ "supported_sync_modes": ["full_refresh", "incremental"],
+ "source_defined_cursor": true,
+ "default_cursor_field": ["date"],
+ "source_defined_primary_key": [["uuid"]]
+ },
+ "sync_mode": "incremental",
+ "destination_sync_mode": "overwrite"
+ }
+ ]
+}
diff --git a/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/defaults/custom_reports_schema.json b/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/defaults/custom_reports_schema.json
index 01753bf4bcdc..777a8403bafe 100644
--- a/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/defaults/custom_reports_schema.json
+++ b/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/defaults/custom_reports_schema.json
@@ -20,6 +20,118 @@
"items": {
"type": "string"
}
+ },
+ "cohortSpec": {
+ "type": ["null", "object"],
+ "properties": {
+ "cohorts": {
+ "type": ["null", "array"],
+ "items": {
+ "type": ["null", "object"],
+ "properties": {
+ "name": {
+ "type": ["null", "string"]
+ },
+ "dimension": {
+ "type": "string",
+ "enum": ["firstSessionDate"]
+ },
+ "dateRange": {
+ "type": "object",
+ "properties": {
+ "startDate": {
+ "type": ["null", "string"]
+ },
+ "endDate": {
+ "type": ["null", "string"]
+ },
+ "name": {
+ "type": ["null", "string"]
+ }
+ }
+ }
+ }
+ }
+ },
+ "cohortsRange": {
+ "type": "object",
+ "required": ["granularity", "endOffset"],
+ "properties": {
+ "granularity": {
+ "type": "string",
+ "enum": ["DAILY", "WEEKLY", "MONTHLY"]
+ },
+ "startOffset": {
+ "type": ["null", "integer"]
+ },
+ "endOffset": {
+ "type": "integer"
+ }
+ }
+ },
+ "cohortReportSettings": {
+ "type": ["null", "object"],
+ "properties": {
+ "accumulate": {
+ "type": ["null", "boolean"]
+ }
+ }
+ }
+ }
+ },
+ "pivots": {
+ "type": ["null", "array"],
+ "items": {
+ "type": "object",
+ "required": ["limit"],
+ "properties": {
+ "fieldNames": {
+ "type": ["null", "array"],
+ "items": {
+ "type": "string"
+ }
+ },
+ "orderBys": {
+ "type": ["null", "array"],
+ "items": {
+ "type": "object",
+ "properties": {
+ "desc": {
+ "type": ["null", "boolean"]
+ },
+ "pivot": {
+ "type": "object",
+ "properties": {
+ "metricName": {
+ "type": "string"
+ },
+ "pivotSelections": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "dimensionName": {
+ "type": "string"
+ },
+ "dimensionValue": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "offset": {"type": ["null", "string", "integer"]},
+ "limit": {"type": ["string", "integer"]},
+ "metricAggregations": {
+ "type": ["null", "string"],
+ "enum": ["COUNT", "TOTAL", "MAXIMUM", "MINIMUM"]
+ }
+ }
+ }
}
}
}
diff --git a/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/source.py b/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/source.py
index f027683b150e..7dc228b370ec 100644
--- a/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/source.py
+++ b/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/source.py
@@ -87,13 +87,12 @@ class GoogleAnalyticsDataApiBaseStream(GoogleAnalyticsDataApiAbstractStream):
_record_date_format = "%Y%m%d"
primary_key = "uuid"
- cursor_field = None
metadata = MetadataDescriptor()
- def __init__(self, *args, config: Mapping[str, Any], **kwargs):
- self.cursor_field = "date" if "date" in config.get("dimensions") else []
- super().__init__(*args, config=config, **kwargs)
+ @property
+ def cursor_field(self) -> Optional[str]:
+ return "date" if "date" in self.config.get("dimensions", {}) else []
@staticmethod
def add_primary_key() -> dict:
@@ -233,6 +232,46 @@ def stream_slices(
start_date += datetime.timedelta(days=self.config["window_in_days"])
+class PivotReport(GoogleAnalyticsDataApiBaseStream):
+ def request_body_json(
+ self,
+ stream_state: Mapping[str, Any],
+ stream_slice: Mapping[str, Any] = None,
+ next_page_token: Mapping[str, Any] = None,
+ ) -> Optional[Mapping]:
+ payload = super().request_body_json(stream_state, stream_slice, next_page_token)
+ payload["pivots"] = self.config["pivots"]
+ return payload
+
+ def path(
+ self, *, stream_state: Mapping[str, Any] = None, stream_slice: Mapping[str, Any] = None, next_page_token: Mapping[str, Any] = None
+ ) -> str:
+ return f"properties/{self.config['property_id']}:runPivotReport"
+
+
+class CohortReportMixin:
+ cursor_field = []
+
+ def stream_slices(
+ self, *, sync_mode: SyncMode, cursor_field: List[str] = None, stream_state: Mapping[str, Any] = None
+ ) -> Iterable[Optional[Mapping[str, Any]]]:
+ yield from [None]
+
+ def request_body_json(
+ self,
+ stream_state: Mapping[str, Any],
+ stream_slice: Mapping[str, Any] = None,
+ next_page_token: Mapping[str, Any] = None,
+ ) -> Optional[Mapping]:
+ # https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/CohortSpec#Cohort.FIELDS.date_range
+ # In a cohort request, this dateRange is required and the dateRanges in the RunReportRequest or RunPivotReportRequest
+ # must be unspecified.
+ payload = super().request_body_json(stream_state, stream_slice, next_page_token)
+ payload.pop("dateRanges")
+ payload["cohortSpec"] = self.config["cohort_spec"]
+ return payload
+
+
class GoogleAnalyticsDataApiMetadataStream(GoogleAnalyticsDataApiAbstractStream):
"""
https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/getMetadata
@@ -339,6 +378,14 @@ def streams(self, config: Mapping[str, Any]) -> List[Stream]:
@staticmethod
def instantiate_report_class(report: dict, config: Mapping[str, Any]) -> GoogleAnalyticsDataApiBaseStream:
- return type(report["name"], (GoogleAnalyticsDataApiBaseStream,), {})(
- config=dict(**config, metrics=report["metrics"], dimensions=report["dimensions"]), authenticator=config["authenticator"]
- )
+ cohort_spec = report.get("cohortSpec")
+ pivots = report.get("pivots")
+ stream_config = {"metrics": report["metrics"], "dimensions": report["dimensions"], **config}
+ report_class_tuple = (GoogleAnalyticsDataApiBaseStream,)
+ if pivots:
+ stream_config["pivots"] = pivots
+ report_class_tuple = (PivotReport,)
+ if cohort_spec:
+ stream_config["cohort_spec"] = cohort_spec
+ report_class_tuple = (CohortReportMixin, *report_class_tuple)
+ return type(report["name"], report_class_tuple, {})(config=stream_config, authenticator=config["authenticator"])
diff --git a/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/spec.json b/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/spec.json
index fcb974c82f8c..a249a2c23924 100644
--- a/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/spec.json
+++ b/airbyte-integrations/connectors/source-google-analytics-data-api/source_google_analytics_data_api/spec.json
@@ -85,7 +85,7 @@
"date_ranges_start_date": {
"type": "string",
"title": "Start Date",
- "description": "The start date from which to replicate report data in the format YYYY-MM-DD. Data generated before this date will not be included in the report.",
+ "description": "The start date from which to replicate report data in the format YYYY-MM-DD. Data generated before this date will not be included in the report. Not applied to custom Cohort reports.",
"format": "date",
"order": 2
},
@@ -98,7 +98,7 @@
"window_in_days": {
"type": "integer",
"title": "Data request time increment in days",
- "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364.",
+ "description": "The time increment used by the connector when requesting data from the Google Analytics API. More information is available in the the docs. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. Not applied to custom Cohort reports.",
"examples": [30, 60, 90, 120, 200, 364],
"minimum": 1,
"maximum": 364,
diff --git a/airbyte-integrations/connectors/source-google-analytics-data-api/unit_tests/test_source.py b/airbyte-integrations/connectors/source-google-analytics-data-api/unit_tests/test_source.py
index 2068e5bfb0e5..8a101f77eefb 100644
--- a/airbyte-integrations/connectors/source-google-analytics-data-api/unit_tests/test_source.py
+++ b/airbyte-integrations/connectors/source-google-analytics-data-api/unit_tests/test_source.py
@@ -65,8 +65,8 @@ def inner(**kwargs):
def test_check(requests_mock, config_gen):
requests_mock.register_uri("POST", "https://oauth2.googleapis.com/token", json={"access_token": "access_token", "expires_in": 3600, "token_type": "Bearer"})
requests_mock.register_uri("GET", "https://analyticsdata.googleapis.com/v1beta/properties/108176369/metadata", json={
- "dimensions": [{"apiName": "date"}, {"apiName": "country"}],
- "metrics": [{"apiName": "totalUsers"}, {"apiName": "screenPageViews"}],
+ "dimensions": [{"apiName": "date"}, {"apiName": "country"}, {"apiName": "language"}, {"apiName": "browser"}],
+ "metrics": [{"apiName": "totalUsers"}, {"apiName": "screenPageViews"}, {"apiName": "sessions"}],
})
requests_mock.register_uri("POST", "https://analyticsdata.googleapis.com/v1beta/properties/108176369:runReport",
json={"dimensionHeaders": [{"name": "date"}, {"name": "country"}],
@@ -89,6 +89,8 @@ def test_check(requests_mock, config_gen):
assert source.check(logger, config_gen(custom_reports='[{"name": "daily_active_users", "dimensions": ["date"], "metrics": ["totalUsers"]}]')) == AirbyteConnectionStatus(status=Status.FAILED, message="'custom_reports: daily_active_users already exist as a default report(s).'")
assert source.check(logger, config_gen(custom_reports='[{"name": "name", "dimensions": ["unknown"], "metrics": ["totalUsers"]}]')) == AirbyteConnectionStatus(status=Status.FAILED, message="'custom_reports: invalid dimension(s): unknown for the custom report: name'")
assert source.check(logger, config_gen(custom_reports='[{"name": "name", "dimensions": ["date"], "metrics": ["unknown"]}]')) == AirbyteConnectionStatus(status=Status.FAILED, message="'custom_reports: invalid metric(s): unknown for the custom report: name'")
+ assert source.check(logger, config_gen(custom_reports='[{"name": "cohort_report", "dimensions": ["cohort", "cohortNthDay"], "metrics": ["cohortActiveUsers"], "cohortSpec": {"cohorts": [{"dimension": "firstSessionDate", "dateRange": {"startDate": "2023-01-01", "endDate": "2023-01-01"}}], "cohortsRange": {"endOffset": 100}}}]')) == AirbyteConnectionStatus(status=Status.FAILED, message='"custom_reports.0.cohortSpec.cohortsRange: \'granularity\' is a required property"')
+ assert source.check(logger, config_gen(custom_reports='[{"name": "pivot_report", "dateRanges": [{ "startDate": "2020-09-01", "endDate": "2020-09-15" }], "dimensions": ["browser", "country", "language"], "metrics": ["sessions"], "pivots": {}}]')) == AirbyteConnectionStatus(status=Status.FAILED, message='"custom_reports.0.pivots: {} is not of type \'null\', \'array\'"')
assert source.check(logger, config_gen(credentials={"auth_type": "Service", "credentials_json": "invalid"})) == AirbyteConnectionStatus(status=Status.FAILED, message="'credentials.credentials_json is not valid JSON'")
assert source.check(logger, config_gen(date_ranges_start_date="2022-20-20")) == AirbyteConnectionStatus(status=Status.FAILED, message='"time data \'2022-20-20\' does not match format \'%Y-%m-%d\'"')
diff --git a/connectors.md b/connectors.md
index 74a3e33d62f6..2b3ece362313 100644
--- a/connectors.md
+++ b/connectors.md
@@ -94,7 +94,7 @@
| **Gong** | | Source | airbyte/source-gong:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/gong) | [connectors/source/gong](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/gong) | [source-gong](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-gong) | `32382e40-3b49-4b99-9c5c-4076501914e7` |
| **Google Ads** | | Source | airbyte/source-google-ads:0.2.14 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/google-ads) | [connectors/source/google-ads](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-ads) | [source-google-ads](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-ads) | `253487c0-2246-43ba-a21f-5116b20a2c50` |
| **Google Analytics (Universal Analytics)** | | Source | airbyte/source-google-analytics-v4:0.1.34 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/google-analytics-v4) | [connectors/source/google-analytics-v4](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-analytics-v4) | [source-google-analytics-v4](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-analytics-v4) | `eff3616a-f9c3-11eb-9a03-0242ac130003` |
-| **Google Analytics 4 (GA4)** | | Source | airbyte/source-google-analytics-data-api:0.1.3 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/google-analytics-data-api) | [connectors/source/google-analytics-data-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-analytics-data-api) | [source-google-analytics-data-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-analytics-data-api) | `3cc2eafd-84aa-4dca-93af-322d9dfeec1a` |
+| **Google Analytics 4 (GA4)** | | Source | airbyte/source-google-analytics-data-api:0.2.0 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/google-analytics-data-api) | [connectors/source/google-analytics-data-api](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-analytics-data-api) | [source-google-analytics-data-api](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-analytics-data-api) | `3cc2eafd-84aa-4dca-93af-322d9dfeec1a` |
| **Google Directory** | | Source | airbyte/source-google-directory:0.1.9 | alpha | [docs](https://docs.airbyte.com/integrations/sources/google-directory) | [connectors/source/google-directory](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-directory) | [source-google-directory](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-directory) | `d19ae824-e289-4b14-995a-0632eb46d246` |
| **Google PageSpeed Insights** | | Source | airbyte/source-google-pagespeed-insights:0.1.0 | alpha | [docs](https://docs.airbyte.com/integrations/sources/google-pagespeed-insights) | [connectors/source/google-pagespeed-insights](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-pagespeed-insights) | [source-google-pagespeed-insights](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-pagespeed-insights) | `1e9086ab-ddac-4c1d-aafd-ba43ff575fe4` |
| **Google Search Console** | | Source | airbyte/source-google-search-console:0.1.22 | generally_available | [docs](https://docs.airbyte.com/integrations/sources/google-search-console) | [connectors/source/google-search-console](https://github.com/airbytehq/airbyte/issues?q=is:open+is:issue+label:connectors/source/google-search-console) | [source-google-search-console](https://github.com/airbytehq/airbyte/tree/master/airbyte-integrations/connectors/source-google-search-console) | `eb4c9e00-db83-4d63-a386-39cfa91012a8` |
diff --git a/docs/integrations/sources/google-analytics-data-api.md b/docs/integrations/sources/google-analytics-data-api.md
index 9c935ccf8476..434d0f71899d 100644
--- a/docs/integrations/sources/google-analytics-data-api.md
+++ b/docs/integrations/sources/google-analytics-data-api.md
@@ -38,9 +38,9 @@ Use the service account email address to [add a user](https://support.google.com
4. Click `Authenticate your account` by selecting Oauth or Service Account for Authentication.
5. Log in and Authorize the Google Analytics account.
6. Enter the [**Property ID**](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id#what_is_my_property_id) whose events are tracked.
-7. Enter the **Start Date** from which to replicate report data in the format YYYY-MM-DD.
+7. Enter the **Start Date** from which to replicate report data in the format YYYY-MM-DD. (Not applied to custom Cohort reports).
8. Enter the **Custom Reports (Optional)** a JSON array describing the custom reports you want to sync from Google Analytics.
-9. Enter the **Data request time increment in days (Optional)**. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364.
+9. Enter the **Data request time increment in days (Optional)**. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. (Not applied to custom Cohort reports).
**For Airbyte Open Source:**
@@ -49,9 +49,9 @@ Use the service account email address to [add a user](https://support.google.com
3. On the source setup page, select **Google Analytics 4 (GA4)** from the Source type dropdown and enter a name for this connector.
4. Select Service Account for Authentication in dropdown list and enter **Service Account JSON Key** from Step 1.
5. Enter the [**Property ID**](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id#what_is_my_property_id) whose events are tracked.
-6. Enter the **Start Date** from which to replicate report data in the format YYYY-MM-DD.
+6. Enter the **Start Date** from which to replicate report data in the format YYYY-MM-DD. (Not applied to custom Cohort reports).
7. Enter the **Custom Reports (Optional)** a JSON array describing the custom reports you want to sync from Google Analytics.
-8. Enter the **Data request time increment in days (Optional)**. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364.
+8. Enter the **Data request time increment in days (Optional)**. The bigger this value is, the faster the sync will be, but the more likely that sampling will be applied to your data, potentially causing inaccuracies in the returned results. We recommend setting this to 1 unless you have a hard requirement to make the sync faster at the expense of accuracy. The minimum allowed value for this field is 1, and the maximum is 364. (Not applied to custom Cohort reports).
## Supported sync modes
@@ -80,12 +80,11 @@ This connector outputs the following incremental streams:
## Connector-specific features
-* Connector supports multiple custom reports with user provided [Dimensions and metrics](https://ga-dev-tools.web.app/dimensions-metrics-explorer/)
-
:::note
- * Custom reports should be provided in format `[{"name": "", "dimensions": ["", ...], "metrics": ["", ...]}]`
- * To enable Incremental sync for Custom reports, you need to include the `date` dimension.
+ * Custom reports should be provided in format `[{"name": "", "dimensions": ["", ...], "metrics": ["", ...], "cohortSpec": "", "pivots": ""}]`
+ * Both `pivots` and `cohortSpec` are optional. Detailed description of the `cohortSpec` and the `pivots` objects you can find [here](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/CohortSpec) and [here](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/Pivot).
+ * To enable Incremental sync for Custom reports, you need to include the `date` dimension (except for custom Cohort reports).
:::
## Performance Considerations
@@ -103,12 +102,13 @@ This connector outputs the following incremental streams:
## Changelog
-| Version | Date | Pull Request | Subject |
-|:--------|:-----------|:---------------------------------------------------------|:------------------------------------------------------------------------------|
-| 0.1.3 | 2023-03-10 | [23872](https://github.com/airbytehq/airbyte/pull/23872) | Fix parse + cursor for custom reports |
-| 0.1.2 | 2023-03-07 | [23822](https://github.com/airbytehq/airbyte/pull/23822) | Improve `rate limits` customer faced error messages and retry logic for `429` |
-| 0.1.1 | 2023-01-10 | [21169](https://github.com/airbytehq/airbyte/pull/21169) | Slicer updated, unit tests added |
-| 0.1.0 | 2023-01-08 | [20889](https://github.com/airbytehq/airbyte/pull/20889) | Improved config validation, SAT |
-| 0.0.3 | 2022-08-15 | [15229](https://github.com/airbytehq/airbyte/pull/15229) | Source Google Analytics Data Api: code refactoring |
-| 0.0.2 | 2022-07-27 | [15087](https://github.com/airbytehq/airbyte/pull/15087) | fix documentationUrl |
-| 0.0.1 | 2022-05-09 | [12701](https://github.com/airbytehq/airbyte/pull/12701) | Introduce Google Analytics Data API source |
+| Version | Date | Pull Request | Subject |
+|:--------|:-----------|:---------------------------------------------------------|:---------------------------------------------------------------------------------------|
+| 0.2.0 | 2023-04-13 | [25179](https://github.com/airbytehq/airbyte/pull/25179) | Implement support for custom Cohort and Pivot reports |
+| 0.1.3 | 2023-03-10 | [23872](https://github.com/airbytehq/airbyte/pull/23872) | Fix parse + cursor for custom reports |
+| 0.1.2 | 2023-03-07 | [23822](https://github.com/airbytehq/airbyte/pull/23822) | Improve `rate limits` customer faced error messages and retry logic for `429` |
+| 0.1.1 | 2023-01-10 | [21169](https://github.com/airbytehq/airbyte/pull/21169) | Slicer updated, unit tests added |
+| 0.1.0 | 2023-01-08 | [20889](https://github.com/airbytehq/airbyte/pull/20889) | Improved config validation, SAT |
+| 0.0.3 | 2022-08-15 | [15229](https://github.com/airbytehq/airbyte/pull/15229) | Source Google Analytics Data Api: code refactoring |
+| 0.0.2 | 2022-07-27 | [15087](https://github.com/airbytehq/airbyte/pull/15087) | fix documentationUrl |
+| 0.0.1 | 2022-05-09 | [12701](https://github.com/airbytehq/airbyte/pull/12701) | Introduce Google Analytics Data API source |