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** | Gong icon | 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** | Google Ads icon | 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)** | Google Analytics (Universal Analytics) icon | 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)** | Google Analytics 4 (GA4) icon | 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)** | Google Analytics 4 (GA4) icon | 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** | Google Directory icon | 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** | Google PageSpeed Insights icon | 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** | Google Search Console icon | 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 |