Skip to content

Commit

Permalink
feat: added monthly pageviews and users to analytics sheets (#3536) (#…
Browse files Browse the repository at this point in the history
…3552)

* feat: added monthly pageviews and users to analytics sheets (#3536)0

* chore: bumped analytics package version (#3536)

* fix: standardized analytics_start_date (#3536)

* chore: added analytics chart title (#3536)
  • Loading branch information
jpaten authored Feb 8, 2025
1 parent 951437b commit 56fc8d1
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 7 deletions.
3 changes: 2 additions & 1 deletion analytics/anvil-analytics-portal/sheets/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@

ANVIL_PORTAL_ID = "368678391"

HISTORIC_UA_DATA_PATH = "../users_over_time_history.json"
SECRET_NAME = 'ANVIL_ANALYTICS_REPORTING_CLIENT_SECRET_PATH'
GA_PROPERTY_PORTAL = "368678391" # AnVIL Portal - GA4
PRE_AUDIENCE_EXCLUDE_PAGES_FILTER = "landingPagePlusQueryString!=/guides/content/creating-links"
# Excludes users who start on the markdown tutorial page
EXCLUDE_PAGES_FILTER = {"filter": {"fieldName": "audienceId", "numericFilter": {"operation": "EQUAL", "value": {"doubleValue": 5559548544}}}}
ANALYTICS_START = "2021-01-01"
ANALYTICS_START = "2023-07-01"

OAUTH_PORT = 8082
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"import analytics.sheets_api as sheets\n",
"import analytics.sheets_elements as elements\n",
"import pandas as pd\n",
"import gspread\n",
"from constants import *"
]
},
Expand All @@ -28,10 +29,11 @@
"metadata": {},
"outputs": [],
"source": [
"ga_authentication, drive_authentication = ga.authenticate(\n",
"ga_authentication, drive_authentication, sheets_authentication = ga.authenticate(\n",
" SECRET_NAME,\n",
" ga.ga4_service_params,\n",
" ga.drive_service_params,\n",
" ga.sheets_service_params,\n",
" port=OAUTH_PORT\n",
")\n",
"\n",
Expand All @@ -48,7 +50,12 @@
" \"base_dimension_filter\": EXCLUDE_PAGES_FILTER,\n",
" \"property\": ANVIL_PORTAL_ID,\n",
"}\n",
"\n"
"\n",
"anvil_portal_params_all_time = {\n",
" **anvil_portal_params,\n",
" \"start_date\": ANALYTICS_START,\n",
" \"end_date\": END_DATE_CURRENT,\n",
"}"
]
},
{
Expand All @@ -57,6 +64,7 @@
"metadata": {},
"outputs": [],
"source": [
"df_monthly_pageviews = elements.get_page_views_over_time_df(anvil_portal_params_all_time, additional_data_path=HISTORIC_UA_DATA_PATH, additional_data_behavior=elements.ADDITIONAL_DATA_BEHAVIOR.ADD)\n",
"df_outbound = elements.get_outbound_links_change(anvil_portal_params, START_DATE_CURRENT, END_DATE_CURRENT, START_DATE_PRIOR, END_DATE_PRIOR)"
]
},
Expand All @@ -67,25 +75,74 @@
"outputs": [],
"source": [
"dict_spreadsheet = {\n",
" \"Monthly Traffic Summary\": df_monthly_pageviews,\n",
" \"Outbound Links\": df_outbound,\n",
"}\n",
"sheets.fill_spreadsheet_with_df_dict(\n",
" sheets.create_sheet_in_folder(\n",
"sheet = sheets.create_sheet_in_folder(\n",
" drive_authentication,\n",
" SHEET_NAME,\n",
" PARENT_FOLDER_NAME,\n",
" override_behavior=sheets.FILE_OVERRIDE_BEHAVIORS.OVERRIDE_IF_IN_SAME_PLACE\n",
" ),\n",
" )\n",
"sheets.fill_spreadsheet_with_df_dict(\n",
" sheet,\n",
" dict_spreadsheet,\n",
" sheets.FILE_OVERRIDE_BEHAVIORS.OVERRIDE_IF_IN_SAME_PLACE,\n",
" column_formatting_options={\n",
" \"Monthly Traffic Summary\": {\n",
" \"Month\": sheets.COLUMN_FORMAT_OPTIONS.YEAR_MONTH_DATE,\n",
" \"Users Change\": sheets.COLUMN_FORMAT_OPTIONS.PERCENT_COLORED,\n",
" \"Total Pageviews Change\": sheets.COLUMN_FORMAT_OPTIONS.PERCENT_COLORED,\n",
" },\n",
" \"Outbound Links\": {\n",
" \"Total Clicks Percent Change\": sheets.COLUMN_FORMAT_OPTIONS.PERCENT_COLORED,\n",
" \"Total Users Percent Change\": sheets.COLUMN_FORMAT_OPTIONS.PERCENT_COLORED,\n",
" }\n",
" },\n",
" sheet_formatting_options={\n",
" \"Monthly Traffic Summary\": {\n",
" \"extra_columns\": 1,\n",
" \"extra_columns_width\": 2000\n",
" }\n",
"\n",
" }\n",
")\n",
"monthly_traffic_worksheet = sheet.worksheet(\"Monthly Traffic Summary\")\n",
"date_range = sheets.WorksheetRange(\n",
" monthly_traffic_worksheet, \n",
" gspread.cell.Cell(1, 1), \n",
" gspread.cell.Cell(df_monthly_pageviews.index.size + 1, 2)\n",
")\n",
"users_range = sheets.WorksheetRange(\n",
" monthly_traffic_worksheet, \n",
" gspread.cell.Cell(1, 2), \n",
" gspread.cell.Cell(df_monthly_pageviews.index.size + 1, 3)\n",
")\n",
"pageviews_range = sheets.WorksheetRange(\n",
" monthly_traffic_worksheet, \n",
" gspread.cell.Cell(1, 3), \n",
" gspread.cell.Cell(df_monthly_pageviews.index.size + 1, 4)\n",
")\n",
"sheets.add_chart_to_sheet(\n",
" sheets_authentication,\n",
" sheet,\n",
" sheet.worksheet(\"Monthly Traffic Summary\"),\n",
" sheets.CHART_TYPES.LINE,\n",
" date_range,\n",
" [users_range, pageviews_range],\n",
" chart_position=gspread.cell.Cell(1, 6),\n",
" chart_position_offset_x=75,\n",
" chart_position_offset_y=75,\n",
" title=\"Pageviews and Users Over Time\"\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
Expand Down
2 changes: 1 addition & 1 deletion analytics/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
accessible-pygments==0.0.5
alabaster==0.7.16
-e git+https://github.com/DataBiosphere/data-browser.git@e0ce2c7464107bbbc166f7e21fcc3c4426b6e553#egg=analytics&subdirectory=analytics/analytics_package
-e git+https://github.com/DataBiosphere/data-browser.git@e2653f5605cc3220d28299bfc2cc48205c23067d#egg=analytics&subdirectory=analytics/analytics_package
appdirs==1.4.4
appnope==0.1.4
asttokens==2.4.1
Expand Down

0 comments on commit 56fc8d1

Please sign in to comment.