Skip to content

Instantly share code, notes, and snippets.

@adamsilverstein
Last active March 12, 2025 15:39
Show Gist options
  • Save adamsilverstein/47d5f2debd2a4005f23d9ed5867cb8cb to your computer and use it in GitHub Desktop.
Save adamsilverstein/47d5f2debd2a4005f23d9ed5867cb8cb to your computer and use it in GitHub Desktop.
interactivity-api-colab.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/adamsilverstein/47d5f2debd2a4005f23d9ed5867cb8cb/interactivity-api-colab.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "KcAZ2RHCg_Ze"
},
"source": [
"## Interactivity API\n",
"\n",
"Report on adoption and impact."
]
},
{
"cell_type": "markdown",
"source": [
"## Setup"
],
"metadata": {
"id": "4G2WkwMPzxbT"
}
},
{
"cell_type": "markdown",
"metadata": {
"id": "qTmLBxDxBAZL"
},
"source": [
"### Provide your credentials to the runtime"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "SeTJb51SKs_W",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "0a87f38d-6af8-4b8d-9c9a-db6ee89f2801"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Authenticated\n"
]
}
],
"source": [
"from google.colab import auth\n",
"auth.authenticate_user()\n",
"print('Authenticated')\n",
"project_id = 'wpp-research'"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "goQQ96EDKs_7"
},
"source": [
"### Declare the Cloud project ID which will be used throughout this notebook\n",
"\n"
]
},
{
"cell_type": "code",
"source": [
"from google.cloud.bigquery import magics\n",
"# Update with your own Google Cloud Platform project name\n",
"magics.context.project = 'wpp-research'"
],
"metadata": {
"id": "YdTgQYtSoOoE"
},
"execution_count": 2,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"### Add a helper to get the latest dataset"
],
"metadata": {
"id": "yV85Ec6A9FED"
}
},
{
"cell_type": "code",
"source": [
"from datetime import datetime, timedelta\n",
"\n",
"def get_first_of_previous_month():\n",
" today = datetime.now()\n",
" first_day_previous_month = datetime(today.year, today.month - 1, 1) if today.month > 1 else datetime(today.year - 1, 12, 1)\n",
" return first_day_previous_month.strftime('%Y_%m_%d')\n",
"\n",
"dataset = get_first_of_previous_month() # eg. \"2023_06_01\" - datasets are updated monthly, indicate the latest"
],
"metadata": {
"id": "stNLljYnR355"
},
"execution_count": 3,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "UMKGkkZEPVRu"
},
"source": [
"### Optional: Enable data table display\n",
"\n",
"Colab includes the ``google.colab.data_table`` package that can be used to display large pandas dataframes as an interactive data table.\n",
"It can be enabled with:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"id": "LMNA-vBHPyHz"
},
"outputs": [],
"source": [
"%load_ext google.colab.data_table"
]
},
{
"cell_type": "code",
"source": [
"from google.colab import data_table\n",
"data_table.enable_dataframe_formatter()"
],
"metadata": {
"id": "JlBfb2k3JpRS"
},
"execution_count": 5,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# Interactivity API - 2025 Query updates\n",
"In 2025 new tables have been introduced in the HTTP Archive dataset, which are more efficient and easier to use. The `crawl` dataset contains all the data from the previous `pages`, `requests`, and other datasets."
],
"metadata": {
"id": "IMUFNWnxlfiR"
}
},
{
"cell_type": "markdown",
"source": [
"### Interactity API adoption over time"
],
"metadata": {
"id": "hO0gbaJhWKRZ"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"WITH\n",
" wordpress_sites AS (\n",
" SELECT\n",
" date,\n",
" page AS origin,\n",
" client AS device,\n",
" CAST(JSON_VALUE(custom_metrics.cms.wordpress.uses_interactivity_api) AS BOOL) AS uses_interactivity_api\n",
" FROM\n",
" `httparchive.crawl.pages`,\n",
" UNNEST(technologies) AS technologies\n",
" WHERE\n",
" date > PARSE_DATE( '%Y-%m-%d', '2024-04-01' )\n",
" AND technologies.technology = 'WordPress'\n",
" AND 'CMS' IN UNNEST(technologies.categories)\n",
" )\n",
"SELECT\n",
" date,\n",
" COUNT( DISTINCT origin ) AS wordpress_origins,\n",
" COUNT( DISTINCT IF( uses_interactivity_api = TRUE, origin, null ) ) AS uses_interactivity_api,\n",
" COUNT( DISTINCT IF( uses_interactivity_api = TRUE, origin, null ) ) / COUNT ( DISTINCT origin ) AS pct_uses_interactivity_api\n",
"FROM wordpress_sites\n",
"GROUP BY date\n",
"ORDER BY date ASC\n",
"\"\"\"\n",
"\n",
"ia_adoption_data_25 = client.query(query).to_dataframe()\n",
"\n",
"ia_adoption_data_25"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 337
},
"outputId": "210b01ff-72b4-4625-8bde-5af43640eec0",
"id": "Ij8kCOf3Treg"
},
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" date wordpress_origins uses_interactivity_api \\\n",
"0 2024-05-01 14112610 107704 \n",
"1 2024-06-01 13985901 112414 \n",
"2 2024-07-01 13761094 114527 \n",
"3 2024-08-01 13192033 113406 \n",
"4 2024-09-01 13563753 123423 \n",
"5 2024-10-01 14176132 135321 \n",
"6 2024-11-01 14086093 138811 \n",
"7 2024-12-01 13832089 139811 \n",
"8 2025-01-01 12651775 131262 \n",
"9 2025-02-01 13926490 151989 \n",
"\n",
" pct_uses_interactivity_api \n",
"0 0.007632 \n",
"1 0.008038 \n",
"2 0.008323 \n",
"3 0.008597 \n",
"4 0.009099 \n",
"5 0.009546 \n",
"6 0.009854 \n",
"7 0.010108 \n",
"8 0.010375 \n",
"9 0.010914 "
],
"text/html": [
"\n",
" <div id=\"df-b0c6a8a6-952c-429f-b752-e0fa92cc5881\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>wordpress_origins</th>\n",
" <th>uses_interactivity_api</th>\n",
" <th>pct_uses_interactivity_api</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-05-01</td>\n",
" <td>14112610</td>\n",
" <td>107704</td>\n",
" <td>0.007632</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-06-01</td>\n",
" <td>13985901</td>\n",
" <td>112414</td>\n",
" <td>0.008038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-07-01</td>\n",
" <td>13761094</td>\n",
" <td>114527</td>\n",
" <td>0.008323</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-08-01</td>\n",
" <td>13192033</td>\n",
" <td>113406</td>\n",
" <td>0.008597</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-09-01</td>\n",
" <td>13563753</td>\n",
" <td>123423</td>\n",
" <td>0.009099</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-10-01</td>\n",
" <td>14176132</td>\n",
" <td>135321</td>\n",
" <td>0.009546</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-11-01</td>\n",
" <td>14086093</td>\n",
" <td>138811</td>\n",
" <td>0.009854</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2024-12-01</td>\n",
" <td>13832089</td>\n",
" <td>139811</td>\n",
" <td>0.010108</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2025-01-01</td>\n",
" <td>12651775</td>\n",
" <td>131262</td>\n",
" <td>0.010375</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2025-02-01</td>\n",
" <td>13926490</td>\n",
" <td>151989</td>\n",
" <td>0.010914</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-b0c6a8a6-952c-429f-b752-e0fa92cc5881')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-b0c6a8a6-952c-429f-b752-e0fa92cc5881 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-b0c6a8a6-952c-429f-b752-e0fa92cc5881');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-c4c10cfc-76c1-4c50-9ed4-f1fe20685454\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-c4c10cfc-76c1-4c50-9ed4-f1fe20685454')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-c4c10cfc-76c1-4c50-9ed4-f1fe20685454 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_766f3ff0-6aaf-41f5-bea6-3e1030375956\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('ia_adoption_data_25')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_766f3ff0-6aaf-41f5-bea6-3e1030375956 button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('ia_adoption_data_25');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "ia_adoption_data_25",
"summary": "{\n \"name\": \"ia_adoption_data_25\",\n \"rows\": 10,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"2025-01-01\",\n \"2024-06-01\",\n \"2024-10-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"wordpress_origins\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 10,\n \"samples\": [\n 12651775,\n 13985901,\n 14176132\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 10,\n \"samples\": [\n 131262,\n 112414,\n 135321\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0010862880348505015,\n \"min\": 0.007631756280376202,\n \"max\": 0.01091366166205555,\n \"num_unique_values\": 10,\n \"samples\": [\n 0.01037498690895151,\n 0.008037665932284234,\n 0.009545692717872548\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-05-01\",\n{\n 'v': 14112610,\n 'f': \"14112610\",\n },\n{\n 'v': 107704,\n 'f': \"107704\",\n },\n{\n 'v': 0.007631756280376202,\n 'f': \"0.007631756280376202\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-06-01\",\n{\n 'v': 13985901,\n 'f': \"13985901\",\n },\n{\n 'v': 112414,\n 'f': \"112414\",\n },\n{\n 'v': 0.008037665932284234,\n 'f': \"0.008037665932284234\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-07-01\",\n{\n 'v': 13761094,\n 'f': \"13761094\",\n },\n{\n 'v': 114527,\n 'f': \"114527\",\n },\n{\n 'v': 0.0083225214506928,\n 'f': \"0.0083225214506928\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-08-01\",\n{\n 'v': 13192033,\n 'f': \"13192033\",\n },\n{\n 'v': 113406,\n 'f': \"113406\",\n },\n{\n 'v': 0.00859655217660538,\n 'f': \"0.00859655217660538\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-09-01\",\n{\n 'v': 13563753,\n 'f': \"13563753\",\n },\n{\n 'v': 123423,\n 'f': \"123423\",\n },\n{\n 'v': 0.009099472690191276,\n 'f': \"0.009099472690191276\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-10-01\",\n{\n 'v': 14176132,\n 'f': \"14176132\",\n },\n{\n 'v': 135321,\n 'f': \"135321\",\n },\n{\n 'v': 0.009545692717872548,\n 'f': \"0.009545692717872548\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-11-01\",\n{\n 'v': 14086093,\n 'f': \"14086093\",\n },\n{\n 'v': 138811,\n 'f': \"138811\",\n },\n{\n 'v': 0.009854471356961792,\n 'f': \"0.009854471356961792\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2024-12-01\",\n{\n 'v': 13832089,\n 'f': \"13832089\",\n },\n{\n 'v': 139811,\n 'f': \"139811\",\n },\n{\n 'v': 0.010107728485552688,\n 'f': \"0.010107728485552688\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2025-01-01\",\n{\n 'v': 12651775,\n 'f': \"12651775\",\n },\n{\n 'v': 131262,\n 'f': \"131262\",\n },\n{\n 'v': 0.01037498690895151,\n 'f': \"0.01037498690895151\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2025-02-01\",\n{\n 'v': 13926490,\n 'f': \"13926490\",\n },\n{\n 'v': 151989,\n 'f': \"151989\",\n },\n{\n 'v': 0.01091366166205555,\n 'f': \"0.01091366166205555\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"wordpress_origins\"], [\"number\", \"uses_interactivity_api\"], [\"number\", \"pct_uses_interactivity_api\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-d4aa3c18-04e6-4c16-93b8-38711db24ade\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-d4aa3c18-04e6-4c16-93b8-38711db24ade')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-d4aa3c18-04e6-4c16-93b8-38711db24ade button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 6
}
]
},
{
"cell_type": "code",
"source": [
"# plot the adoption data for mobile/desktop, organized by date as the X axis and pct_uses_interactivity_api as the Y axis\n",
"\n",
"import pandas as pd\n",
"import ipywidgets as widgets\n",
"\n",
"# Assuming you've run the BigQuery query and stored the results\n",
"adoption_data = ia_adoption_data_25.copy()\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# order data by date\n",
"adoption_data = adoption_data.sort_values(by='date')\n",
"\n",
"# Plotting\n",
"plt.figure(figsize=(12, 6)) # Adjust the figure size for better readability\n",
"\n",
"# Plot the data\n",
"plt.plot(adoption_data['date'], adoption_data['pct_uses_interactivity_api'], marker='o', linestyle='-', color='blue', label='WordPress Sites')\n",
"\n",
"# Formatting\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('% of WordPress Sites Using Interactivity API', fontsize=12)\n",
"plt.title('Adoption of Interactivity API Over Time (Mobile / Desktop)', fontsize=14)\n",
"plt.legend(fontsize=12) # Show the legend for clarity\n",
"plt.grid(axis='y', linestyle='--') # Add a subtle grid for better visual reference\n",
"plt.xticks(rotation=45, ha=\"right\") # Rotate x ticks for readability\n",
"\n",
"# Format Y numbers as pertcents, with 5 decimal points of precision\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.3%}'.format(y)))\n",
"\n",
"# Show the plot\n",
"plt.tight_layout()\n",
"plt.show()\n"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 607
},
"outputId": "2d18d859-4975-4789-d78c-e71a42d2a090",
"id": "XD3Mj1GSWQ4G"
},
"execution_count": 7,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
],
"image/png": "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NMWLF0+zf52IyJ2ox5SIiIjILX755Rf27t1Lt27dVJQShyhbtix9+/bl008/5dq1a44O5762dOlSIOUbNUjWmjlzJseOHePjjz92dCgi8oBTjykRERER4KuvvuLEiRNMnToVDw8Pa5NyEUcYM2YMBQoU4OjRo7rbWRqGDx+uz6qDWCwWvv3221T70omIpJcKUyIiIiLA+PHjOXnyJGXLluW7776jePHijg5JHmL58+e3NuUWuR89++yzjg5BRLIJ9ZgSERERERERERGHUI8pERERERERERFxCBWmRERERERERETEIdRjyoESEhI4ffo0uXLlwmKxODocEREREREREZG7ZhgG165do1ChQjg5pT0nSoUpBzp9+jRFixZ1dBgiIiIiIiIiIpnuxIkTFClSJM1jVJhyoFy5cgHmC+Xt7e3gaERERERERERE7l5ERARFixa11j3SosKUAyUu3/P29lZhSkRERERERESylfS0LVLzcxERERERERERcQgVpkRERERERERExCFUmBIREREREREREYe4rwpTGzdupHXr1hQqVAiLxcKSJUvSPP7MmTN07dqVMmXK4OTkxODBg1M8buHChZQrVw4PDw8qVarEypUrbfYbhsHIkSPx9/fH09OTZs2acfDgQev+mJgYunfvjre3N2XKlGHNmjU2j//oo4946aWX7MpZRERERERERORhdV8VpiIjIwkKCmLy5MnpOj4mJoZ8+fLx1ltvERQUlOIxv//+O126dKFPnz7s2rWLdu3a0a5dO/bu3Ws95sMPP+Szzz5jypQpbNu2DS8vL0JCQoiOjgbgm2++YceOHYSFhfH888/TtWtXDMMA4MiRI3z77be89957d5m9iIiIiIiIiMjDxWIkVljuMxaLhZ9++ol27dql6/gmTZpQpUoVJk6caDP+9NNPExkZyfLly61jderUoUqVKkyZMgXDMChUqBCvvPIKr776KgDh4eEUKFCAGTNm0LlzZwYMGIC3tzcffPABUVFR5MiRg/Pnz5MvXz4ef/xx+vXrx5NPPpnhHCMiIvDx8SE8PPyOd+UzDIP4+Hji4uIyfB2RB5GrqyvOzs6ODkNEREREREQyKCP1Dpd7FJPDhIWFMXToUJuxkJAQ6zLBI0eOcPbsWZo1a2bd7+PjQ+3atQkLC6Nz584EBQUxe/ZsoqKiCA0Nxd/fn7x58zJ37lw8PDzSXZSKiYkhJibGuh0REQFAbGwssbGxADg5OeHs7Ex8fDwJCQkYhkFERASXLl2ybt/OYrGkezzxVo0ZGb/ba2b1uHK6v2JPbdyenHx8fMibN6/1GIvFgouLCwkJCcTHx9sc6+LiYv3cJLr983T7eFxcnM11nZ2dcXJySnU88XOayMXF/BZ6e8E4tXFXV9dUY1dOykk5KSflpJyUk3JSTspJOSmn7JJTRmT7wtTZs2cpUKCAzViBAgU4e/asdX/iWGrHPPvss+zZs4dHHnmEvHnzsmDBAq5cucLIkSPZsGEDb731Fj/88AMlS5bku+++o3DhwinGMm7cOMaMGZNsfPXq1eTIkQOAYsWKUbVqVfbs2cPx48fJlSsXvr6++Pn5kSdPHm7evGnzhvLw8MDNzY3r16/bvHE8PT1xdXW1Fr8SeXl5YbFYuH79us14zpw5MQyDyMhIm3Fvb29iY2OJioqyjjk5OZEzZ05u3rxpXe4I5pvPy8uL6Ohobt68aR13dXXF09OTqKgomw+bm5sbHh4eREZGKiflZJOTYRi4uLhw9uxZ/v33X65duwZArly5aNq0KSdOnGD37t3W4/Ply0e9evU4ePAgBw4csI7f/nlKVLZsWcqVK8f27du5cOGCdbxKlSoEBASwceNG6zUB6tatS/78+Vm9erXND4Dg4GA8PT2T9a1r2bIlUVFRrF+/3jrm4uJCq1atuHjxImFhYdZx5aSclJNyUk7KSTkpJ+WknJSTcspuOXl4eJBe2X4pn5ubGzNnzqRLly7WsS+//JIxY8Zw7tw5fv/9d+rXr8/p06fx9/e3HtOpUycsFgvz589P8Xq9e/emSpUqFC9enDfeeINt27bx4YcfsnfvXn788ccUH5PSjKmiRYty8eJF69S2WyuUsbGxHDlyhLx581pnjRiGYVOJtFgsaY7fWjBIHIf0z1pxcnLK8DWzelw5PTw5Xbx4kfPnz1OiRAmcnZ31VwzlpJyUk3JSTspJOSkn5aSclJNyegByun79upbyJSpYsCDnzp2zGTt37hwFCxa07k8cu7Uwde7cOapUqZLiOdevX8++ffuYOnUqw4YNo2XLlnh5edGpUye++OKLVGNxd3fH3d092birqyuurq42Y87OztY3Zs6cOa2/vCf+0n+71MadnFLub5/SsamNZ/SaWT2unB6enBJnWQE2nxEnJ6cUz+/s7JzitNHUxhO/qad3/PbPqT3jqcWunJRTWuPKSTkpJ+WU1rhyUk7KSTmlNa6clJOjckqv++qufFmhbt26rF271mbs119/pW7dugAUL16cggUL2hwTERHBtm3brMfcKjo6moEDB/L1119bK4mJBaTY2FibKmRmSe0XeZHsTu99ERERERGR7O2+mjF1/fp1Dh06ZN0+cuQIu3fvJk+ePBQrVowRI0Zw6tQpZs2aZT0mcZ3k9evXuXDhArt378bNzY1HHnkEgEGDBtG4cWM++eQTWrVqxQ8//MCff/7JN998A5i/+A4ePJh3332X0qVLU7x4cd5++20KFSqU4jLCd955h5YtW1K1alUA6tevz7Bhw+jduzdffPEF9evXz6JnR0REREREREQke7mvClN//vknwcHB1u3Eu+n17NmTGTNmcObMGZsGXIC1QASwY8cO5s2bR0BAAEePHgWgXr16zJs3j7feeos33niD0qVLs2TJEipWrGh93GuvvUZkZCTPP/88V69epUGDBqxatSpZs669e/eyYMECm6ZhHTt2ZMOGDTRs2JCyZcsyb968zHo6xEE2bNhAcHAw69evp0mTJo4OxyES896wYYND4xAREREREZHs7b5aytekSRNrI+Vbv2bMmAHAjBkzkv2inNLxiUWpRE899RQHDhwgJiaGvXv30rJlS5v9FouFsWPHcvbsWaKjo1mzZg1lypRJFl/FihU5ePAgXl5e1jEnJye+/PJLwsPD2b59O6VKlcqU5yK7W7BgARaL2eD+dkFBQVgsFpu7DCQqVqwY9erVuxch2ujVq5e1l5LFYsHb25ugoCA++eQTm4b297ujR4/Su3dvSpYsiYeHBwULFqRRo0aMGjUqzcedPn2a0aNH2xRlRUREREREJHPFx8OGDfD99+Z/s6Bb0H3nvipMycOjQYMGAGzevNlmPCIigr179+Li4sKWLVts9p04cYITJ05YH3uvubu7M3v2bGbPns37779Pnjx5ePXVV+nZs6dD4smoQ4cOUbVqVUJDQ+nSpQtffPEFAwcOxM/Pj/Hjx9scu3r1alavXm3dPn36NGPGjFFhSkREREREJIssXgyBgRAcDF27mv8NDDTHs7P7aimfPDwKFSpE8eLFkxWmwsLCMAyDp556Ktm+xO27LUwZhkF0dDSenp4ZepyLiwvPPPOMdXvAgAHUrl2b+fPnM2HCBAoVKpRp18oKn376KdevX2f37t0EBATY7Dt//rzNtpub270MTURERERE5KG2eDF07AiGYTt+6pQ5vmgRtG/vmNiymmZMPaTuh+mBDRo0YNeuXURFRVnHtmzZQoUKFWjRogVbt24lISHBZp/FYrE2mI+Li+Odd96hZMmSuLu7ExgYyBtvvJFsaV1gYCBPPPEEoaGh1KhRA09PT77++msATp48Sbt27fDy8iJ//vwMGTIk3UvznJycrL2YEpePpnWtq1evMnjwYIoWLYq7uzulSpVi/PjxNjkC/PDDD1SvXp1cuXLh7e1NpUqVmDRpknV/bGwsY8aMoXTp0nh4eODn50eDBg349ddf04z38OHDFClSJFlRCiB//vw2202aNLHpM1WzZk0AevfubV3OmLjEFmDbtm08/vjj+Pj4kCNHDho3bpxsxtu1a9cYPHgwgYGBuLu7kz9/fh577DF27tyZZtwiIiIiIiLZWXw8DBqUvCgFSWODB2ffZX0qTD2E7pfpgQ0aNCA2NpZt27ZZx7Zs2UK9evWoV68e4eHh7N2712ZfuXLl8PPzA6Bv376MHDmSatWq8emnn9K4cWPGjRtH586dk13rwIEDdOnShccee4xJkyZRpUoVoqKiePTRRwkNDeXFF1/kzTffZNOmTbz22mvpzuHw4cMA1phSu9aNGzdo3Lgxc+bMoUePHnz22WfUr1+fESNGWJv8A/z666906dKF3LlzM378eD744AOaNGliU+QZPXo0Y8aMITg4mC+++II333yTYsWK3bHAExAQwIkTJ1i3bl268wMoX748Y8eOBeD555+3Lmds1KgRAOvWraNRo0ZEREQwatQo3n//fa5evUrTpk3Zvn279TwvvPACX331FR06dODLL7/k1VdfxdPTk/3792coHhERERERkexk0yY4eTL1/YYBJ06Yx2VLhjhMeHi4ARjh4eEp7o+KijL++ecfIyoqKtOu+eOPhmGxGIb51k76sljMrx9/zLRL3dG+ffsMwHjnnXcMwzCM2NhYw8vLy5g5c6ZhGIZRoEABY/LkyYZhGEZERITh7OxsPPfcc4ZhGMbu3bsNwOjbt6/NOV999VUDMNatW2cdCwgIMABj1apVNsdOnDjRAIwFCxZYxyIjI41SpUoZgLF+/XrreM+ePQ0vLy/jwoULxoULF4xDhw4Z77//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j/n0009xcnKiQ4cOxMTEEBISwpdffpksvtDQUA4dOsTs2bOtYy+++CJ//vkntWvXplatWnfVV0tERERERETE0WJjYeJEGD0abtwANzcYPhxGjIAM9LQWSZdM7TElGaMeUyIiIiIiInI/2boV+vWDPXvM7caNYcoUKFfOsXHJg8VhPaZERERERERE5MFz9SoMGAD16plFKT8/mD4d1q9XUUqy1n21lE9ERERERERE7h3DgIULYdAgOHvWHOvVCz76CPLmdWho8pCwa8ZU//79+f333zM7FhERERERERG5R44cgVat4OmnzaJU2bLmDKnp01WUknvHrsLUvHnzaNiwISVLlmTUqFEcPHgws+MSERERERERkSwQGwvjx0OFCvDLL2Zz8zFj4K+/oEkTR0cnDxu7ClPnz5/nhx9+oGLFinzwwQeUK1eO2rVrM3nyZC5evJjZMYqIiIiIiIhIOsXHw4YN8P335n/j45P2hYVBtWrmXfaioiA42OwpNXIkuLs7KmJ5mN31XfmuXLnCggULmDt3Llu2bMHFxYXHHnuMHj160KZNGzx0L8lU6a58IiIiIiIikpkWLzb7RZ08mTRWpAi89x78/jt8/bU5ljcvTJgAzzwDFotjYpXsKyP1jrsuTN3q+PHjDBs2jIULF2KxWMiVKxcdO3bk5ZdfpnLlypl1mWxDhSkRERERERHJLIsXQ8eOZkPztDz7LHz4oXnnPZGskJF6R6bcle/EiRPMnTuXuXPnsm/fPvz8/Hj66adxc3Njzpw5zJgxg88//5z+/ftnxuVERERERERE5Bbx8eZMqbSKUi4usHq1uXxP5H5h94ypq1evJlvC16pVK7p3706rVq1wdXUFICYmhi5duhAWFsaZM2cyNfgHnWZMiYiIiIiISGbYsCF9Baf169XgXLJels+YevLJJ/nll1+4efMmtWvX5vPPP6dz587kzp072bHu7u507NiRJUuW2HMpEREREREREUnDzZsQGpq+YzVfRO43dhWmdu3axbBhw+jRowelS5e+4/GPPfYY69evt+dSIiIiIiIiInKb8HD45RdYuhRWroSIiPQ9zt8/a+MSyahMbX4uGaOlfCIiIiIiIpJeJ0/Czz+bxaj16yE2Nmlf/vwQGWl+pcRiMe/Od+QIODvfm3jl4ZWReoeTPRdwdnbm+++/T3X//PnzcdY7XURERERE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yStb1qBVqwRatzZo0MAZZ+eknBKfivstp+z4Oikn5aScMvP7XvrZVZhat24dAwYMoFatWly+fBkAwzBwd3dn2LBh7N+/n8GDB7NixQp7Tp9uZ8+epcBtt5woUKAAERERREVFceXKFeLj41M85t9//7Wew83NDV9f32THnD17FoDhw4fTv39/SpYsSWBgINOmTePgwYPMnDmTsLAwXnjhBVavXk2NGjX49ttv8fHxSTHecePGMWbMmGTjq1evJkeOHAAUK1aMqlWrsmfPHo4fP249pmzZspQrV47t27dz4cIF63iVKlUICAhg48aNXLt2zTpet25d8ufPz+rVq23esMHBwXh6erJy5UqbGFq2bElUVBTr16+3jrm4uNCqVSsuXrxoLeQB5MqVi6ZNm3LixAl2795tHc+XLx/16tXj4MGDHDhwwDqunJSTclJOykk5KSflpJyU08OWU3S0M3/9lY9jxyqzdq0n584l/erl5JRAvXoJtGljIWfO9RQqFAmYy/oMoyXXrt2fOWXH10k5KSfllDU5eXh4kF52LeXLkSMHn3/+OX369CEuLg53d3cWLlxo7Qv17bff8uqrrxIeHp7RUycFlo6lfGXKlKF37942M6JWrlxJq1atuHHjBleuXKFw4cL8/vvv1K1b13rMa6+9xm+//ca2bduYN28evXv3tpnJBFCrVi2Cg4MZP358itdu2rQpgwYN4tixYyxfvpwVK1bw3HPP4efnl2oj9JRmTBUtWpSLFy9ap7ap6qqclJNyUk7KSTkpJ+WknJTTg5nT2bNOLF0az/LlFtatsxAdnTQzytvboHlzgyeeSODxxw3y538wcsqOr5NyUk7KKetzun79etYu5StWrBgnT540T+DiQuHChdm6dau1MPXPP/9kqDpmr4IFC9rcPQ/g3LlzeHt74+npibOzM87OzikeU7BgQes5bt68ydWrV21mTd16zO2mT5+Or68vbdu2pX379rRr1w5XV1eeeuopRo4cmWq87u7uuLu7Jxt3dXXF1dXVZiwx9tslvgnTO377ee0Zd3Jywskp+Q0cUxtPLXblpJwyOq6clBMop9RizOi4clJOoJxSizGj48pJOYEZu2HAX38l9Ysy74+UdGxgoNkrqnVraNTIgpubhdtvjH6/5ZSSB/11SolyUk7KKetzSi+7Ht20aVOWLl3KqFGjAOjVqxfj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Rczx9u0dk4uIiDiWXUv5nJycmDNnDl27dk1x//z58+natSvx8fF3HWB2pqV8IiIiIvKgiI+HdevMmVGLF8P160n7qlWDZ56Bzp3v3CcqPt68S9+ZM+axDRtqppSISHZzT5bypeXy5cu4ubllxalFREREROQeMQzYtSupifmZM0n7AgPNZXrdukFG2ss6O0OTJpkdqYiIPKjSXZjauHEjGzZssG4vXryYQ4cOJTvu6tWrzJ8/n0qVKmVKgCIiIiIicm8dOQLz5pkFqX//TRrPkweeftosRtWrl9QfSkRExF7pLkytX7+eMWPGAGCxWFi8eDGLFy9O8dhHHnmEzz//PHMiFBERERGRLHfpktnEfO5c2LIladzDA9q0MZfqhYSAFkaIiEhmSnePqaioKG7cuIFhGOTPn58pU6bQoUMH25NZLOTIkQMPD48sCTa7UY8pEREREXGkqCjzbnlz5sAvv0BcnDlusUDTpmYxqn170D9VRUQkI7Kkx5Snpyeenp4AHDlyhHz58pEjR467i1RERERERO6p+HjYsMEsRv34I1y7lrSvalVzmV7nzsnvniciIpIV7Gp+HhAQkNlxiIiIiIhIFjEM2L3bXKb3/fdw+nTSvoCApCbmjzzisBBFROQhZVdhyjAMvvnmG6ZNm8Z///3HlStXkh1jsViIS5wLLCIiIiIi99zRo2YT87lz4Z9/ksZz54ZOncxiVP364OTksBBFROQhZ1dh6rXXXmPChAlUqVKFZ555hty5c2d2XCIiIiIiYofLl2HhQnOp3ubNSePu7tC6tdk36vHHzW0RERFHs6swNXPmTDp06MCCBQsyOx4REREREcmg6GhYvtwsRq1cCbGx5rjFAsHB5syoDh3Ax8excYqIiNzOrsJUVFQUzZo1y+xYREREREQkneLj4bffzGV6ixZBRETSvqAgc2ZU585QpIjjYhQREbkTuwpTjz76KH/88QfPP/98ZscjIiIiIiKpMAzYs8ecGfX993DqVNK+YsWga1dzdlTFio6LUUREJCPsKkx9+eWXhISE8P7779OvXz/8/PwyOy4REREREfmf48fNJuZz5sC+fUnjvr5JTcwbNFATcxERefBYDMMwMvqgXLlykZCQQHR0NAAeHh44OzvbnthiITw8PHOizKYiIiLw8fEhPDwcb29vR4cjIiIiIveRK1fMJXpz5sDGjUnj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atSoTH9eRERERB5U+/bBm29CYlcGd3ezGPX66+Dn59jYRERExLHs6jElmSMiIiLday5FREREHjTHj5tL9GbNgoQEcHKC3r1h9GgoUsTR0YmIiEhWyUi94+4WAoqIiIiI3ObiRRg3DiZPhsT7vrRvD+++C+XLOzY2ERERub+kqzC1ceNGABo1amSzfSeJx4uIiIhI9nf9OkycCB99BBER5liTJvDBB1C7tiMjExERkftVupbyOTk5YbFYiIqKws3NzbqdGsMwsFgsqd6dTkxayiciIiLZwc2b8O238M47cO6cOValijlrKiQE0vhno4iIiGRDmb6Ub/369QC4ubnZbIuIiIjIwyshAebPh7fegv/+M8dKlDCX7D39tNlTSkRERCQtan7uQJoxJSIiIg8iw4DQUBgxAnbvNscKFICRI6FvX/jf3zJFRETkIeWw5uf//fcfMTExlFdXSxEREZFsads2GD4cNmwwt729YdgwGDwYcuZ0ZGQiIiLyILJrgvVnn31G586dbcZ69+5N6dKlqVixIjVq1OD8+fOZEqCIiIiION7+/ead9erUMYtSbm4wdCgcPmwu5VNRSkREROxhV2Fq6tSpFChQwLodGhrKzJkzef755/n888/577//GDNmTKYFKSIiIiKOceKEuTyvYkX46Sezb1SvXnDwIHzyCeTN6+gIRURE5EFm11K+Y8eO2SzXW7BgAcWLF+err74C4OzZs8yePTtzIhQRERGRe+7yZfOuep9/DjEx5ljbtvDee1ChgmNjExERkezDrsLU7f3SV69eTdu2ba3bgYGBnD179u4iExEREZF7LjISJk2CDz+E8HBzrGFD+OADqFfPsbGJiIhI9mPXUr4yZcrw008/AeYyvtOnT9OiRQvr/pMnT+Lr65spAYqIiIhI1ouNhSlToFQpePNNsyhVuTKsWAG//aailIiIiGQNu2ZMvfrqq3Tt2pXcuXMTGRlJ+fLlCQkJse5ft24dVapUyawYRURERCSLJCTAwoVmA/NDh8yx4sXhnXegSxezp5SIiIhIVrGrMNW5c2f8/PxYuXIlvr6+DBgwABcX81SXL18mT548dO/ePVMDFREREZHM9euvMHw47NxpbufLB2+/Df36mXfdExEREclqFuP2hlFyz0RERODj40N4eDje3t6ODkdEREQeEn/8ASNGwNq15nbOnDBsGAwZ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KevmlBLJakx9/fXXKbpovK5du6bqdSnxyy+/6P3339fEiRMVFBSkw4cPa8CAAXr33Xf11ltvSZKaN2/uPD8gIEBBQUHy9/fX//73P/Xs2TNZ/46vr6/mzZuXaKxhw4b6+OOPNXfuXB09elQHDx5Ur1699M4779x2I/TRo0dr5MiRScZXrVqlbP/ch7x48eIKDAzUnj17dPLkSec55cqVU/ny5bV161YFBwc7x6tUqSJ/f3+tX79e4Tfd57xWrVoqUKCAVq1alegTtkGDBvLx8dHy5csTxdCiRQtdv35d69atc465u7urZcuWCgkJSTRjLUeOHGrYsKFOnTqlXbt2Ocfz58+v2rVr69ChQzp40xoaciInciKn/5rT8eNXtG2bn7ZsKaRduwopMlKKv39HzpxRql79vLp391WHDrm0Zs1Pio2N1YYNGTunzFgnciInciInciInciInciKnWrVqydvbW8llM25ua92B3Z705n22f3aKvfXl8eNSyjc/j46OVrZs2TR//ny1bdvWOd6tWzddvXpVixcvTvKaevXqqWbNmvr444+dY3PmzNHzzz+va9eu3TZ2SapevboaN26s0aNHa+3atWrUqJGuXLmSaNaUv7+/Bg4cqEGDBiV5/cyZM7VkyRItWLBA7du3V+PGjdW3b18tW7ZMw4cP1/Zbd9rV7WdMFStWTCEhIcqZM6ckuq7kRE7kRE7xgoPtWrrUTT/84NC6dTbFxCR8fylWTGrTxqG2bR2qXduQu7s1csqMdSInciInciInciInciIncrp1/Nq1a/L19VVoaKiz33EnyZoxdezYsUTPr169qm7dusnX11f9+/dXuXLlJEkHDhzQ559/rvDwcM2aNSs5l07E09NTVatW1Zo1a5yNKYfDoTVr1qhfv363fU1kZGSS5lP8tLE79dyuXbumI0eOOPehqlq1qjw8PLRmzRp16NBBknTw4EGdPHlStWrVSvL64OBgvfPOO9rwz5/j4+LinJ9EMTExd2zIeXl5ycvLK8m4h4eHPG65L7mbm9ttp7/FfxImd/zW66Zm3G6337bBd6fxO8VOTuSU0nFyyno5nTjhpoULzT2jNm40NzSPnxlVsaK5X1S7dtJDD0k2m915LCPnlBnrRE7kRE7kRE7kdKcYUzpOTuQkkdOdYkzpeEbLKbmS9Wp/f/9Ez99++23lz59fq1at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Xr2qN998UxMmTEinjwgAAAAAAEDmlKEaU9HR0dq+fbsaN27sHLPb7WrcuLE2bdqUrGtMnz5dXbp00X333Zdo/JdfflGBAgVUrlw59enTR5cuXXIe27Rpk3LlyqVq1ao5xxo3biy73a4tW7ZIkipXrqyff/5ZDodDq1atUkBAgCTp1Vdf1YsvvqhixYqlOm8AAAAAAICsyN3VAdwsJCREcXFx8vPzSzTu5+enAwcO3PX1W7du1b59+zR9+vRE482aNVP79u1VsmRJHTlyRK+//rqaN2+uTZs2yc3NTefPn1eBAgUSvcbd3V158uTR+fPnJUmffPKJXnjhBZUoUUIBAQGaMmWK1q9fr127dunDDz/U448/rm3btqlJkyYaP368PD09k8QXFRWlqKgo5/OwsDBJUkxMjGJiYiSZjTg3NzfFxcXJ4XA4z40fj42NlWEYznE3NzfZ7fY7jsdf9+a8JCk2NjZZ4x4eHnI4HIqLi3OO2Ww2ubu733H8TrGTEzmREzmREzmREzmREzmREzmREzmRU+bPKSUyVGPqv5o+fboqVaqkGjVqJBrv0qWL8/8rVaqkgIAAlSpVSr/88osaNWqUrGsXKVJES5cudT6PiopS06ZNNWvWLI0aNUo5cuTQwYMH1axZM02ZMkX9+/dPco3Ro0dr5MiRScZXrVqlbNmySZKKFy+uwMBA7dmzRydPnnSeU65cOZUvX15bt25VcHCwc7xKlSry9/fX+vXrFR4e7hyvVauWChQooFWrViX6hG3QoIF8fHy0fPnyRDG0aNFC169f17p165xj7u7uatmypUJCQhLNWMuRI4caNmyoU6dOadeuXc7x/Pnzq3bt2jp06JAOHjzoHCcnciInciInciInciInciInciInciKnrJOTt7e3kstm3NzWcrHo6Ghly5ZN8+fPV9u2bZ3j3bp109WrV7V48eI7vjYiIkKFCxfWO++8owEDBtz138qfP79GjRqlF154QTNmzNDLL7+sK1euOI/HxsbK29tb33//vdq1a5fk9SNGjFB4eLjGjBmjhx56SKNGjVKLFi00YcIErV279rZ36LvdjKlixYopJCREOXPmlETXlZzIiZzIiZzIiZzIiZzIiZzIiZzIiZysndO1a9fk6+ur0NBQZ7/jTjLUjClPT09VrVpVa9ascTamHA6H1qxZo379+v3ra7///ntF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aODAgVqzZo3q16/P0j8AAJBmWMoHAABgcUWLFpWvr6+OHDkiSerbt69efvnlROfUrFlTTzzxhDZs2KB69eopICBADz30kL755hu1bdtWJUqUcJ574sQJjRgxQqNGjdLrr7/uHG/fvr0CAwM1ceLEROMAAACpxYwpAACATCB79uzOu/PdvM/UjRs3FBISopo1a0qSduzYcddrLViwQA6HQ48//rhCQkKcj4IFC6pMmTJat25d+iQBAACyHGZMAQAAZALXrl1TgQIFJEmXL1/WyJEj9e233+rixYuJzgsNDb3rtQ4dOiTDMFSmTJnbHvfw8PjvAQMAAIjGFAAAgOWdPn1aoaGhKl26tCTp8ccf18aNG/Xqq6+qSpUqyp49uxwOh5o1ayaHw3HX6zkcDtlsNv30009yc3NLcjx79uxpngMAAMiaaEwBAABY3OzZsyVJTZs21ZUrV7RmzRqNHDlSw4cPd55z6NChJK+z2Wy3vV6pUqVkGIZKliypsmXLpk/QAAAAYo8pAAAAS1u7dq3effddlSxZUk899ZRzhlP83ffijR07Nslr77vvPklKcpe99u3by83NTSNHjkxyHcMwdOnSpbRLAAAAZGnMmAIAALCIn376SQcOHFBsbKwuXLigtWvXavXq1fL399ePP/4ob29veXt7q379+vroo48UExOjIkWKaNWqVTp27FiS61WtWlWS9MYbb6hLly7y8PBQ69atVapUKY0aNUqvvfaajh8/rrZt2ypHjhw6duyYFi5cqOeff16vvPLKvU4fAABkQjSmAAAALCJ+aZ6np6fy5MmjSpUqaezYserevbty5MjhPG/evHnq37+/JkyYIMMw1KRJE/30008qXLhwoutVr15d7777riZPnqwVK1bI4XDo2LFjuu+++zRs2DCVLVtWn332mUaOHClJKlasmJo0aaLHHnvs3iUNAAAyNZtx6/xsAAAAAAAA4B5gjykAAAAAAAC4BI0pAAAAAAAAuASNKQAAAAAAALgEjSkAAAAAAAC4BI0pAAAAAAAAuASNKQAAAAAAALgEjSkAAAAAAAC4BI0pAAAAAAAAuASNKQAAAAAAALgEjSkAAAAAAAC4BI0pAAAAAAAAuASNKQAAAAAAALgEjSkAAAAAAAC4xP8BWpe2wW2ViPYAAAAASUVORK5CYII=\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"## Block themes\n",
"\n",
"Note: see [this colab](https://gist.github.com/adamsilverstein/b18e6c44880f262f7e3b1f175021ee15) for block theme research."
],
"metadata": {
"id": "N434yrQoWceX"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"block_iapi_sites_25 = client.query('''\n",
"WITH sites_by_block_theme_inteactivity_api AS (\n",
" SELECT\n",
" page,\n",
" JSON_VALUE(custom_metrics.cms.wordpress.block_theme) as block_theme,\n",
" JSON_VALUE(custom_metrics.cms.wordpress.uses_interactivity_api) AS uses_interactivity_api\n",
" FROM\n",
" `httparchive.crawl.pages`,\n",
" UNNEST(technologies) as technologies\n",
" WHERE\n",
" date = PARSE_DATE('%%Y_%%m_%%d', '%s') AND\n",
" technologies.technology = \"WordPress\" AND\n",
" is_root_page = TRUE\n",
")\n",
"\n",
"SELECT\n",
" COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) AS has_block_theme,\n",
" COUNT( DISTINCT( IF( uses_interactivity_api = 'true', page, null ))) AS uses_interactivity_api,\n",
" COUNT( DISTINCT IF( uses_interactivity_api = 'true', page, null ) ) / COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) pct_block_theme_sites_using_interactivity_api\n",
"FROM sites_by_block_theme_inteactivity_api\n",
"''' % dataset).to_dataframe()\n"
],
"metadata": {
"id": "GNBmBprUWiLl"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"block_iapi_sites_25.head(1000)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 143
},
"outputId": "9de5989e-7dc9-4d58-9bef-f064f810214e",
"id": "Yf8flDjnXAkS"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" has_block_theme uses_interactivity_api \\\n",
"0 126202 63905 \n",
"\n",
" pct_block_theme_sites_using_interactivity_api \n",
"0 0.506371 "
],
"text/html": [
"\n",
" <div id=\"df-9eb0c77c-ae2b-4738-b02d-d42074da4137\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>has_block_theme</th>\n",
" <th>uses_interactivity_api</th>\n",
" <th>pct_block_theme_sites_using_interactivity_api</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>126202</td>\n",
" <td>63905</td>\n",
" <td>0.506371</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9eb0c77c-ae2b-4738-b02d-d42074da4137')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-9eb0c77c-ae2b-4738-b02d-d42074da4137 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-9eb0c77c-ae2b-4738-b02d-d42074da4137');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "block_iapi_sites_25",
"summary": "{\n \"name\": \"block_iapi_sites_25\",\n \"rows\": 1,\n \"fields\": [\n {\n \"column\": \"has_block_theme\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 1,\n \"samples\": [\n 126202\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 1,\n \"samples\": [\n 63905\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_block_theme_sites_using_interactivity_api\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": null,\n \"min\": 0.5063707389740257,\n \"max\": 0.5063707389740257,\n \"num_unique_values\": 1,\n \"samples\": [\n 0.5063707389740257\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 126202,\n 'f': \"126202\",\n },\n{\n 'v': 63905,\n 'f': \"63905\",\n },\n{\n 'v': 0.5063707389740257,\n 'f': \"0.5063707389740257\",\n }]],\n columns: [[\"number\", \"index\"], [\"number\", \"has_block_theme\"], [\"number\", \"uses_interactivity_api\"], [\"number\", \"pct_block_theme_sites_using_interactivity_api\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-27d7cda6-e2ea-455f-89e4-8fbe65e5d4c0\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-27d7cda6-e2ea-455f-89e4-8fbe65e5d4c0')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-27d7cda6-e2ea-455f-89e4-8fbe65e5d4c0 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 23
}
]
},
{
"cell_type": "markdown",
"source": [
"## Block Themes Mobile only"
],
"metadata": {
"id": "UwSgzeDvX-DU"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"block_iapi_sites_mobile_25 = client.query('''\n",
"WITH\n",
" sites_by_block_theme_inteactivity_api AS (\n",
" SELECT\n",
" page,\n",
" JSON_VALUE(\n",
" custom_metrics.cms.wordpress.block_theme\n",
" ) AS block_theme,\n",
" JSON_VALUE(\n",
" custom_metrics.cms.wordpress.uses_interactivity_api\n",
" ) AS uses_interactivity_api\n",
" FROM\n",
" `httparchive.crawl.pages`,\n",
" UNNEST(technologies) AS technologies\n",
" WHERE\n",
" date = PARSE_DATE('%%Y_%%m_%%d', '%s')\n",
" AND technologies.technology = 'WordPress'\n",
" AND is_root_page = TRUE\n",
" AND client = 'mobile'\n",
" )\n",
"SELECT\n",
" COUNT(DISTINCT IF(block_theme = 'true', page, NULL)) AS has_block_theme,\n",
" COUNT(DISTINCT IF(uses_interactivity_api = 'true', page, NULL)) AS uses_interactivity_api,\n",
" COUNT(DISTINCT IF(uses_interactivity_api = 'true', page, NULL)) / COUNT(\n",
" DISTINCT IF(block_theme = 'true', page, NULL)\n",
" ) AS pct_block_theme_sites_using_interactivity_api\n",
"FROM\n",
" sites_by_block_theme_inteactivity_api\n",
"''' % dataset).to_dataframe()\n"
],
"metadata": {
"id": "Ru9mUMh0YMBz"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"block_iapi_sites_over_time_25.head(1000)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 359
},
"outputId": "5dfab618-3775-40b1-a19c-2f3422a8e184",
"id": "IbFUxowYZVCr"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" date has_block_theme uses_interactivity_api \\\n",
"0 2024-04-01 87979 42660 \n",
"1 2024-05-01 91733 45339 \n",
"2 2024-06-01 95058 47442 \n",
"3 2024-07-01 97118 48424 \n",
"4 2024-08-01 98651 48603 \n",
"5 2024-09-01 105238 52791 \n",
"6 2024-10-01 112335 57402 \n",
"7 2024-11-01 114680 58379 \n",
"8 2024-12-01 116756 58878 \n",
"9 2025-01-01 111673 55458 \n",
"10 2025-02-01 126202 63905 \n",
"\n",
" pct_block_theme_sites_using_interactivity_api \n",
"0 0.484888 \n",
"1 0.494250 \n",
"2 0.499085 \n",
"3 0.498610 \n",
"4 0.492676 \n",
"5 0.501634 \n",
"6 0.510989 \n",
"7 0.509060 \n",
"8 0.504282 \n",
"9 0.496611 \n",
"10 0.506371 "
],
"text/html": [
"\n",
" <div id=\"df-a329c685-f66a-4551-9ec2-012417e6724e\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>has_block_theme</th>\n",
" <th>uses_interactivity_api</th>\n",
" <th>pct_block_theme_sites_using_interactivity_api</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-04-01</td>\n",
" <td>87979</td>\n",
" <td>42660</td>\n",
" <td>0.484888</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-05-01</td>\n",
" <td>91733</td>\n",
" <td>45339</td>\n",
" <td>0.494250</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-06-01</td>\n",
" <td>95058</td>\n",
" <td>47442</td>\n",
" <td>0.499085</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-07-01</td>\n",
" <td>97118</td>\n",
" <td>48424</td>\n",
" <td>0.498610</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-08-01</td>\n",
" <td>98651</td>\n",
" <td>48603</td>\n",
" <td>0.492676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-09-01</td>\n",
" <td>105238</td>\n",
" <td>52791</td>\n",
" <td>0.501634</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-10-01</td>\n",
" <td>112335</td>\n",
" <td>57402</td>\n",
" <td>0.510989</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2024-11-01</td>\n",
" <td>114680</td>\n",
" <td>58379</td>\n",
" <td>0.509060</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2024-12-01</td>\n",
" <td>116756</td>\n",
" <td>58878</td>\n",
" <td>0.504282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2025-01-01</td>\n",
" <td>111673</td>\n",
" <td>55458</td>\n",
" <td>0.496611</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2025-02-01</td>\n",
" <td>126202</td>\n",
" <td>63905</td>\n",
" <td>0.506371</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a329c685-f66a-4551-9ec2-012417e6724e')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-a329c685-f66a-4551-9ec2-012417e6724e button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-a329c685-f66a-4551-9ec2-012417e6724e');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-23434a67-9ed7-4938-b012-ab5be29d6526\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-23434a67-9ed7-4938-b012-ab5be29d6526')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-23434a67-9ed7-4938-b012-ab5be29d6526 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "block_iapi_sites_over_time_25",
"summary": "{\n \"name\": \"block_iapi_sites_over_time_25\",\n \"rows\": 11,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 11,\n \"samples\": [\n \"2024-09-01\",\n \"2024-04-01\",\n \"2025-01-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"has_block_theme\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 105238,\n 87979,\n 111673\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 52791,\n 42660,\n 55458\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_block_theme_sites_using_interactivity_api\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.007704243275036217,\n \"min\": 0.48488843928664793,\n \"max\": 0.5109894511950861,\n \"num_unique_values\": 11,\n \"samples\": [\n 0.501634390619358,\n 0.48488843928664793,\n 0.4966106399935526\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-04-01\",\n{\n 'v': 87979,\n 'f': \"87979\",\n },\n{\n 'v': 42660,\n 'f': \"42660\",\n },\n{\n 'v': 0.48488843928664793,\n 'f': \"0.48488843928664793\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-05-01\",\n{\n 'v': 91733,\n 'f': \"91733\",\n },\n{\n 'v': 45339,\n 'f': \"45339\",\n },\n{\n 'v': 0.49424961573261533,\n 'f': \"0.49424961573261533\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-06-01\",\n{\n 'v': 95058,\n 'f': \"95058\",\n },\n{\n 'v': 47442,\n 'f': \"47442\",\n },\n{\n 'v': 0.4990847692987439,\n 'f': \"0.4990847692987439\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-07-01\",\n{\n 'v': 97118,\n 'f': \"97118\",\n },\n{\n 'v': 48424,\n 'f': \"48424\",\n },\n{\n 'v': 0.4986099384254206,\n 'f': \"0.4986099384254206\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-08-01\",\n{\n 'v': 98651,\n 'f': \"98651\",\n },\n{\n 'v': 48603,\n 'f': \"48603\",\n },\n{\n 'v': 0.4926762019645011,\n 'f': \"0.4926762019645011\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-09-01\",\n{\n 'v': 105238,\n 'f': \"105238\",\n },\n{\n 'v': 52791,\n 'f': \"52791\",\n },\n{\n 'v': 0.501634390619358,\n 'f': \"0.501634390619358\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-10-01\",\n{\n 'v': 112335,\n 'f': \"112335\",\n },\n{\n 'v': 57402,\n 'f': \"57402\",\n },\n{\n 'v': 0.5109894511950861,\n 'f': \"0.5109894511950861\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2024-11-01\",\n{\n 'v': 114680,\n 'f': \"114680\",\n },\n{\n 'v': 58379,\n 'f': \"58379\",\n },\n{\n 'v': 0.509059993024067,\n 'f': \"0.509059993024067\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2024-12-01\",\n{\n 'v': 116756,\n 'f': \"116756\",\n },\n{\n 'v': 58878,\n 'f': \"58878\",\n },\n{\n 'v': 0.5042824351639316,\n 'f': \"0.5042824351639316\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2025-01-01\",\n{\n 'v': 111673,\n 'f': \"111673\",\n },\n{\n 'v': 55458,\n 'f': \"55458\",\n },\n{\n 'v': 0.4966106399935526,\n 'f': \"0.4966106399935526\",\n }],\n [{\n 'v': 10,\n 'f': \"10\",\n },\n\"2025-02-01\",\n{\n 'v': 126202,\n 'f': \"126202\",\n },\n{\n 'v': 63905,\n 'f': \"63905\",\n },\n{\n 'v': 0.5063707389740257,\n 'f': \"0.5063707389740257\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"has_block_theme\"], [\"number\", \"uses_interactivity_api\"], [\"number\", \"pct_block_theme_sites_using_interactivity_api\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-e591c033-74a2-4fd8-a8e5-6dafdb65485a\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-e591c033-74a2-4fd8-a8e5-6dafdb65485a')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-e591c033-74a2-4fd8-a8e5-6dafdb65485a button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 26
}
]
},
{
"cell_type": "markdown",
"source": [
"## Adoption OF block themes over time"
],
"metadata": {
"id": "1HY1NNR_cWhP"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"block_sites_over_time_25 = client.query('''\n",
" SELECT\n",
" date,\n",
" COUNT( DISTINCT page ) AS origins,\n",
" COUNT( DISTINCT( IF( JSON_VALUE(custom_metrics.cms.wordpress.block_theme) = \"true\", page, NULL))) AS has_block_theme,\n",
" COUNT( DISTINCT( IF( JSON_VALUE(custom_metrics.cms.wordpress.block_theme) = \"true\", page, NULL))) / COUNT( DISTINCT page ) AS pct_block_theme_sites\n",
" FROM\n",
" `httparchive.crawl.pages`,\n",
" UNNEST(technologies) as technologies\n",
" WHERE\n",
" date >= PARSE_DATE('%%Y_%%m_%%d','%s') AND\n",
" technologies.technology = \"WordPress\" AND\n",
" is_root_page = TRUE\n",
"GROUP BY DATE\n",
"ORDER BY DATE ASC\n",
"''' % \"2024_04_01\").to_dataframe()\n"
],
"metadata": {
"id": "eHy0DXjCcxUb"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"block_sites_over_time_25.head(1000)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 359
},
"id": "KzWtmOBRdiBJ",
"outputId": "e9ce40de-004b-4b96-da74-baec6375bd39"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" date origins has_block_theme pct_block_theme_sites\n",
"0 2024-04-01 5926996 87979 0.014844\n",
"1 2024-05-01 5934369 91733 0.015458\n",
"2 2024-06-01 5895944 95058 0.016123\n",
"3 2024-07-01 5820252 97118 0.016686\n",
"4 2024-08-01 5634883 98651 0.017507\n",
"5 2024-09-01 5779123 105238 0.018210\n",
"6 2024-10-01 5983749 112335 0.018773\n",
"7 2024-11-01 5916935 114680 0.019382\n",
"8 2024-12-01 5812204 116756 0.020088\n",
"9 2025-01-01 5349842 111673 0.020874\n",
"10 2025-02-01 5860630 126202 0.021534"
],
"text/html": [
"\n",
" <div id=\"df-5d91983b-6692-4019-9b7c-98c8dd2d3deb\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>origins</th>\n",
" <th>has_block_theme</th>\n",
" <th>pct_block_theme_sites</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-04-01</td>\n",
" <td>5926996</td>\n",
" <td>87979</td>\n",
" <td>0.014844</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-05-01</td>\n",
" <td>5934369</td>\n",
" <td>91733</td>\n",
" <td>0.015458</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-06-01</td>\n",
" <td>5895944</td>\n",
" <td>95058</td>\n",
" <td>0.016123</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-07-01</td>\n",
" <td>5820252</td>\n",
" <td>97118</td>\n",
" <td>0.016686</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-08-01</td>\n",
" <td>5634883</td>\n",
" <td>98651</td>\n",
" <td>0.017507</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-09-01</td>\n",
" <td>5779123</td>\n",
" <td>105238</td>\n",
" <td>0.018210</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-10-01</td>\n",
" <td>5983749</td>\n",
" <td>112335</td>\n",
" <td>0.018773</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2024-11-01</td>\n",
" <td>5916935</td>\n",
" <td>114680</td>\n",
" <td>0.019382</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2024-12-01</td>\n",
" <td>5812204</td>\n",
" <td>116756</td>\n",
" <td>0.020088</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2025-01-01</td>\n",
" <td>5349842</td>\n",
" <td>111673</td>\n",
" <td>0.020874</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2025-02-01</td>\n",
" <td>5860630</td>\n",
" <td>126202</td>\n",
" <td>0.021534</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5d91983b-6692-4019-9b7c-98c8dd2d3deb')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-5d91983b-6692-4019-9b7c-98c8dd2d3deb button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-5d91983b-6692-4019-9b7c-98c8dd2d3deb');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-711dba72-2369-4daf-ba80-98d58a5e6c97\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-711dba72-2369-4daf-ba80-98d58a5e6c97')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-711dba72-2369-4daf-ba80-98d58a5e6c97 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "block_sites_over_time_25",
"summary": "{\n \"name\": \"block_sites_over_time_25\",\n \"rows\": 11,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 11,\n \"samples\": [\n \"2024-09-01\",\n \"2024-04-01\",\n \"2025-01-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"origins\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 5779123,\n 5926996,\n 5349842\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"has_block_theme\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 105238,\n 87979,\n 111673\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_block_theme_sites\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.002222122969091828,\n \"min\": 0.014843775835178563,\n \"max\": 0.021533862400458653,\n \"num_unique_values\": 11,\n \"samples\": [\n 0.01821002944564426,\n 0.014843775835178563,\n 0.02087407441191721\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-04-01\",\n{\n 'v': 5926996,\n 'f': \"5926996\",\n },\n{\n 'v': 87979,\n 'f': \"87979\",\n },\n{\n 'v': 0.014843775835178563,\n 'f': \"0.014843775835178563\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-05-01\",\n{\n 'v': 5934369,\n 'f': \"5934369\",\n },\n{\n 'v': 91733,\n 'f': \"91733\",\n },\n{\n 'v': 0.015457919788944705,\n 'f': \"0.015457919788944705\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-06-01\",\n{\n 'v': 5895944,\n 'f': \"5895944\",\n },\n{\n 'v': 95058,\n 'f': \"95058\",\n },\n{\n 'v': 0.01612260903427848,\n 'f': \"0.01612260903427848\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-07-01\",\n{\n 'v': 5820252,\n 'f': \"5820252\",\n },\n{\n 'v': 97118,\n 'f': \"97118\",\n },\n{\n 'v': 0.016686219084671935,\n 'f': \"0.016686219084671935\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-08-01\",\n{\n 'v': 5634883,\n 'f': \"5634883\",\n },\n{\n 'v': 98651,\n 'f': \"98651\",\n },\n{\n 'v': 0.017507195801580975,\n 'f': \"0.017507195801580975\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-09-01\",\n{\n 'v': 5779123,\n 'f': \"5779123\",\n },\n{\n 'v': 105238,\n 'f': \"105238\",\n },\n{\n 'v': 0.01821002944564426,\n 'f': \"0.01821002944564426\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-10-01\",\n{\n 'v': 5983749,\n 'f': \"5983749\",\n },\n{\n 'v': 112335,\n 'f': \"112335\",\n },\n{\n 'v': 0.01877334761200712,\n 'f': \"0.01877334761200712\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2024-11-01\",\n{\n 'v': 5916935,\n 'f': \"5916935\",\n },\n{\n 'v': 114680,\n 'f': \"114680\",\n },\n{\n 'v': 0.01938165621221122,\n 'f': \"0.01938165621221122\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2024-12-01\",\n{\n 'v': 5812204,\n 'f': \"5812204\",\n },\n{\n 'v': 116756,\n 'f': \"116756\",\n },\n{\n 'v': 0.020088076743348993,\n 'f': \"0.020088076743348993\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2025-01-01\",\n{\n 'v': 5349842,\n 'f': \"5349842\",\n },\n{\n 'v': 111673,\n 'f': \"111673\",\n },\n{\n 'v': 0.02087407441191721,\n 'f': \"0.02087407441191721\",\n }],\n [{\n 'v': 10,\n 'f': \"10\",\n },\n\"2025-02-01\",\n{\n 'v': 5860630,\n 'f': \"5860630\",\n },\n{\n 'v': 126202,\n 'f': \"126202\",\n },\n{\n 'v': 0.021533862400458653,\n 'f': \"0.021533862400458653\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"origins\"], [\"number\", \"has_block_theme\"], [\"number\", \"pct_block_theme_sites\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-8a409b58-cfd6-40a4-96f2-ec040e78a874\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-8a409b58-cfd6-40a4-96f2-ec040e78a874')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-8a409b58-cfd6-40a4-96f2-ec040e78a874 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 30
}
]
},
{
"cell_type": "code",
"source": [
"# Plot block_sites_over_time_25\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Plotting\n",
"plt.figure(figsize=(12, 6)) # Adjust figure size for better readability\n",
"plt.plot(block_sites_over_time_25['date'], block_sites_over_time_25['pct_block_theme_sites'], marker='o', linestyle='-', color='blue', label='Percent Block Theme Sites')\n",
"\n",
"# Formatting\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('% of Site using block themes', fontsize=12)\n",
"plt.title('Adoption of Block Themes Over Time', fontsize=14)\n",
"plt.legend(fontsize=12) # Show legend\n",
"plt.grid(axis='y', linestyle='--') # Add grid\n",
"plt.xticks(rotation=45, ha=\"right\") # Rotate x-axis ticks for better readability\n",
"\n",
"# Format Y numbers as percents, with 3 decimal points of precision\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.3%}'.format(y)))\n",
"\n",
"# Show the plot\n",
"plt.tight_layout()\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 607
},
"id": "RX9BdA7idmE3",
"outputId": "4aea597e-3c83-487f-f1b2-7563b454701f"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
],
"image/png": "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1seGYVCvXj3+85//0LhxY8qVK8fRo0dTfN0JEyZQuXJlvLy88PX1pXnz5hw5cuSB5y1dupRSpUrh7u5OuXLlWLNmjc1xwzAYPXo0fn5+eHh4ULduXUJCQmzGXLlyhRdffBFvb2+yZs1Kjx49uHHjhvX4iRMnqF27NpkzZ6Z27dqcOHHC5vwmTZrwzTffpLhmERERERGRjCo2FlasgLffTt54P780TUdE0iG7GlPffPMNVapUsT5etmwZGzZsYPz48axevZqYmBjGjh2b4utu2bKFvn37smvXLtavX09UVBT16tUjIiIiyXN27NhB+/bt6dGjB/v376d58+Y0b96cgwcPWsdMnDiRjz76iBkzZrB7924yZ85M/fr1uR1371HgxRdf5NChQ6xfv57Vq1ezdetWXn75ZevxoUOH4u/vz4EDB/Dz82PYsGHWY1999RVOTk60atUqxTWLiIiIiIhkNLdvm3fXK1MGWrSAQ4fuP95igfz5oVatR5OfiKQfFsNIbPu5+/Py8mLy5Mn07NkTgPbt2/PHH39Ym0HvvPMO06dP59SpUw+V3KVLl/D19WXLli3Url070TFt27YlIiKC1atXW2PVqlUjICCAGTNmYBgGefPmZejQodZmUlhYGLlz52b+/Pm0a9eOv/76izJlyvDLL7/wzDPPALB27VoaNWrE6dOnyZs3L2XKlGHy5Mk0aNCAH374gWHDhnHo0CGuXbtG5cqV2bhxI/nz509RfeHh4fj4+BAWFoa3t7edr5KIiIiIiEj6cPUqzJgBH30E58+bMR8f6NMHihaF//8KabMJetwm58uWQcuWjzZfEUkbKel32DVjysXFhcjISMBcJrdhwwYaNGhgPZ47d25CQ0PtubSNsLAwALJnz57kmJ07d1K3bl2bWP369dm5cycAx48f5/z58zZjfHx8qFq1qnXMzp07yZo1q7UpBVC3bl2cnJzYvXs3ABUqVOCnn34iNjaWdevWUb58eQCGDx9O3759U9yUEhERERERyShOnYKhQ6FAARg50mxK5csHkyebx955B3r0MJtP/v625+bLp6aUyJPMrs3Py5Yty5dffsmLL77It99+y+XLl2ncuLH1+L///kvOnDkfKrHY2FgGDRpEzZo1KVu2bJLjzp8/T+7cuW1iuXPn5vz/2/Nxfz5ojK+vr81xFxcXsmfPbh3z/vvv88or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Bw/WRx99pA8++ECNGjWSJD3zzDPq3r27unTpohIlSmjnzp2aN2+e/v3vf2dY0ACAjBETI82ZYzWjli2zVktJUmCgdN991uqoli0lX26dAQAAACAdpPpSPkmKi4vT22+/rbfeekvt2rXTf/7zH5UqVUo//vijvvzySx09elTBwcHq3Lmz2rVrl5FxZwtcygfACRITrSbUjBlWU+r8+eTHmjSxmlGdO0t8mwIAAACQGmnpd6SpMZXkyJEjGjJkiL799ls9//zzeuGFFxQUFHTDAedUNKYA2Om336xm1GefSUePJo/fcovVjHr4YalcOdvCAwAAAJBFZXhjKsmaNWs0YMAAnThxQm+99ZYefPDBG32pHInGFIDMdvKktYH5jBnSpk3J4wULSg8+aDWk6taV2CYQAAAAwI3KsMbUwYMHtXjxYp0/f1716tVT/fr1ZYzRJ598oldeeUX/+te/9MEHH6hWrVo3nUROQGMKQGa4eFGaP99qRi1aZF26J0l+flK7dlYzqm1bKSDA3jgBAAAAZA9p6Xe4U/uiCxYsUJUqVfTmm29qxowZuuOOO/T888/L5XKpT58++uOPP9SgQQPdcccdCg8P18mTJ286EQDAjTFGWr1aevxx6y56XbtKCxdaTam6daVx46zL9+bOtTY1pykFAAAAwA6pXjF16623qlatWpoxY4Yk6fPPP1fPnj118OBBlSxZ0nvcH3/8oWeffVarV69WVFRUxkSdTbBiCkB627tXmjnT+vXnn8njZcpIPXpYvypXti8+AAAAANlfWvodqb7h9+HDh/XMM894v27UqJGMMTp69GiKxlSlSpW0cOFCff/99zcQOgAgrc6ckb75xrpU7//+L3k8Tx6pSxfrUr0775TcqV4jCwAAAACZI9WNqTvuuEMffPCBbrvtNhUoUEBvvPGGChUqpFtvvfWax999993pFiQAIKX4eGnxYqsZNX++FBdnjbvd0l13Wc2ojh2lXLlsDRMAAAAA/laqG1OTJ09Wz549deedd8oYowoVKuibb75RLj71AECmMMa6k96MGdad9SIikh+77TapVy+pe3epRAn7YgQAAACAtEh1Y6pEiRL68ccfdfHiRV28eFEFChTIwLAAAEkOH5Y+/9xqSO3YkTweHCw99JC1b1TNmpLLZV+MAAAAAHAjUt2YShIYGKjAwMCMiAUA8JeYGOuO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Fxdndwg52okTJ3T06FG7w8BfDh48qK1bt9odRo62c+dOvf/++3aHAUmJiYmKj4+3OwwAuC5uOg4k4wd7yApoTOEqO3bsUPPmzbV69Wq7Q8mRNm/erLp162rnzp12hwJJW7duVZMmTTR58mSdPn3a7nBypG3btik0NFTPPfec1q1bZ3c4OdquXbv09NNPq127dho5ciTnhM3279+vyZMn64MPPtD3339vdzg50t69e/XWW2/p5Zdf1tdff63Y2Fi7Q8rRkr4nuVwumlM2OHTokKZPn66xY8dq2bJldoeT40VFRUmS3G43zSkHOHr0qL799lt99dVX2rRpk93hOA6NKVzlP//5j9auXatHHnlEa9eutTucHOXXX39V48aNdd9996l58+Z2h5Pj7dmzRy1btlTnzp31n//8R4UKFbI7pBzn119/Vd26ddW1a1c1adJECxYskMRP/+ywfft23XHHHTp9+rRuueUWvfHGG5o0aZLdYeVY27ZtU7169fTFF19o7ty5at++vXr27Kn169fbHVqOsX37dtWuXVvfffedVq5cqe7du6t379764Ycf7A4tR9qxY4eCg4M1cOBASTSnMtu2bdvUuHFjTZo0SZMmTVKbNm00a9Ysu8PKsXbs2KGyZcvq3//+tySaU3bbtm2b7rzzTo0aNUpDhgzRfffdp4ULF9odlqO4DN+xcYVPP/1Uu3btUmRkpObNm6e5c+eqcePGdoeV7f32229q0KCBnnrqKY0ePVqJiYnatm2bzp8/r/z58+vWW2+1O8QcZ+zYsfrll1/0+eefKyEhQVOmTNH+/ftVtmxZtWjRQpUqVbI7xGxt8+bNatKkiZ555hnvG/m0adO0e/du5c+fX8YYuVwuu8PMEc6ePau7775bzZo18/4nd/jw4YqJidFbb70lX19fmyPMWU6dOqUWLVqoffv2GjVqlCTp+++/V/v27dWuXTs9++yzatasmc1RZm8XLlxQ586d9a9//UsffvihJGn9+vXq16+fChUqpKeeekr33nuvzVHmHEePHtV9992nhIQE7dq1S4899pjee+89SeK9IhPs27dPzZo1U7du3TRixAhFR0dr3LhxWrBggb777jsVK1aMGmSiw4cPq0OHDoqNjVVkZKQGDx6soUOHSrJ+sOd2szYlM+3du1dNmjTRww8/rKFDh+rQoUP66KOPFBERoenTpytXrlycH2LFFK4hV65cWrVqlT788EM1aNBAnTt31u+//65XX31VX331ld3hZUtxcXHq0aOH8uTJowEDBkiSOnfurPDwcN1zzz2qV6+e3n77bZujzHm2bt2qgIAASVLz5s31ySefaMOGDXrppZc0cOBALp3JQCdPnlSjRo30xBNPeD949+/fX4UKFfLuNcWbeOa5cOGCLly4oDvvvNM7dujQIa1fv1716tXTk08+yfmQic6ePStfX191795dxhhdunRJoaGhqlq1qn755ReNGzdOZ86csTvMbC0oKEhnzpxRsWLFJFkf9urWravp06crLi5OEydOZG/CTGKM0fLly1W2bFl9+OGHmjx5sj7++GMNGjRIEiunMlpCQoI++eQThYWFafjw4QoMDFTRokXVsGFDHTt2TBLv15nJ4/Fo9uzZKl++vCZMmKAhQ4Zo9OjRevPNNyWxciqzXbp0SePHj1fDhg31+uuvq0CBAqpevbrq1KmjtWvXyuPxcH78hR9x4iq33367/P39FRQUpP/973/q1q2bwsLClCdPHi7tyyABAQF699131bdvXz377LP6448/VKRIEX3wwQcKDAzU2rVrNWDAAOXNm1d9+/a1O9xsL+mnq6VLl9bx48c1b948BQYGavbs2SpatKh2796t8PBwffLJJ7r77rvtDjdb8vPz06JFi1I0QoKDgxUWFqYlS5Zo2LBhkvhJeGa5dOmSdu/erf/7v/9TiRIlNH/+fH355ZcaOnSoChYsqJkzZ+rQoUMKCwtTSEiI3eFme9HR0dq0aZOOHz+uatWqyd/fX+fPn1fp0qX10ksv6eGHH1abNm302GOP2R1qtmSMUWxsrPz9/XXy5ElJ1odBY4xuvfVWjRs3Tm3atNH06dP1zjvv2Bxt9udyuXTnnXcqb968atiwoRo2bChjjMLDw2WM0XvvvedtTvF+kf58fX1Vo0YNBQUFKSgoyDter149+fr6KjIyUsHBwTZGmLO43W61bdtWxYoVU7NmzRQaGipjjEaPHi1JGjp0qLc5xcqpjOd2u1WxYkWVL19efn5+3u9DzZs312uvvaaoqCjlzZvX7jCdwQDXULNmTbNr1y5jjDHdu3c3uXPnNgULFjS//PKLzZFlPx6Px/vn5cuXm5CQENOkSRNz9OjRFMc999xzpnr16ubUqVMpnoOMs2jRIuNyuUzjxo3N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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"## Adoption in block themes over time"
],
"metadata": {
"id": "YNvTGGiYYzR3"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"block_iapi_sites_over_time_25 = client.query('''\n",
"WITH sites_by_block_theme_inteactivity_api AS (\n",
" SELECT\n",
" date,\n",
" page,\n",
" JSON_VALUE(custom_metrics.cms.wordpress.block_theme) as block_theme,\n",
" JSON_VALUE(custom_metrics.cms.wordpress.uses_interactivity_api) AS uses_interactivity_api\n",
" FROM\n",
" `httparchive.crawl.pages`,\n",
" UNNEST(technologies) as technologies\n",
" WHERE\n",
" date >= PARSE_DATE('%%Y_%%m_%%d','%s') AND\n",
" technologies.technology = \"WordPress\" AND\n",
" is_root_page = TRUE\n",
")\n",
"\n",
"SELECT\n",
" date,\n",
" COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) AS has_block_theme,\n",
" COUNT( DISTINCT( IF( uses_interactivity_api = 'true', page, null ))) AS uses_interactivity_api,\n",
" COUNT( DISTINCT IF( uses_interactivity_api = 'true', page, null ) ) / COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) pct_block_theme_sites_using_interactivity_api\n",
"FROM sites_by_block_theme_inteactivity_api\n",
"GROUP BY DATE\n",
"ORDER BY DATE ASC\n",
"''' % \"2024_04_01\").to_dataframe()\n"
],
"metadata": {
"id": "xgXqoMcyY2vW"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"block_iapi_sites_over_time_25.head(1000)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 359
},
"id": "iO6R_8HIZaPU",
"outputId": "c0fc014c-1543-4992-a4a7-a9bf41c4950f"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" date has_block_theme uses_interactivity_api \\\n",
"0 2024-04-01 87979 42660 \n",
"1 2024-05-01 91733 45339 \n",
"2 2024-06-01 95058 47442 \n",
"3 2024-07-01 97118 48424 \n",
"4 2024-08-01 98651 48603 \n",
"5 2024-09-01 105238 52791 \n",
"6 2024-10-01 112335 57402 \n",
"7 2024-11-01 114680 58379 \n",
"8 2024-12-01 116756 58878 \n",
"9 2025-01-01 111673 55458 \n",
"10 2025-02-01 126202 63905 \n",
"\n",
" pct_block_theme_sites_using_interactivity_api \n",
"0 0.484888 \n",
"1 0.494250 \n",
"2 0.499085 \n",
"3 0.498610 \n",
"4 0.492676 \n",
"5 0.501634 \n",
"6 0.510989 \n",
"7 0.509060 \n",
"8 0.504282 \n",
"9 0.496611 \n",
"10 0.506371 "
],
"text/html": [
"\n",
" <div id=\"df-466249a2-0975-4208-9ea3-df2faaff9961\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>has_block_theme</th>\n",
" <th>uses_interactivity_api</th>\n",
" <th>pct_block_theme_sites_using_interactivity_api</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-04-01</td>\n",
" <td>87979</td>\n",
" <td>42660</td>\n",
" <td>0.484888</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-05-01</td>\n",
" <td>91733</td>\n",
" <td>45339</td>\n",
" <td>0.494250</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-06-01</td>\n",
" <td>95058</td>\n",
" <td>47442</td>\n",
" <td>0.499085</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-07-01</td>\n",
" <td>97118</td>\n",
" <td>48424</td>\n",
" <td>0.498610</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-08-01</td>\n",
" <td>98651</td>\n",
" <td>48603</td>\n",
" <td>0.492676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-09-01</td>\n",
" <td>105238</td>\n",
" <td>52791</td>\n",
" <td>0.501634</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-10-01</td>\n",
" <td>112335</td>\n",
" <td>57402</td>\n",
" <td>0.510989</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2024-11-01</td>\n",
" <td>114680</td>\n",
" <td>58379</td>\n",
" <td>0.509060</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2024-12-01</td>\n",
" <td>116756</td>\n",
" <td>58878</td>\n",
" <td>0.504282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2025-01-01</td>\n",
" <td>111673</td>\n",
" <td>55458</td>\n",
" <td>0.496611</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2025-02-01</td>\n",
" <td>126202</td>\n",
" <td>63905</td>\n",
" <td>0.506371</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-466249a2-0975-4208-9ea3-df2faaff9961')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-466249a2-0975-4208-9ea3-df2faaff9961 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-466249a2-0975-4208-9ea3-df2faaff9961');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-2e9bb1a5-d197-4e0c-983f-43bd69bd03c7\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-2e9bb1a5-d197-4e0c-983f-43bd69bd03c7')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-2e9bb1a5-d197-4e0c-983f-43bd69bd03c7 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "block_iapi_sites_over_time_25",
"summary": "{\n \"name\": \"block_iapi_sites_over_time_25\",\n \"rows\": 11,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 11,\n \"samples\": [\n \"2024-09-01\",\n \"2024-04-01\",\n \"2025-01-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"has_block_theme\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 105238,\n 87979,\n 111673\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 11,\n \"samples\": [\n 52791,\n 42660,\n 55458\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_block_theme_sites_using_interactivity_api\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.007704243275036217,\n \"min\": 0.48488843928664793,\n \"max\": 0.5109894511950861,\n \"num_unique_values\": 11,\n \"samples\": [\n 0.501634390619358,\n 0.48488843928664793,\n 0.4966106399935526\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-04-01\",\n{\n 'v': 87979,\n 'f': \"87979\",\n },\n{\n 'v': 42660,\n 'f': \"42660\",\n },\n{\n 'v': 0.48488843928664793,\n 'f': \"0.48488843928664793\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-05-01\",\n{\n 'v': 91733,\n 'f': \"91733\",\n },\n{\n 'v': 45339,\n 'f': \"45339\",\n },\n{\n 'v': 0.49424961573261533,\n 'f': \"0.49424961573261533\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-06-01\",\n{\n 'v': 95058,\n 'f': \"95058\",\n },\n{\n 'v': 47442,\n 'f': \"47442\",\n },\n{\n 'v': 0.4990847692987439,\n 'f': \"0.4990847692987439\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-07-01\",\n{\n 'v': 97118,\n 'f': \"97118\",\n },\n{\n 'v': 48424,\n 'f': \"48424\",\n },\n{\n 'v': 0.4986099384254206,\n 'f': \"0.4986099384254206\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-08-01\",\n{\n 'v': 98651,\n 'f': \"98651\",\n },\n{\n 'v': 48603,\n 'f': \"48603\",\n },\n{\n 'v': 0.4926762019645011,\n 'f': \"0.4926762019645011\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-09-01\",\n{\n 'v': 105238,\n 'f': \"105238\",\n },\n{\n 'v': 52791,\n 'f': \"52791\",\n },\n{\n 'v': 0.501634390619358,\n 'f': \"0.501634390619358\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-10-01\",\n{\n 'v': 112335,\n 'f': \"112335\",\n },\n{\n 'v': 57402,\n 'f': \"57402\",\n },\n{\n 'v': 0.5109894511950861,\n 'f': \"0.5109894511950861\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2024-11-01\",\n{\n 'v': 114680,\n 'f': \"114680\",\n },\n{\n 'v': 58379,\n 'f': \"58379\",\n },\n{\n 'v': 0.509059993024067,\n 'f': \"0.509059993024067\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2024-12-01\",\n{\n 'v': 116756,\n 'f': \"116756\",\n },\n{\n 'v': 58878,\n 'f': \"58878\",\n },\n{\n 'v': 0.5042824351639316,\n 'f': \"0.5042824351639316\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2025-01-01\",\n{\n 'v': 111673,\n 'f': \"111673\",\n },\n{\n 'v': 55458,\n 'f': \"55458\",\n },\n{\n 'v': 0.4966106399935526,\n 'f': \"0.4966106399935526\",\n }],\n [{\n 'v': 10,\n 'f': \"10\",\n },\n\"2025-02-01\",\n{\n 'v': 126202,\n 'f': \"126202\",\n },\n{\n 'v': 63905,\n 'f': \"63905\",\n },\n{\n 'v': 0.5063707389740257,\n 'f': \"0.5063707389740257\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"has_block_theme\"], [\"number\", \"uses_interactivity_api\"], [\"number\", \"pct_block_theme_sites_using_interactivity_api\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-c2248060-518c-466e-94a4-b3269a2a576b\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-c2248060-518c-466e-94a4-b3269a2a576b')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-c2248060-518c-466e-94a4-b3269a2a576b button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 27
}
]
},
{
"cell_type": "code",
"source": [
"# Plot block_iapi_sites_over_time_25\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Plotting\n",
"plt.figure(figsize=(12, 6)) # Adjust figure size for better readability\n",
"plt.plot(block_iapi_sites_over_time_25['date'], block_iapi_sites_over_time_25['pct_block_theme_sites_using_interactivity_api'], marker='o', linestyle='-', color='blue', label='Block Theme Sites')\n",
"\n",
"# Formatting\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('% of Block Theme Sites Using Interactivity API', fontsize=12)\n",
"plt.title('Adoption of Interactivity API in Block Themes Over Time', fontsize=14)\n",
"plt.legend(fontsize=12) # Show legend\n",
"plt.grid(axis='y', linestyle='--') # Add grid\n",
"plt.xticks(rotation=45, ha=\"right\") # Rotate x-axis ticks for better readability\n",
"\n",
"# Format Y numbers as percents, with 3 decimal points of precision\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.3%}'.format(y)))\n",
"\n",
"# Show the plot\n",
"plt.tight_layout()\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 607
},
"id": "858dp2jqZ4rO",
"outputId": "54044838-1c50-429b-c27d-31a18149a697"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKYAAAJOCAYAAACN2Q8zAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA/cJJREFUeJzs3Xd4FFUXx/HvpodAEkoCoQVE6b2ISA0gHakigvQu0kSxU2wUFRRQiiBBEQSUpiKCSFMC0jsISO+hJEAgpMz7x7xZs6SQhIRN+X2eZx9m78zOnLslZE/uPddiGIaBiIiIiIiIiIjII+Zg7wBERERERERERCRrUmJKRERERERERETsQokpERERERERERGxCyWmRERERERERETELpSYEhERERERERERu1BiSkRERERERERE7EKJKRERERERERERsQslpkRERERERERExC6UmBIREREREREREbtQYkpERGycPHkSi8VC9+7d7R2KjXr16mGxWOwdxkNZvXo1NWvWJGfOnFgsFlq3bm3vkDKV7t27Y7FYOHnypF3PkZkUKVKEIkWK2DsMG6NHj8ZisbB+/fpHcr3AwEAsFguBgYGP5Hox0uNzL+mHflaJSGaixJSISCbTs2dPLBYLuXPnJjw83N7hJNmj/rL5qJ08eZJWrVrx77//0qNHD0aNGkXHjh0TfUzMc/L9998/1LUzQ1IP7JcgWL9+PRaLhdGjRz+ya27cuBGLxYLFYmHx4sUJHhfznMS+ubu7U7JkSV555RWCg4Ntjo95L1y8eDGtu5AkRYoUiRO/q6srRYsWpW/fvpniS3dMAiGpt0f9/s7oli5dyrPPPoufnx8uLi74+PjQsGFDvv76a6KiouwdXpLE9zlI7JYZPhciIrE52TsAERFJPTdv3mTRokVYLBauXbvGsmXLeP755+0dVqr45ptvCAsLs3cYKfb7779z9+5dPv30Uzp16mTvcDKlsWPH8sYbb1CgQAG7niM1zJ49GwCLxcLXX3/Nc889l+jxDRo0oFatWgBcuXKF3377jUmTJrFkyRJ27NhB7ty5UxTH2rVrU/S45HB0dOSdd96x3r9x4wZbt27lq6++YsmSJezcuZPChQuneRxppXXr1nFGPq1fv54NGzbQqlUrKlasaLPv/vsSv9u3b9OpUydWrFhBzpw5ad68OYUKFeLKlSusXLmSXr168dVXX7FixQp8fHzsHW6ihg4dyo0bN2zaAgMDOXXqFEOGDMHb29tmn7e3d7r5WSUikhqUmBIRyUQWLlzI7du3eeWVV/jss8+YPXt2pklMZeQvpgDnz58HIH/+/HaOJPPy8/PDz8/P7ud4WKGhofzwww+UL1+evHnzsnr1as6cOUOhQoUSfEzDhg154403rPcjIiJo3Lgx69atY8qUKSke7VWsWLEUPS45nJyc4o1v4MCBfPnll8yaNYv33nsvzeNIK61bt44zbXf06NFs2LCB1q1bp7tp0xlF9+7dWbFiBc2bN2fevHk2yZu7d+8yaNAgZs2aRevWrdmwYQNOTun3a8/QoUPjtK1fv55Tp04xdOjQeKd0ent72/1nlYhIatFUPhGRTGT27Nk4OTkxYsQIAgICWLt2LadOnYr32KioKMaPH8/jjz+Om5sbjz/+OGPHjiU6OjrB8+/fv58OHTrg6+trnW4zdOhQrl69GufYmPooN27coF+/fuTLlw83NzcqVarEggULbI6tV68eY8aMASAgIMA6XSH2L+MJTUeLjIxk4sSJVKhQAXd3d7y8vAgICOCnn36Kc2zsqWCrV6/m6aefJlu2bOTOnZtu3brF24/EJOX5iKnZNWrUqDj9S+m0RYvFQr169bh06RLdunUjT548uLu789RTT8U5p8ViYcOGDdbtmNv9X4b37t1Lx44drdNh/P39GTRoUJznJHYNskOHDtGmTRty585tM71k6dKlvPDCCzz++ONky5YNLy8vateuzY8//phgn/bs2UPnzp0pWLAgrq6u+Pn50aRJE+vr2L17d3r06AFAjx49bPoS4/6aK5s2bcJisdCzZ894r3n58mWcnZ2pWbNmgucYPXo0AQEBAIwZMybOdJoXX3wRi8XC33//He81Ro4cicViifOeT8yCBQsICwuja9eudO3alejo6GRP73J2dqZfv34AbNu2LVmPjS2+Okexp93Onz+fihUr4u7ujp+fH0OGDOHOnTspvl5sTZo0AYgzHTExP/30EwEBAXh5eeHu7k6FChWYOHEikZGR8R7/oPddYs6ePUvZsmVxc3NL9L39sG7dusWQIUPInz8/rq6ulC9fnh9++CHeY+/du8fEiROpXLkyHh4e5MiRg9q1a7NixYo4x8a81//9918++eQTihcvjru7O6VLl7ZOH7537x5vv/02RYoU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UWIqncuRIwdgvpienp52jkZEREREREREJHGhoaEUKlTImtNIjBJT6VzM9D1PT08lpkREREREREQkw0hKSSIVPxcREREREREREbtQYkpEREREREREROxCiSkREREREREREbELJaZERERERERERMQulJgSERERERERERG70Kp8IiIiIiIikiVERUURERFh7zBEMiwnJyccHR2TtNpeks+ZamcSERERERERSYcMw+DixYvcuHHD3qGIZHiOjo74+vri5eWVKgkqJaZEREREREQkU4tJSvn6+pItW7ZUHe0hklUYhkFkZCShoaFcuHCBO3fu4Ofn99DnVWJKREREREREMq2oqChrUip37tz2Dkckw8uRIweurq4EBwfj6+uLo6PjQ51Pxc9FREREREQk04qpKZUtWzY7RyKSeXh4eGAYRqrUbFNiSkRERERERDI9Td8TST2p+XlSYkpEREREREREROxCiSkRERERERGRLMBisTB69Og0Off69euxWCz88MMPaXL+GBaLhZdffjlNr5FeFSlShO7du9s7jFSnxJSIiIiIyCMUFQXr18OCBea/UVH2jkhEMqrAwEAsFovNzdfXl4CAAH799Vd7h5ck9erVi9OH+G5plVBLD/bt20f79u3x9/fHzc2NAgUK8MwzzzBlypREH3fw4EFGjx7NyZMnH02gaUSr8omIiIiIPCJLlsCQIXD27H9tBQvC559D27b2i0tEMrb33nuPokWLYhgGly5dIjAwkGbNmvHTTz/RokULe4eXqLfffpvevXtb72/bto3Jkyfz1ltvUapUKWt7+fLl7RFemtu8eTMBAQEULlyYPn36kC9fPs6cOcOWLVv4/PPPGTRokPXYI0eO4ODw3/iigwcPMmbMGOrVq0eRIkXsEH3qUGJKREREROQRWLIE2rcHw7BtP3fObP/hByWnRCRlmjZtStWqVa33e/XqRd68eVmwYEG6T0w988wzNvfd3NyYPHkyzzzzDPXq1bNPUI/Qhx9+iJeXF9u2bcPb29tm3+XLl23uu7q6PsLIHh1N5RMRERERSWNRUeZIqfuTUvBf29ChmtYnkpGk52m53t7euLu74+T04LEou3btomnTpnh6epI9e3YaNGjAli1b4hx348YNhg0bRpEiRXB1daVgwYJ07dqV4ODgBM8dHh5OixYt8PLyYvPmzQ/Vp/stW7aMsmXL4urqSpkyZVi1alWcY86dO0fPnj3Jmzev9bivv/7a5piY2liLFi1izJgxFChQgBw5ctC+fXtCQkIIDw9n6NCh+Pr6kj17dnr06EF4eHica82bN48qVarg7u5Orly56NixI2fOnHlgP44fP06ZMmXiJKUAfH19be7HrjEVGBjIc889B0BAQIB1yuP69eutx//666/Url0bDw8PcuTIQfPmzTlw4IDNOS9evEiPHj0oWLAgrq6u+Pn50apVq0c6PVAjpkRERERE0timTbbT9+5nGHDmjHlcFhggIJLhpbdpuSEhIQQHB2MYBpcvX2bKlCncunWLF198MdHHHThwgNq1a+Pp6cmIESNwdnZmxowZ1KtXjw0bNlC9enUAbt26Re3atTl06BA9e/akcuXKBAcHs2LFCs6ePUuePHninPvOnTu0atWK7du38/vvv1OtWrVU6++ff/7JkiVLeOmll8iRIweTJ0+mXbt2nD59mty5cwNw6dIlnnrqKWuxdB8fH3799Vd69epFaGgoQ4cOtTnn2LFjcXd354033uDYsWNMmTIFZ2dnHBwcuH79OqNHj2bLli0EBgZStGhRRo4caX3shx9+yLvvvkuHDh3o3bs3V65cYcqUKdSpU4ddu3bFm3SK4e/vT1BQEPv376ds2bJJfg7q1KnD4MGD40x7jPn322+/pVu3bjRu3Jjx48cTFhbGtGnTqFWrFrt27bJO/WvXrh0HDhxg0KBBFClShMuXL7NmzRpOnz796KYHGpKuhYSEGIAREhJi71BEREREJIXmzzcMM/2U+G3mTHtHKpL53Llzxzh48KBx586dVDnfjz8ahsUS9/NrsZi3H39MlcskyZw5cwwgzs3V1dUIDAyMczxgjBo1ynq/devWhouLi3H8+HFr2/nz540cOXIYderUsbaNHDnSAIwlS5bEOWd0dLRhGIaxbt06AzAWL15s3Lx506hbt66RJ08eY9euXcnq0+LFiw3AWLduXbz7AcPFxcU4duyYtW3Pnj0GYEyZMsXa1qtXL8PPz88IDg62eXzHjh0NLy8vIywszCbusmXLGvfu3bMe98ILLxgWi8Vo2rSpzeNr1Khh+Pv7W++fPHnScHR0ND788EOb4/bt22c4OTnFab/f6tWrDUdHR8PR0dGoUaOGMWLECOO3336ziSWGv7+/0a1bN+v9hJ6rmzdvGt7e3kaf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ukTHjh1T5flJCiWmRERERETS0OuvmyOcSpaE1Phe5uJijsZo1MhcvW/bNli61Lz98w+sWmXe+vc3a1HFFE9PoC6viCRT27bmKMghQ2wXNLh/Wu6jNHLkSOu2m5sbJUuWZNq0afSLr7BdLGXKlGHTpk28+eabjB07lujoaKpXr868efOoXr269bjs2bOzadMmRo0axdKlS5k7dy6+vr40aNCAggULJnj+t956i5CQEGtyauDAgQ/f2STKmzcvf//9N++99x5Llizhyy+/JHfu3JQpU4bx48en6rXeeOMNihcvzqRJkxgzZgxgFk1v1KgRzz77bKKP/eSTT1i8eDErV65k5syZ3Lt3j8KFC/PSSy/xzjvv4O3tneBj8+XLx/Tp0xk7diy9evUiKiqKdevW4evrS6dOncifPz/jxo3j448/Jjw8nAIFClC7dm1rsqtQoUK88MILrF27lm+//RYnJydKlizJokWLklzsPjVYjPjGjEm6ERoaipeXFyEhIYlmukVEREQk/dmwAerVM7c3bjRX50tLhw+bCaply+Dvv233lSnzX/H0KlW0wp9kHXfv3uXEiRMULVoUNze3VDtvVBRs2mSOWvTzMz/fj3qklIi9POhzlZxchhJT6ZwSUyIiIiIZ09275ip7//wDffvCjBmP9vrnzsHy5WaSat06+H8dZMAc2RGTpKpTx5wCKJJZpVViSiQrS83ElIqfi4iIiIikgQ8/NJNSfn6QyrNGkqRAAXjpJVi9Gi5fhnnzzLo4Hh7m9KOpU6FhQ7PIeteu5kir27cffZwiIpK1KTElIiIiIpLK9u+HcePM7SlTIJESIY9EzpzQuTMsXgxXrsBPP0GvXuaKftevw7ffmnVx8uSBVq0gMNBcCVBERCStpavE1OjRo7FYLDa3kiVLWvfPnDmTevXq4enpicViibMkYkK++OILihQpgpubG9WrV+fv+ybc3717l4EDB5I7d26yZ89Ou3btuHTpks0xp0+fpnnz5mTLlg1fX19ee+01ImONh961axeVKlUie/bstGzZ0qbCf2RkJFWqVIlzXRERERHJfKKjzal7kZFmkscehZAT4+4OLVrArFlmbZyNG+GVV6BoUXP64YoV0KOHOZKqXj1zBbJYK8mLiIikqnSVmAJzVYALFy5Yb3/++ad1X1hYGE2aNEnWMpMLFy7klVdeYdSoUezc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jZhK3b79Fpo1A09P2LULnn/e6ohEROLGboc8eeDMmQdft9kgRw44fhzc3ZM0NBERERFJJIk+YurcuXN07NhRRSmRRBQaao6WAhgwQEUpEUmeNm16eFEKzB37Tp827xMRERGR1CdehalixYpx7ty5hI5FRO4xcKC5QHCBAvDuu1ZHIyISP+fPJ+x9IiIiIpKyxKswNWHCBObOncuWLVsSOh4RATZvNnfiA3O3Km9va+MREYmv7NkT9j4RERERSVk8YnNT48aN7zsXEBBA5cqVKVKkCLly5cL9PwtD2Gw2fvjhh4SJUiQVCQ83t1cH6NQJqla1Nh4RkSdRubK5htTZs+a0vf+KXmOqcuWkj01ERERErBerwtS+ffuw2Wz3nc+VKxc3b97kwIED91170P0i8ngffggHD0LWrDBunNXRiIg8GXd3mDwZmjc3i1D3Fqeif1WYNEkLn4uIiIikVrEqTJ04cSKRwxARMAtSo0ebx1OmQPr01sYjIpIQmjaFr7+GXr1iLoSeI4dZlGra1LLQRERERMRisV5jqmPHjvzxxx+JGYtIquZwmFP4IiIgOBhatLA6IhGRhNO0KZw4AevXw+LF5t/Hj6soJSIiIpLaxWrEFMD8+fOpVasW5cqVS8x4RFKt2bPNRc/TpYNp0/6d4iIiklK4u0O1alZHISIiIiKuJF678olIwjp3Dt55xzz+4APIlcvaeERERERERESSggpTIi6gZ08IC4OyZaF7d6ujEREREREREUkasZ7KB7Bp0yaioqJifX+7du3iHJBIavPDD/DNN+DhYU7n085UIiIiIiIiklrYDOPejZsfzs3NDZvNRixvx2azYbfbnyg4gbCwMAICAggNDcXf39/qcCSBhYVBkSJw9iwMGvTvjnwiIiIiIiIiyVVcahlxGjE1YsQI6tWr90TBici/Bg82i1L588P771sdjYiIiIiIiEjSilNhKm/evJQqVSqxYhFJVbZuNXffA5g5E9KmtTYeERERERERkaSmxc9FLBARAW+8AYYBr70GNWpYHZGIiIiIiIhI0lNhSsQC48bBX39B5szw8cdWRyMiIiIiIiJijVgXptq3b0++fPkSMxaRVOHQIRg50jyePBkyZrQ2HhERERERERGrxHqNqXnz5iVmHCKpgsMBnTubU/nq1YOWLa2OSERERERERMQ6msonkoQ++ww2bAAfH5g+HWw2qyMSERERERERsY4KUyJJ5MIF6N/fPB45EvLksTQcEREREREREcupMCWSRHr1guvXoVQp6NnT6mhERERERERErKfClEgSWL4c/vc/cHeH2bPBI9aru4mIiIiIiIikXPEqTH3//fePvWfAgAHxeWiRFOfGDejWzTzu2xeCgqyNR0RERERERMRVxKsw1bJlS3766aeHXu/SpQsff/xxvIMSSUneew9On4ZnnoFhw6yORkRERERERMR1xKsw1a5dO5o2bcratWtjnHc4HLRp04bZs2czderUBAlQJDnbtg0++cQ8njHD3I1PREREREREREzxWulm1qxZhIeH8+KLL7Jq1SoqV65MREQELVq0YNWqVSxcuJA2bdokdKwiyUpkJHTqBIYBbdtC7dpWRyQiIiIiIiLiWuK9BPO8efMIDw8nODiYr7/+mnHjxvHbb7/x1Vdf8eKLLyZkjCLJ0scfw/79kDEjTJhgdTQiIiIiIiIirifehSk3Nze++OILmjdvTv369fH19WXFihXUqFEjIeMTSZYOH4bhw83jiRMhUyZr4xERERERERFxRbEqTE14xHCPcuXKsXbtWurVq8eePXvYs2cPADabjT59+iRIkCLJiWFAly4QHm5O33v1VasjEhEREREREXFNNsMwjMfd5OYW9zXSbTYbdrs9XkHJv8LCwggICCA0NBR/f3+rw5FYmD8fOnSAtGnhzz/N3fhEREREREREUou41DJiNWLq+PHjCRKYSEp36RK8/bZ5PHy4ilIiIiIiIiIijxKrwlTu3LkTOw6RFKF3b7h6FYKCQDNZRURERERERB4t7nP0MEdQLVu27KHXly1bxokTJ+Ibk0iytGoVLFkCbm4wezZ4xHtrAREREREREZHUIV5vnfv160dYWBiNGjV64PWpU6cSGBjI0qVLnyg4keTi5k3o2tU87t0bSpWyNBwRERERERGRZCFeI6a2bt1K7dq1H3q9Zs2abNq0Kd5BiSQ3Q4bAyZOQOzeMGGF1NCIiIiIiIiLJQ7wKU9euXcPPz++h19OlS8eVK1fiHZRIcrJjB0yebB7PmAG+vtbGIyIiIiIiIpJcxKswlStXLn777beHXt+0aRM5cuSId1AiyUVkJLzxBjgc0Lo11KtndUQiIiIiIiIiyUe8ClOtWrViyZIlTJkyBYfD4Txvt9uZPHkyX375Ja1b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aJA748e7kSuXwZ49UaRLl/zblBLzpDapTWqT2qQ2qU1qk9qkNqlNapPapDZZ26awsDAyZcoUqzWm4jViytvbm6tXrz70+tWrVx846ulRatasyf79+2Oc69ChA4UKFWLAgAExClaZMmUCYN26dVy6dInGjRs/8DHTpElDqVKlWLt2rbMw5XA4WLt2LW+99RYApUqVwtPTk7Vr19KsWTMADh06xKlTp6hQoQJgVic/+OADLl26RJYsWQBYs2YN/v7+D1zsfe3atRw8eJB58+YBZoEt+j/Q44azeXl5xVhHK5qnpyeenp4xzrm7u8fol2jR/wlje/6/jxuf825ubg8cufaw8w+L3VXbtHs3TJpknp82zUb69Pffn9zaFJvzapPa9LAY43pebVKbQG16WIxxPa82qU2gNj0sxrieV5vUJlCbHhZjXM+rTWoT/Bv7w2J6kHjNgatRowaTJ0+OMfwr2h9//MGUKVMeukvew/j5+fH888/H+OPr60vGjBl5/vnnAZg3bx6///47R48e5fPPP6dFixb06dOHggULOh+nZs2azh34APr27cvs2bNZsGABBw8epGvXrty6dYsOHToAEBAQwOuvv07fvn1Zv349O3fupEOHDlSoUIHy5csDUKdOHYoUKULbtm3Zu3cvP//8M++99x7du3e/r4h09+5d3nrrLWbNmuVMaqVKlZg6dSp79+7lm2++oVKlSnHqG7FWVBR06gR2O7zyCgQHWx2RiIiIiIiISMoQrxFT48aNo0KFCrzwwguULVvWWRg6dOgQ27ZtI0uWLIwdOzZBA41+/EGDBnH16lXy5MnDu+++S58+fWLcc/ToUUJCQpxfv/LKK1y+fJkhQ4Zw4cIFSpQowU8//RRjMfOJEyfi5uZGs2bNCA8Pp27dukybNs153d3dneXLl9O1a1cqVKiAr68v7du3Z8SIEffFOHz4cIKDgylRooTz3JQpU2jdujVVqlShTZs2zpFZkjxMmQK7dkFg4L+jpkRERERERETkycVrjSmAS5cuMWbMGFatWsXJkycBc12mBg0aMHDgQOeUN3kyYWFhBAQExGpepiS848fh+efh9m2YMwdef93qiERERERERERcW1xqGfEuTEnSUGHKOoYB9evDzz9DtWqwbh3YbFZHJSIiIiIiIuLa4lLLiNcaUyKpwZIlZlHKywtmzlRRSkRERERE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89yUKVPYs2cPVapUoVGjRjRr1iyBe8e1uLvD5Mnm8X+LU9FfT5oE98zaFBEREREREZFUyGXWmJIHS45rTEX79lvo1QvOnPn3XM6cZlGqaVPLwhIRERERERGRRBSXWsbjt04TiaemTeHFF2HTJjh/3lxTqnJljZQSEREREREREZMKU5Ko3N2hWjWroxARERERERERV5Rs1pgSEREREREREZGURYUpERERERERERGxhApTIiIiIiIiIiJiCRWmRERERERERETEEipMiYiIiIiIiIiIJVSYEhERERERERERS6gwJSIiIiIiIiIillBhSkRERERERERELKHClIiIiIiIiIiIWEKFKRERERERERERsYQKUyIiIiIiIiIiYgkVpkRERERERERExBIqTImIiIiIiIiIiCU8rA5AHs0wDADCwsIsjkRERERERERE5PGiaxjRNY1HUWHKxd24cQOAnDlzWhyJiIiIiIiIiEjs3bhxg4CAgEfeYzNiU74SyzgcDs6dO4efnx82m83qcOIlLCyMnDlzcvr0afz9/a0OJ1VR37sO5cJa6n/XoVy4DuXCWup/16FcWEv97zqUC9eREnJhGAY3btzgqaeews3t0atIacSUi3NzcyNHjhxWh5Eg/P39k+2TKrlT37sO5cJa6n/XoVy4DuXCWup/16FcWEv97zqUC9eR3HPxuJFS0bT4uYiIiIiIiIiIWEKFKRERERERERERsYQKU5LovLy8GDp0KF5eXlaHkuqo712HcmEt9b/rUC5ch3JhLfW/61AurKX+dx3KhetIbbnQ4uciIiIiIiIiImIJjZgSERERERERERFLqDAlIiIiIiIiIiKWUGFKREREREREREQsocKUiIiIiIiIiIhYQoUpERFJ1hwOh9UhiIiIiIhIPKkwJfESHh5udQip2sWLFzl37pzVYQhw6tQp9u3bZ3UYqdbff//N5MmTrQ5DALvdTmRkpNVhiIg4afNxEZM+xBNXp8KUxNmBAweoUaMGmzdvtjqUVGn37t2ULVuWv//+2+pQUr19+/ZRtWpVZs+ezdWrV60OJ9XZv38/JUqU4O233+aPP/6wOpxU7dChQ7z11lsEBwczfPhwPR8sdOLECWbPns2UKVNYtWqV1eGkKkePHmXs2LG8++67/O9//+PWrVtWh5RqRf8MstlsKk5Z4PTp0yxYsIBJkyaxbt06q8NJ1UJDQwFwc3NTccpi586d44cffuDLL79k165dVofjclSYkjj7+OOP2bp1K6+99hpbt261OpxUZe/evVSuXJkmTZpQo0YNq8NJ1Y4cOUKtWrVo3rw5H3/8MRkyZLA6pFRl7969lC1blldeeYWqVauyfPlyQJ8IWuHPP//khRde4OrVqzz77LN88MEHzJo1y+qwUqX9+/dTrlw5lixZwnfffUfDhg1p164d27Ztszq0FO/PP/+kdOnSrFy5ko0bN9K6dWs6dOjAmjVrrA4t1Tlw4ABZs2ald+/egIpTSW3//v1UrlyZWbNmMWvWLOrVq8fixYutDitVOnDgALlz52b06NGAilNW2r9/P1WqVGHUqFG88847NGnShBUrVlgdlkuxGfpJLXE0b948Dh06REhICN9//z3fffcdlStXtjqsFO+vv/6iQoUKdO/enTFjxmC329m/fz+3b98mICCA5557zuoQU5VJkyaxfft2vvjiC6KiopgzZw4nTpwgd+7c1KxZkwIFClgdYoq1e/duqlatSs+ePZ0v8PPnz+fw4cMEBARgGAY2m83qMFOF69evU79+fapXr+78xXfo0KHcvHmTsWPH4uHhYXGEqceVK1eoWbMmDRs2ZNSoUQCsWrWKhg0bEhwcTJ8+fahevbrFUaZMd+7coXnz5jzzzDN88sknAGzbto1u3bqRIUMGunfvzosvvmhxlKnDuXPnaNKkCVFRURw6dIg33niDiRMnAui1IQkcP36c6tWr07JlS4YNG8aNGzf49NNPWb58OStXriRLlizKQRI5c+YMjRs35tatW4SEhNC/f38GDhwImB/iublpfEpSOXr0KFWrVuXVV19l4MCBnD59mmnTpnH58mUWLFiAj4+PnhdoxJTEg4+PD5s2beKTTz6hQoUKNG/enIMHD/L+++/z5ZdfWh1eihQeHk7btm1Jly4dvXr1AqB58+Z07NiRRo0aUa5cOT766COLo0xd9u3bh5eXFwA1atTgs88+Y8eOHQwePJjevXtrCk0iuXTpEpUqVaJz587ON989evQgQ4YMzrWm9OKedO7cucOdO3eoUqWK89zp06fZtm0b5cqVo2vXrnouJJHr16/j4eFB69atMQyDiIgISpQoQeHChdm+fTuffvop165dszrMFClt2rRcu3aNLFmyAOabvrJly7JgwQLCw8OZOXOm1iJM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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"# Query Archive\n"
],
"metadata": {
"id": "nFPqES0qWPFG"
}
},
{
"cell_type": "markdown",
"source": [
"# Interactivity API (Older Queries)\n",
"## Adoption over time"
],
"metadata": {
"id": "2FfbQTTPMspu"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"query = f\"\"\"\n",
"WITH\n",
" wordpress_sites AS (\n",
" SELECT\n",
" date,\n",
" page AS origin,\n",
" client AS device,\n",
" JSON_EXTRACT(custom_metrics, '$.cms.wordpress.uses_interactivity_api') AS uses_interactivity_api\n",
" FROM\n",
" `httparchive.all.pages`,\n",
" UNNEST(technologies) AS technologies,\n",
" UNNEST(technologies.categories) AS category\n",
" WHERE\n",
" date > PARSE_DATE( '%Y-%m-%d', '2024-04-01' )\n",
" AND technologies.technology = 'WordPress'\n",
" AND category = 'CMS'\n",
" AND is_root_page = TRUE\n",
" )\n",
"\n",
"SELECT\n",
" date,\n",
" COUNT( DISTINCT origin ) AS wordpress_origins,\n",
" COUNT( DISTINCT IF( uses_interactivity_api = 'true', origin, null ) ) AS uses_interactivity_api,\n",
" COUNT( DISTINCT IF( uses_interactivity_api = 'true', origin, null ) ) / COUNT ( DISTINCT origin ) AS pct_uses_interactivity_api\n",
"FROM wordpress_sites\n",
"GROUP BY date\n",
"ORDER BY date ASC\n",
"\"\"\"\n",
"\n",
"ia_adoption_data = client.query(query).to_dataframe()\n",
"\n",
"ia_adoption_data"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 273
},
"id": "XCV29-7Nm5cE",
"outputId": "449b6d27-9fff-473d-ee91-e9e95c8f7850"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" date wordpress_origins uses_interactivity_api \\\n",
"0 2024-05-01 5934368 45339 \n",
"1 2024-06-01 5895943 47442 \n",
"2 2024-07-01 5820251 48424 \n",
"3 2024-08-01 5634882 48603 \n",
"4 2024-09-01 5779122 52791 \n",
"5 2024-10-01 5983748 57402 \n",
"6 2024-11-01 5916935 58379 \n",
"\n",
" pct_uses_interactivity_api \n",
"0 0.007640 \n",
"1 0.008047 \n",
"2 0.008320 \n",
"3 0.008625 \n",
"4 0.009135 \n",
"5 0.009593 \n",
"6 0.009866 "
],
"text/html": [
"\n",
" <div id=\"df-016eb4ac-e3f5-4de0-9221-7f5b5166895e\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>wordpress_origins</th>\n",
" <th>uses_interactivity_api</th>\n",
" <th>pct_uses_interactivity_api</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-05-01</td>\n",
" <td>5934368</td>\n",
" <td>45339</td>\n",
" <td>0.007640</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-06-01</td>\n",
" <td>5895943</td>\n",
" <td>47442</td>\n",
" <td>0.008047</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-07-01</td>\n",
" <td>5820251</td>\n",
" <td>48424</td>\n",
" <td>0.008320</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-08-01</td>\n",
" <td>5634882</td>\n",
" <td>48603</td>\n",
" <td>0.008625</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-09-01</td>\n",
" <td>5779122</td>\n",
" <td>52791</td>\n",
" <td>0.009135</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-10-01</td>\n",
" <td>5983748</td>\n",
" <td>57402</td>\n",
" <td>0.009593</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-11-01</td>\n",
" <td>5916935</td>\n",
" <td>58379</td>\n",
" <td>0.009866</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-016eb4ac-e3f5-4de0-9221-7f5b5166895e')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-016eb4ac-e3f5-4de0-9221-7f5b5166895e button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-016eb4ac-e3f5-4de0-9221-7f5b5166895e');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-6e09330a-761d-42db-9204-3f744fc7f77b\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-6e09330a-761d-42db-9204-3f744fc7f77b')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-6e09330a-761d-42db-9204-3f744fc7f77b button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_e7950b47-2b32-4be2-b532-f9a9b3ea5cee\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('ia_adoption_data')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_e7950b47-2b32-4be2-b532-f9a9b3ea5cee button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('ia_adoption_data');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "ia_adoption_data",
"summary": "{\n \"name\": \"ia_adoption_data\",\n \"rows\": 7,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"2024-05-01\",\n \"2024-06-01\",\n \"2024-10-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"wordpress_origins\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 7,\n \"samples\": [\n 5934368,\n 5895943,\n 5983748\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 7,\n \"samples\": [\n 45339,\n 47442,\n 57402\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0008197851123314178,\n \"min\": 0.0076400722031394076,\n \"max\": 0.009866425776183109,\n \"num_unique_values\": 7,\n \"samples\": [\n 0.0076400722031394076,\n 0.008046549975126964,\n 0.009592984196526993\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-05-01\",\n{\n 'v': 5934368,\n 'f': \"5934368\",\n },\n{\n 'v': 45339,\n 'f': \"45339\",\n },\n{\n 'v': 0.0076400722031394076,\n 'f': \"0.0076400722031394076\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-06-01\",\n{\n 'v': 5895943,\n 'f': \"5895943\",\n },\n{\n 'v': 47442,\n 'f': \"47442\",\n },\n{\n 'v': 0.008046549975126964,\n 'f': \"0.008046549975126964\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-07-01\",\n{\n 'v': 5820251,\n 'f': \"5820251\",\n },\n{\n 'v': 48424,\n 'f': \"48424\",\n },\n{\n 'v': 0.008319916099838306,\n 'f': \"0.008319916099838306\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-08-01\",\n{\n 'v': 5634882,\n 'f': \"5634882\",\n },\n{\n 'v': 48603,\n 'f': \"48603\",\n },\n{\n 'v': 0.008625380265283283,\n 'f': \"0.008625380265283283\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-09-01\",\n{\n 'v': 5779122,\n 'f': \"5779122\",\n },\n{\n 'v': 52791,\n 'f': \"52791\",\n },\n{\n 'v': 0.00913477860477768,\n 'f': \"0.00913477860477768\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-10-01\",\n{\n 'v': 5983748,\n 'f': \"5983748\",\n },\n{\n 'v': 57402,\n 'f': \"57402\",\n },\n{\n 'v': 0.009592984196526993,\n 'f': \"0.009592984196526993\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-11-01\",\n{\n 'v': 5916935,\n 'f': \"5916935\",\n },\n{\n 'v': 58379,\n 'f': \"58379\",\n },\n{\n 'v': 0.009866425776183109,\n 'f': \"0.009866425776183109\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"wordpress_origins\"], [\"number\", \"uses_interactivity_api\"], [\"number\", \"pct_uses_interactivity_api\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-000b749d-e3ca-494a-aa70-b6556fdbe427\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-000b749d-e3ca-494a-aa70-b6556fdbe427')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-000b749d-e3ca-494a-aa70-b6556fdbe427 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 6
}
]
},
{
"cell_type": "code",
"source": [
"ia_adoption_data.head(1000)"
],
"metadata": {
"id": "xJn59S62H_6u",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 273
},
"outputId": "0c02414e-375f-4c22-a42e-f41e8a88ed52"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" date wordpress_origins uses_interactivity_api \\\n",
"0 2024-05-01 5934368 45339 \n",
"1 2024-06-01 5895943 47442 \n",
"2 2024-07-01 5820251 48424 \n",
"3 2024-08-01 5634882 48603 \n",
"4 2024-09-01 5779122 52791 \n",
"5 2024-10-01 5983748 57402 \n",
"6 2024-11-01 5916935 58379 \n",
"\n",
" pct_uses_interactivity_api \n",
"0 0.007640 \n",
"1 0.008047 \n",
"2 0.008320 \n",
"3 0.008625 \n",
"4 0.009135 \n",
"5 0.009593 \n",
"6 0.009866 "
],
"text/html": [
"\n",
" <div id=\"df-7cbf2cad-a940-4626-a9d6-0d105d48c638\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>wordpress_origins</th>\n",
" <th>uses_interactivity_api</th>\n",
" <th>pct_uses_interactivity_api</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-05-01</td>\n",
" <td>5934368</td>\n",
" <td>45339</td>\n",
" <td>0.007640</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-06-01</td>\n",
" <td>5895943</td>\n",
" <td>47442</td>\n",
" <td>0.008047</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-07-01</td>\n",
" <td>5820251</td>\n",
" <td>48424</td>\n",
" <td>0.008320</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-08-01</td>\n",
" <td>5634882</td>\n",
" <td>48603</td>\n",
" <td>0.008625</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-09-01</td>\n",
" <td>5779122</td>\n",
" <td>52791</td>\n",
" <td>0.009135</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-10-01</td>\n",
" <td>5983748</td>\n",
" <td>57402</td>\n",
" <td>0.009593</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-11-01</td>\n",
" <td>5916935</td>\n",
" <td>58379</td>\n",
" <td>0.009866</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7cbf2cad-a940-4626-a9d6-0d105d48c638')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-7cbf2cad-a940-4626-a9d6-0d105d48c638 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-7cbf2cad-a940-4626-a9d6-0d105d48c638');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-dc3e29b7-f27a-448c-9bdc-13fcadda531b\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-dc3e29b7-f27a-448c-9bdc-13fcadda531b')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-dc3e29b7-f27a-448c-9bdc-13fcadda531b button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "ia_adoption_data",
"summary": "{\n \"name\": \"ia_adoption_data\",\n \"rows\": 7,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 7,\n \"samples\": [\n \"2024-05-01\",\n \"2024-06-01\",\n \"2024-10-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"wordpress_origins\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 7,\n \"samples\": [\n 5934368,\n 5895943,\n 5983748\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 7,\n \"samples\": [\n 45339,\n 47442,\n 57402\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.0008197851123314178,\n \"min\": 0.0076400722031394076,\n \"max\": 0.009866425776183109,\n \"num_unique_values\": 7,\n \"samples\": [\n 0.0076400722031394076,\n 0.008046549975126964,\n 0.009592984196526993\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-05-01\",\n{\n 'v': 5934368,\n 'f': \"5934368\",\n },\n{\n 'v': 45339,\n 'f': \"45339\",\n },\n{\n 'v': 0.0076400722031394076,\n 'f': \"0.0076400722031394076\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-06-01\",\n{\n 'v': 5895943,\n 'f': \"5895943\",\n },\n{\n 'v': 47442,\n 'f': \"47442\",\n },\n{\n 'v': 0.008046549975126964,\n 'f': \"0.008046549975126964\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-07-01\",\n{\n 'v': 5820251,\n 'f': \"5820251\",\n },\n{\n 'v': 48424,\n 'f': \"48424\",\n },\n{\n 'v': 0.008319916099838306,\n 'f': \"0.008319916099838306\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-08-01\",\n{\n 'v': 5634882,\n 'f': \"5634882\",\n },\n{\n 'v': 48603,\n 'f': \"48603\",\n },\n{\n 'v': 0.008625380265283283,\n 'f': \"0.008625380265283283\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-09-01\",\n{\n 'v': 5779122,\n 'f': \"5779122\",\n },\n{\n 'v': 52791,\n 'f': \"52791\",\n },\n{\n 'v': 0.00913477860477768,\n 'f': \"0.00913477860477768\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-10-01\",\n{\n 'v': 5983748,\n 'f': \"5983748\",\n },\n{\n 'v': 57402,\n 'f': \"57402\",\n },\n{\n 'v': 0.009592984196526993,\n 'f': \"0.009592984196526993\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-11-01\",\n{\n 'v': 5916935,\n 'f': \"5916935\",\n },\n{\n 'v': 58379,\n 'f': \"58379\",\n },\n{\n 'v': 0.009866425776183109,\n 'f': \"0.009866425776183109\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"wordpress_origins\"], [\"number\", \"uses_interactivity_api\"], [\"number\", \"pct_uses_interactivity_api\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-3037eb57-aa9f-4973-b514-f77ebb5a0ea5\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-3037eb57-aa9f-4973-b514-f77ebb5a0ea5')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-3037eb57-aa9f-4973-b514-f77ebb5a0ea5 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 7
}
]
},
{
"cell_type": "markdown",
"source": [
"### Interactity API adoption over time"
],
"metadata": {
"id": "laQH9R2FlBqZ"
}
},
{
"cell_type": "code",
"source": [
"# plot the adoption data for mobile/desktop, organized by date as the X axis and pct_uses_interactivity_api as the Y axis\n",
"\n",
"import pandas as pd\n",
"import ipywidgets as widgets\n",
"\n",
"# Assuming you've run the BigQuery query and stored the results\n",
"adoption_data = ia_adoption_data.copy()\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# order data by date\n",
"adoption_data = adoption_data.sort_values(by='date')\n",
"\n",
"# Plotting\n",
"plt.figure(figsize=(12, 6)) # Adjust the figure size for better readability\n",
"\n",
"# Plot the data\n",
"plt.plot(adoption_data['date'], adoption_data['pct_uses_interactivity_api'], marker='o', linestyle='-', color='blue', label='WordPress Sites')\n",
"\n",
"# Formatting\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('% of WordPress Sites Using Interactivity API', fontsize=12)\n",
"plt.title('Adoption of Interactivity API Over Time (Mobile / Desktop)', fontsize=14)\n",
"plt.legend(fontsize=12) # Show the legend for clarity\n",
"plt.grid(axis='y', linestyle='--') # Add a subtle grid for better visual reference\n",
"plt.xticks(rotation=45, ha=\"right\") # Rotate x ticks for readability\n",
"\n",
"# Format Y numbers as pertcents, with 5 decimal points of precision\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.3%}'.format(y)))\n",
"\n",
"# Show the plot\n",
"plt.tight_layout()\n",
"plt.show()\n"
],
"metadata": {
"id": "NjZsC6N1IENa",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 607
},
"outputId": "85cdf428-d5aa-4a28-fc69-d46bee7f1e7d"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADMHElEQVR4nOzdd3RU1dfG8e+kh5IEAoQeelF6710QkCJNihAQUQGRZkFRmgpiQbCidGmCGIkUDT8hSAdpIghI7x1JIEDqff+4bwbGFCZDwpDwfNZi6T3nln1mJoHsnLOPxTAMAxERERERERERkQfIxdkBiIiIiIiIiIjIo0dJKREREREREREReeCUlBIRERERERERkQdOSSkREREREREREXnglJQSEREREREREZEHTkkpERERERERERF54JSUEhERERERERGRB05JKREREREREREReeCUlBIRERERERERkQdOSSkRkUzq+PHjWCwWevfu7exQbDRq1AiLxeLsMO7LqlWrqFu3Ljly5MBisdC+fXtnh5Sp9O7dG4vFwvHjx516D8k81q5di8ViYcyYMc4OxW5Lly7FYrGwadMmp8YxZswYLBYLa9eutfsai8VCo0aN7vs+j6KkXruH1bPPPktgYCC3b992digikoEpKSUi8pB67rnnsFgs+Pv7ExUV5exw7JbZf/A4fvw47dq14+jRo/Tp04fRo0fTtWvXFK9JeE2+//77+3p2ZkjoAcyePRuLxcLs2bMf6HOdkZhYt24dFosFi8XCDz/8kOx5Ca/J3X+8vb0pU6YMw4YN4/LlyzbnJ3wWzp8/n6p4Dh8+zMCBAyldujRZs2Yle/bslC9fntdee41z5845NMYHLeHryd4/GSkRlSAmJobXX3+dFi1aUKdOHWt7wi8bLBYLefPmJTY2Nsnr9+/fbz2vSJEiDyjqh0e5cuWoVq3aPc8rUqSIzWfF09OT3LlzU6NGDQYOHMiGDRseQLSOc/bfCaNGjeLMmTNMnjzZaTGISMbn5uwAREQksevXr7N48WIsFgtXr15l6dKlPPPMM84OK01899133Lx509lhOOy3337j9u3bfPLJJ3Tv3t3Z4WRKEyZMYMSIERQoUMCp90gLM2bMAMzZDzNnzqRz584pnt+0aVPq1asHwKVLlwgNDeXTTz8lODiYHTt24O/v73AsM2fO5KWXXiI2NpYmTZrQtm1b4uPj2bJlCx9//DFTp05l0aJFtGrVyuFnPAhJzSLZvXs3ISEhNGzYMFF/o0aNqFGjBvv37ydXrlwPJsj7NHfuXA4dOsTUqVOT7Hdzc+PChQusXLmStm3bJuqfMWMGLi7O+93z/v37yZIli1OefeTIEfbt28e7775r1/murq68/fbbAMTGxvLvv//y119/8c033/DVV1/Rpk0b5syZQ44cOdIz7AypVKlStGvXjg8++IBBgwaRNWtWZ4ckIhmQklIiIg+hRYsWERkZybBhw5g8eTIzZszINEmpwoULOzuE+3L27FkA8ufP7+RIMq98+fKRL18+p9/jfkVERLBkyRIqVKhAQEAAq1at4tSpUxQqVCjZa5o1a8aIESOsxzExMbRo0YKwsDA+//xzh2f9LF++nOeffx5/f39CQkJsZt8A/Pzzz3Tt2pUOHTqwadMmqlSp4tBzHoRGjRolSjzNnj2bkJAQGjVqlOxrVKZMmfQPLo18/fXXFCpUiMaNGyfZX6dOHf78809mzpyZKCkVGxvLvHnzaNasGb///vuDCDcRZ77WISEhALRr186u893c3JL8zJw4cYK+ffuybNkynn76adasWePURN/D6tlnnyU4OJjvv/+evn37OjscEcmA9J1VROQhNGPGDNzc3Hj99ddp3Lgxq1ev5sSJE0meGxcXx8SJEylRogReXl6UKFGCCRMmEB8fn+z99+7dS5cuXciTJw+enp4ULVqUIUOGcOXKlUTnFilShCJFinDt2jVefPFF8ubNi5eXF5UrV2bhwoU25zZq1IixY8cC0Lhx4ySXjyS33CA2NpZJkyZRsWJFvL298fX1pXHjxixbtizRuXcv/1q1ahV16tQhS5Ys+Pv7ExQUlOQ4UmLP65GwbGb06NGJxufoUsWE2iEXLlwgKCiIXLly4e3tTa1atRLd02KxWH/AvHu5yX9rhu3Zs4euXbuSL18+PDw8CAwMZNCgQYlek7trju3fv5+nn34af39/mzpMP/30E926daNEiRJkyZIFX19f6tevz48//pjsmP7880969OhBwYIF8fT0JF++fDz55JPW97F379706dMHgD59+tiMJcF/60GtX78ei8XCc889l+QzL168iLu7O3Xr1k32HmPGjLH+gD927Fib5x4/fpxnn30Wi8XCtm3bknzGqFGjsFgsiT7zKVm4cCE3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CebSvKgocHGB/v1h7Fjw93d2dCIiIg83h2ZKffXVVwQHB7NgwYK0jkdERERE5KFnGDB/PpQuDe+/byakmjSB3bvNGVJKSImIiNybxfjvtnl2qFChAlevXuXcuXNky5aNggUL4urqantji4U///wzzQLNjCIiIvD19SU8PBwfHx9nhyMiIiIidti+3awbtWmTeVy0KHzyCbRvDxaLU0MTERF5KNib73Bo+V7OnDnx9/enZMmSDgcoIiIiIpKRnD8Pb70Fs2ebM6WyZjWPhw0DLy9nRyciIpLxOJSUWrt2bRqHISIiIiLycIqOhilT4N134fp1s+3ZZ+GDD6BAAefGJiIikpE5lJQSEREREcnsDANWrDBnQh06ZLZVr24mqGrXdm5sIiIimYFdSal169YB0KBBA5vje0k4X0REREQkIzlwAIYMgdBQ8zggwJwZ1auXucOeiIiI3D+7Cp27uLhgsVi4desWHh4e1uPkGIaBxWIhLi4uTYPNbFToXEREROThcu0ajB1r7qAXGwvu7jB0KIwcCfrnmoiIiH3StNB5WFgYAB4eHjbHIiIiIiKZQVwczJhhJp8uXzbb2raFjz8G7e0jIiKSPuyaKSXpQzOlRERERJxv3ToYPBh27zaPy5aFTz+FFi2cGpaIiEiGZW++I01XxB89epT9+/en5S1FRERERNLFyZPwzDPQsKGZkPL1hcmT4c8/lZASERF5EBxKSn322Wd07drVpq1Pnz6ULFmScuXKUa1aNS5evJgmAYqIiIiIpKWbN2HMGChdGhYvNguXv/SSucPe4MFmHSkRERFJfw4lpaZPn05AQID1ODQ0lDlz5vDCCy/w+eefc/ToUcaOHZtmQYqIiIiI3C/DgEWLoEwZs5j57dvmLKkdO+DrryF3bmdHKCIi8mixq9D5f504cYKyZctajxcvXkzRokX5+uuvATh//jxz585NmwhFRERERO7Trl3mLKj1683jwoXNIuadOkEKm0qLiIhIOnJoptR/a6OvWrWKli1bWo+LFCnC+fPn7y8yEREREZH7dOkSvPACVK1qJqS8vWHcODhwADp3VkJKRETEmRxKSpUqVYqffvoJMJfunT171iYpdfr0afz8/NIkQBERERGR1IqONnfQK1kSpk0zl+516wYHD8I775jJKREREXEuh5bvvfrqq3Tv3p0cOXIQGRlJ2bJlaXHXFiVr1qyhUqVKaRWjiIiIiIjdfv0VhgwxE1AAlSvDZ59BvXpODUtERET+w6GkVNeuXfH392flypX4+fkxYMAA3NzMW129epWcOXPSs2fPNA1URERERCQl//wDw4bBihXmcZ48MH489O4Nrq5ODU1ERESSYDH+WyBKHpiIiAh8fX0JDw/Hx8fH2eGIiIiIZEjh4fDeezBlCsTEgJubWdT8nXfA19fZ0YmIiDx67M13ODRTSkRERETE2eLjYfZsePNNuHjRbGvVCiZNgtKlnRqaiIiI2MHupFSxYsWS7bNYLHh5eREYGEirVq3o168fnp6eaRKgiIiIiMh/bdoEr7wCO3aYx6VKmYXNW7VyblwiIiJiP7uTUo899hiWFPbMvXnzJn/99Re//vorM2fOZO3atVqSJiIiIiJp6vRpeOMNWLDAPPbxgdGj4eWXwcPDubGJiIhI6tidlFq+fLld5y1dupQuXbrw3nvv8eGHHzocmIiIiIhIglu34JNPYMIEuHkTLBbo29esJRUQ4OzoRERExBEuaX3D9u3b06dPH4KDg9P61iIiIiLyiDEM+PFHeOwxs3D5zZtQrx5s3w7TpikhJSIikpGleVIKoEqVKpw+fTo9bi0iIiIij4g9e6BJE+jUCY4fh4IFYeFCWLcOqlRxdnQiIiJyv9IlKXXlyhW8vb3T49YiIiIiksldvgz9+0PlyrB2LXh5wahRcOAAdO1qLt0TERGRjM/umlL2io6OZtGiRVStWjWtby0iIiIimVhMDHz9tVm4/No1s61zZ/joIwgMdGpoIiIikg7sTkrt3Lkzxf5bt25x8OBBpk+fzr59+1i5cuV9ByciIiIij4b//Q+GDIG//zaPK1aEKVOgYUOnhiUiIiLpyO6kVLVq1bDcY660YRjkyZOH2bNn07x58/sOTkREREQytyNHYPhwCAkxj/394f334fnnwdXVubGJiIhI+rI7KTVr1qwU+728vAgMDKRq1aq4u7vfd2AiIiIiknldv24mnz79FKKjzQTUyy+bS/dy5HB2dCIiIvIg2J2UCgoKSs84REREROQREB8Pc+fCiBFw/rzZ1ry5mZx67DHnxiYiIiIPVpoXOhcRERERScrWrfDKK7Btm3lcogRMmgRPPaUd9URERB5FLs4OQEREREQyt7NnoVcvqFXLTEhlywYTJ8LevdCmjRJSIiIijyrNlBIRERGRdHH7trks7/33ITLSbOvTB8aPh7x5nRubiIiIOJ+SUiIiIiKSpgzD3E1v+HA4etRsq1ULPvsMqld3bmwiIiLy8NDyPRERERFJM/v2wRNPwNNPmwmp/PnNwuabNikhJSIiIraUlBIRERGR+3b1KgwaBBUrwurV4OkJI0fCwYPw7LOqGyUiIiKJOZSUWr16NR999JFN28yZMylcuDABAQEMHTqUuLi4NAlQRERERB5esbHw1VdQsiR88QXExUGHDvD33/Dee2ZRcxEREZGkOFRTasyYMQQGBlqP//rrL1588UUqVKhAiRIl+Oyzz8ibNy9vvPFGmgUqIiIiIg+XsDAYPBj++ss8LlcOJk+Gpk2dGpaIiIhkEA7NlNq/fz/VqlWzHs+dOxcfHx/Wr1/PokWL6NevH999912aBSkiIiIiD49jx6BjR2jSxExI5cwJX34Ju3YpISUiIiL2cygpFRkZiY+Pj/X4119/5cknnyRLliwAVK9enRMnTqRNhCIiIiLyUIiMhLffhrJlITgYXF3h5Zfh0CEYMADctK+ziIiIpIJDSalChQrxxx9/AHD48GH27t1L8+bNrf1Xr17F09MzbSIUEREREacyDJg/H0qXhvffh6goc5bU7t3w+efmTCkRERGR1HLo91k9evRg3LhxnDlzhn379pEjRw7atWtn7d+xYwelSpVKsyBFRERExDm2b4dXXoHNm83jokVh0iRo10476omIiMj9cSgpNXLkSKKjo1m5ciWFCxdm9uzZ+Pn5AeYsqbVr1zJ48OC0jFNEREREHqDz5+Gtt2DWLPM4a1YYORKGDgUvL+fGJiIiIpmDxTAMw9lBPKoiIiLw9fUlPDzcpkaXiIiIiLNERcFnn8G778L162Zbz54wYQIUKODc2ERERCRjsDffcd/lKM+dO8fFixcpUaIEWbNmvd/biYiIiIgTGAasWGHOhDp82GyrUQOmTIFatZwbm4iIiGRODhU6BwgJCaFMmTIULFiQKlWqsHXrVgAuX75M5cqV+emnn9IsSBERERFJP/v3Q8uW0KaNmZDKmxdmzzbrSCkhJSIiIunFoaTUsmXL6NChA7ly5WL06NHcvQIwV65cFChQgNmzZ6dVjCIiIiJyH+LiYO1aWLjQ/G9cnNl+7Zo5M6pCBQgNBQ8PeOMN+OcfCAoCF4d/fSkiIiJybw4t3xs3bhwNGjQgLCyMK1euMGbMGJv+2rVr880336RFfCIiIiJyH4KDYfBgOH36TlvBgtC6Nfz4I1y+bLa1bQuffAIlSjgnThEREXn0OJSU2rt3L5MmTUq2PyAggIsXLzoclIiIiIjcv+Bg6NTJrBd1t9OnIeH3h2XLwuTJ0Lz5Aw9PREREHnEOJaWyZMlCZGRksv1Hjx7F39/f4aBERERE5P7ExZkzpFLaZ9nPD3buBC+vBxaWiIiIiJVDlQIaN27MnDlziI2NTdR3/vx5pk2bRnP9uk1ERETEadavt12yl5Rr12DLlgcSjoiIiEgiDiWl3n//fU6fPk316tX55ptvsFgshIaG8vbbb1O+fHkMw2D06NFpHauIiIiI3ENkpFnQfPhw+84/dy594xERERFJjsUwUprUnbx9+/YxePBgwsLCbHbfa9SoEV9++SVly5ZNsyAzq4iICHx9fQkPD8fHx8fZ4YiIiEgGFR0Nv/5qJqN+/hlu3rT/2rAwaNQo3UITERGRR5C9+Q6Hk1IJ/v33Xw4fPkx8fDzFihUjd+7c93O7R4qSUiIiIuKouDhYu9ZMRP34o7kUL0Hx4vDMMzBjBly8mHRdKYvF3IXv2DFwdX1QUYuIiMijwN58h0OFzseNG0eHDh0oV64cOXLkoHr16jb9+/bt48cff2TUqFGO3F5EREREkmAYsHWrmYhavBjOn7/Tlz+/mYjq1g2qVTOTTlWrmrvvWSy2iSmLxfzv5MlKSImIiIjzODRTysXFhXnz5tG9e/ck+xctWkT37t2Ji4u77wAzM82UEhEREXv89ZeZiPr+e3NmU4KcOc2kU7duUL9+0gmm4GBzF767i54XKmQmpDp0SPfQRURE5BGUrjOl7uXq1at4eHikx61FREREHglHj5qJqIULYd++O+1Zs0L79mYi6okn4F7/5OrQAdq1M3fjO3cO8uVLPoElIiIi8iDZnZRat24da9eutR4HBwdz+PDhROddu3aNRYsWUb58+TQJUERERORRce4cLFpkJqK2bbvT7uEBrVqZiainnoIsWVJ3X1dXFTMXERGRh4/dSamwsDDGjh0LgMViITg4mODg4CTPfeyxx/j888/TJkIRERGRTOzqVbNQ+cKFZuHyhMIKLi7QtKmZiHr6afDzc2aUIiIiImnP7ppSt27d4ubNmxiGQZ48eZg6dSodO3a0vZnFQpYsWfDy8kqXYDMb1ZQSERF5NN24AT//bCaiQkMhJuZOX506ZiKqc2cICHBejCIiIiKOSvOaUt7e3nh7ewNw7NgxcufOTZbUzh0XEREReURFRcGvv5qJqGXL4ObNO30VK5qJqGeegSJFnBaiiIiIyAPlUKHzwMDAtI5DREREJNOJi4OwMDMRFRwM167d6StRwkxEdesGZcs6LUQRERERp7ErKVW0aFFcXFw4cOAA7u7uFC1aFIvFkuI1FouFI0eOpEmQIiIiIhmFYcCWLWYiavFiuHDhTl+BAuZsqG7doGpVuMc/p0REREQyNbuSUg0bNsRiseDi4mJzLCIiIiJmIuqvv8xE1Pffw/Hjd/r8/aFTJzMRVb++WcBcRERERFJR6FzSngqdi4iIZGxHjpiJqIUL4e+/77Rnywbt25uJqCeeAHd3p4UoIiIi8sCleaFzEREREYGzZ2HRIjMR9ccfd9o9PaFVKzMR1bo1aD8YERERkZTZnZS6efMmly9fJm/evHh4eNj0zZw5k/nz53Pu3DnKlCnDm2++SfXq1dM8WBERERFnuHIFfvzRTET9/ru5XA/A1RWaNjUTUU8/Db6+zo1TREREJCOxOyk1btw4pk6dyunTp22SUu+99x6jR4/GYrGQI0cODhw4QGhoKJs2baJixYrpErSIiIhIertxA0JCzERUaCjExt7pq1vXTER17gx58jgvRhEREZGMzO5Sm2FhYTz11FNky5bN2hYREcF7771HgQIFOHToEJcuXWLLli14eHjwwQcfpEvAIiIiIuklKgqWLjV3yMuTB559FlasMBNSlSrBxIlmEfMNG2DgQCWkRERERO6H3TOljh8/TseOHW3aVq5cSXR0NG+88QZFixYFoEaNGvTp04fFixenbaQiIiIi6SA2FsLCzBlRwcEQHn6nr2RJc0ZUt25QpozzYhQRERHJjOyeKXX9+nX8/f1t2tatW4fFYqFFixY27Y899hiXLl1yKKAvv/ySIkWK4OXlRc2aNdm2bVuK50+ePJnSpUvj7e1NoUKFGDp0KLdv37b2jxkzBovFYvOnzH/+VXn79m0GDhyIv78/2bJlo2PHjly4cMHaf/XqVdq0aUO2bNmoXLkyu3btsrl+4MCBfPLJJw6NV0RERB48w4BNm2DQIChQAJo3h1mzzIRUgQIwfDhs3w4HD8LYsUpIiYiIiKQHu2dKBQYGcuDAAZu2tWvXEhAQQIkSJWzao6OjU9zyLzmLFi1i2LBhTJ06lZo1azJ58mRatGjBwYMHyZPE/PgFCxYwYsQIZs6cSZ06dfjnn3/o3bs3FouFSZMmWc97/PHH+e2336zHbm62wx46dCgrVqzghx9+wNfXl5dffpkOHTqwceNGAN5//32uX7/Ozp07+frrr+nXrx/bt28HYMuWLWzdupXPPvss1eMVERGRB8cwYM8ec0bU99/DiRN3+vz9zfpQ3bpBvXrgYvev7URERETEUXYnpZo3b87MmTPp1KkTNWvW5LvvvuPAgQP0798/0bk7duygSJEiqQ5m0qRJ9OvXjz59+gAwdepUVqxYwcyZMxkxYkSi8zdt2kTdunXp3r07AEWKFKFbt25s3brV5jw3Nzfy5s2b5DPDw8OZMWMGCxYsoEmTJgDMmjWLsmXLsmXLFmrVqsX+/fvp2rUrpUqV4oUXXuDbb78FICYmhpdeeonp06fj6uqa6vGKiIhI+jt82ExELVwI+/ffac+Wzdwxr1s3aNYM3N2dF6OIiIjIo8ju3wO+8847ZMuWjTp16uDh4UHv3r3JnTs3o0aNsjnv5s2b/PTTTzRt2jRVgURHR7Njxw6aNWt2JzgXF5o1a8bmzZuTvKZOnTrs2LHDusTv6NGjrFy5klatWtmcd+jQIfLnz0+xYsXo0aMHJ0+etPbt2LGDmJgYm+eWKVOGwoULW59bsWJF1qxZQ2xsLKGhoVSoUAGADz/8kEaNGlGtWrVUjVVERETS15kzMGkSVK9u1oUaNcpMSHl6QocO8MMPcPEifPcdtGyphJSIiIiIM9g9UypXrlzs3r2b6dOnc/ToUQIDA3nuuecSLavbu3cvPXr0oGfPnqkK5PLly8TFxREQEGDTHhAQkGjZYILu3btz+fJl6tWrh2EYxMbG8tJLL/HWW29Zz6lZsyazZ8+mdOnSnDt3jrFjx1K/fn327t1L9uzZOX/+PB4eHvj5+SV67vnz5wEYMWIE/fv3p3jx4hQpUoQZM2Zw6NAh5syZw+bNm3nppZdYtWoV1apVY9q0afj6+iYZb1RUFFFRUdbjiIgIwJxxFRMTA5iJOFdXV+Li4oiPj7eem9AeGxuLYRjWdldXV1xcXJJtT7hvgoSli7F372udQru7uzvx8fHExcVZ2ywWC25ubsm2Jxe7xqQxaUwak8akMaXnmK5csRAS4sbChQbr1oFhWP7/mQbNmll45pl42rSJI+GvaRcXF+DhHlNmfJ80Jo1JY9KYNCaNSWPK/GOyl91JKYAcOXLw2muvpXhOjRo1qFGjRmpu67C1a9cyfvx4vvrqK2rWrMnhw4cZPHgw7777Lu+88w4ALVu2tJ5foUIFatasSWBgIIsXL6Zv3752PcfX15cFCxbYtDVp0oSPPvqI+fPnc/ToUQ4ePEi/fv0YN25cskXPJ0yYwNixYxO1r1q1iixZsgBQuHBhKleuzJ49e2xmdJUuXZoyZcqwbds2myLylSpVIjAwkHXr1nH9+nVre+3atcmTJw+rVq2y+bA2btwYb29vVq5caRNDq1atuHXrFmFhYdY2Nzc3WrduzeXLl21mq2XPnp0mTZpw6tQpdu/ebW3PnTs3derU4dChQxw8eNDarjFpTBqTxqQxaUzpNaY1a/5g69a8rF9fgN2782D+e8tMRj322GXq1TtD27ZRtG5dgwMH/mHjxod/TJnxfdKYNCaNSWPSmDQmjenRGpOXlxf2sBh3p7OcKDo6mixZsrBkyRLat29vbQ8KCuLatWuEhIQkuqZ+/frUqlWLjz76yNo2b948XnjhBW7cuPH/vwFNrHr16jRr1owJEyawZs0amjZtyr///mszWyowMJAhQ4YwdOjQRNfPmjWLZcuWERwcTIcOHWjWrBkDBgxgxYoVjBo1ih07diT53KRmShUqVIjLly9bC8Mr26oxaUwak8akMWlMKbffvg2//ebOggUGy5fD7dsWa1/lytC1azwdO8ZRuHDGGRNkvvdJY9KYNCaNSWPSmDSmR3dMN27cwNfXl/Dw8BQ3wkvVTKn05OHhQdWqVVm9erU1KRUfH8/q1at5+eWXk7zm5s2biRJPCdPEksu13bhxgyNHjliXF1atWhV3d3dWr15Nx44dATh48CAnT56kdu3aia6/dOkS48aNY8OGDQDExcVZPzwxMTE2b/R/eXp64unpmajd3d0d9/8Us3B1dU1yylvCB9De9v/e15F2FxeXJBN8ybUnF7vGpDGltl1j0phAY0ouxtS2Z/QxWSzurFljFisPDgZzBbyZjCpVyixW3q0blC4NZsnMh39MmfF90pg0Jo1JY0ptu8akMYHGlFyMqW1/2MZkj4cmKQUwbNgwgoKCqFatGjVq1GDy5MlERkZad+Pr1asXBQoUYMKECQC0adOGSZMmUblyZevyvXfeeYc2bdpYX8BXX32VNm3aEBgYyNmzZxk9ejSurq5069YNMJfm9e3bl2HDhpEzZ058fHwYNGgQtWvXplatWoliHDJkCMOHD6dAgQIA1K1bl7lz59K8eXO+/fZb6tat+yBeKhERkUwvPh42bzYTUQmFyRMULAhdu5qJqMqVwWJJ/j4iIiIi8nB6qJJSzzzzDJcuXWLUqFGcP3+eSv/X3r3H51z/fxx/XtfObDZncs5xCps5m1MHssxhJBQiKiIkVMLXN36VSg6VRAc59s35i0IoNDkXOUVhOWfYhrHt2uf3x+e7axZqZtvn2va4325utffnc11eH162eXofgoL0zTffODc/j4qKSpPuvfbaa7LZbHrttdd08uRJFS1aVOHh4Ro/frzznhMnTqhr166Kjo5W0aJFFRoaqh9//FFFixZ13vPee+/JbrerY8eOun79ulq1aqUPP/zwpvpWr16tI0eOaPbs2c6xAQMGaMeOHapfv77q1aunMWPGZMUvDQAAeYJhSD/9JC1YYP64YTsDFSkiPfaYGUQ1bizd4h/8AAAAkIO4zJ5SeVFsbGy61lgCAJDb/fqrOSNqwQLpxkN3/fykiAhzVtSDD0q3mcEOAAAAF5LevCNTZ0olJCQoMTFR+fPnz8y3BQAAudAff0hffmmGUbt2pY57eUnh4eaMqLAwKZ2HtwAAACCHydDE9wULFtx0Kt3YsWPl6+urgIAAdejQQZcvX86UAgEAQO5x/rw0bZrUtKlUtqw0bJgZSLm5Sa1bS198Ye4d9dVX5gwpAikAAIDcK0Mzpd59910FBwc7P46MjNTYsWP16KOPKjAwUFOnTtX48eOdG5IDAIC8Ky5OWrpUmjdPWrtWuvGg2qZNzRlRnTqZe0YBAAAg78hQKPXbb7+pZ8+ezo/nzZunEiVKaMmSJXJ3d1dycrIWLVpEKAUAQB517Zq0cqW5NG/lSvPjFCEhZhD1+OPmKXoAAADImzIUSl2/fl3eN8ynX7NmjVq3bi13d/PtqlevfsvT6wAAQO6VlCR9+60ZRC1ZYs6QSlGtmhlEdekiValiXY0AAABwHRkKpSpUqKBvv/1Wffr00Y4dO3TkyBGNHz/eef3s2bPy9fXNtCIBAIBrSk6WfvjBDKK++srcMypF2bJmCNW1q1SrlmSzWVcnAAAAXE+GQqlnn31WgwYN0v79+3XixAmVLl1abdq0cV7/4YcfdN9992VakQAAwHUYhrR7txlEffmleYpeiqJFpc6dzSCqYUPJnqEjVQAAAJAXZCiUGjhwoLy9vbVq1SqFhIRoxIgR8vHxkSRduHBBZ86c0XPPPZephQIAAGsdOmQGUQsWmP+fokAB86S8rl2lBx6Q3DP03QUAAADyGpthGIbVReRVsbGx8vf3V0xMjAoUKGB1OQAA3OSPP8wQav58c3ZUCm9vKTzcDKJatzY/BgAAAKT05x2Z9m+ZhmFow4YNun79ukJDQ+Xn55dZbw0AALLRn3+a+0PNny9t3pw67u4utWxpBlHt2kl8qQcAAMDdyFAoNXLkSEVGRmrDhg2SzECqZcuWWr9+vQzDUNmyZbVu3TpVrFgxU4sFAABZIzbWPDFv/nzzBD2Hwxy32aSmTc0gqmNHqUgRa+sEAABA7pGh7UcXLVqkevXqOT9euHCh1q1bp3HjxmnFihVyOBz617/+lVk1AgCALBAfLy1caIZNxYpJTz0lrV5tBlJ16kjvvmsu3/vuO+nZZwmkAAAAkLkyNFPq5MmTqlSpkvPjxYsXq3r16nrllVckSf369dO0adMyp0IAAJBpEhPNmVDz50tLl0pxcanXAgPNGVFdukiVK1tWIgAAAPKIDIVS7u7uun79uiRz6d66devUo0cP5/XixYvr/PnzmVMhAAC4K8nJ5t5Q8+ebM6Nu/BJdrpwZQnXtKtWsaS7XAwAAALJDhkKp+++/X3PmzNETTzyhJUuWKDo6Wo8++qjz+vHjx1WEOf4AAFjGMKRdu8wg6ssvpRMnUq8VKyZ17mwGUQ0bEkQBAADAGhkKpUaPHq3w8HBn8NS4cWO1aNHCeX3lypWqW7du5lQIAADS7eBBM4iaP186fDh13N9fiogwg6gWLcyT9AAAAAArZehb0ocffli7du3S2rVrFRAQoMcff9x57eLFi2ratKnatWuXaUUCAIDbi4qSFiwwg6iffkod9/GRwsPNIKp1a8nLy7ISAQAAgJvYDMMwrC4ir4qNjZW/v79iYmJUoEABq8sBAOQg585JX31lBlE//JA67u4utWplBlHt2km+vtbVCAAAgLwpvXnHXU3e//HHH7VhwwadO3dO/fv3V+XKlXX16lUdPHhQVapUkS/fCQMAkGliYqQlS8wgat06yeEwx202qVkzM4jq2FEqXNjaOgEAAID0yFAolZCQoC5dumjZsmUyDEM2m03h4eGqXLmy7Ha7WrZsqSFDhmjkyJGZXS8AAHlKfLy0YoUZRK1aJf3v8FtJUt26ZhDVubNUqpR1NQIAAAAZYc/Ii0aNGqUVK1Zo2rRpOnTokG5cAejt7a3HHntMy5Yty7QiAQDISxITzQCqe/fUk/KWLDEDqerVpddfNzcx37ZNGjKEQAoAAAA5U4ZmSs2fP1/9+vXTM888o+jo6JuuBwYG6quvvrrr4gAAyCuSk6VNm8wZUQsXSjd+eS1fXurSxZwVVaOGuVwPAAAAyOkyFEqdO3dONWrUuO11Nzc3Xb16NcNFAQCQFxiGtHOnGUR9+aV08mTqteLFzRlSXbtKDRoQRAEAACD3yVAoVaZMGR08ePC213/44QdVqlQpw0UBAJBTORzmjKfTp6WSJaUmTSQ3t7T3HDhgBlHz50tHjqSO+/ubG5V37So1b26epAcAAADkVhn6drdbt26aOHGiOnbsqCpVqkiSbP/7J9wZM2boP//5j958883MqxIAgBxg8WJp0CDpxInUsdKlpcmTpZAQacECM4j6+efU6z4+Utu2ZhD1yCOSl1f21w0AAABYwWbcuEt5OiUkJCg8PFzr169XYGCg9u3bpxo1aujChQs6ceKEwsLCtGzZMrn99Z+GkUZsbKz8/f0VExOjAgUKWF0OAOAuLF4sdepkLsn7Jx4eUqtWZhDVtq3k65v19QEAAADZJb15R4ZCKUkyDENz587VwoULdfjwYSUnJ6tixYrq3Lmzunfv7pw5hdsjlAKA3MHhMDcjv3GG1K00by5162Yu0StUKDsqAwAAALJfevOOO16+Fx8fr5EjR6pFixZ68skn9eSTT95VoQAA5HRLlvxzICVJY8aYwRQAAACADIRSPj4+mj59uqpXr54V9QAAkCP8/ru5ZG/xYmnLlvS95vTprK0JAAAAyEkytNF5SEiIfvnll8yuBQAAl2UY5ql5ixaZQdRPP935e5QsmellAQAAADlWhkKpSZMmKSwsTPfff7+eeuopuXNmNQAgFzIMaefO1BlRhw6lXnNzM5fiRURI4eFSo0bSyZO33ujcZjNP4WvSJNtKBwAAAFxehjY6r1mzps6fP6+zZ8/Ky8tLpUqVko+PT9o3ttn0841nXuMmbHQOAK7H4ZAiI1ODqKio1GuenlLLlmYQ1batVLhw6rWU0/ektMFUyrkfCxearwMAAAByuyzb6FySChUqpMKFC6tq1aoZLhAAAFeRmCht2GAGS0uXSmfPpl7Ln18KCzNPzGvdWrrd19SICDN4GjQo7abnpUtLkyYRSAEAAAB/laGZUsgczJQCAOvEx0tr1phB1PLl0qVLqdcCAsyZUB07Sg8/LP1lMvDfcjikTZvMTc1LljSX7Lm5ZXb1AAAAgOvKsplSW7du1dGjR1WkSBGFhobK29v7rgoFACC7xMZKq1aZQdSqVdKVK6nXiheX2rc3g6jmzSUPj4z9HCl7TQEAAAD4e+kOpeLi4tS6dWttueHc6xIlSmjlypUKCgrKitoAALhr0dHmTKhFi6S1a6WEhNRrZcuaIVREhNSwITOaAAAAgOyU7lBqwoQJioyMVEREhB544AEdOXJE06ZNU8+ePdnQHADgUk6dMveGWrRI+v57c0ldiqpVU4Oo2rVTNyIHAAAAkL3SHUotXrxYERERWrhwoXOsWrVq6tevn44ePaoKFSpkSYEAAKTH779LS5aYQdQNk3olScHBZggVESEFBhJEAQAAAK4g3aHUsWPHNGjQoDRjrVq1kmEYOnHiBKEUACBbGYZ04IAZQi1eLP30U9rrjRqZIVSHDtK991pSIgAAAIC/ke5QKj4+Xr6+vmnGUj5OTEzM3KoAALgFw5B27UoNog4dSr2WssF4RIS5Yfk991hVJQAAAID0uKPT965cuaILFy44P075/7i4uDTjKQoVKnSX5QEA8jqHQ4qMNEOoxYulqKjUa56eUsuWZhAVHi4VKWJdnQAAAADujM0wDCM9N9rtdtlusQmHYRi3HJckx407y+ImsbGx8vf3V0xMjAoUKGB1OQDgMhITpQ0bzBBq6VLp7NnUa/nzS2FhZhAVFibx6RMAAABwLenNO9I9U2rMmDGZUhgAALcSHy+tWWMGUcuXS5cupV4LCJDatjWDqJYtJR8fq6oEAAAAkFnSPVMKmY+ZUgDyuthYadUqM4hatUq6ciX1WrFi5iblERFSixaSh4d1dQIAAABIv0yfKQUAQGaIjjZnQi1ebM6MSkhIvVa2rBlCdewoNWxobl4OAAAAIHdKVyj1xRdfZOjNe/TokaHXAQByl1OnzL2hFi2Svv/e3Lw8RZUqZgjVsaNUu7Z0m20KAQAAAOQy6Vq+Z7fbb37h//7W8NeX37jpORud/z2W7wHIzX7/XVqyxAyitmxJey0oKHVGVGAgQRQAAACQm2Tq8r2jR4+m+fjSpUvq2bOn/P39NXDgQFWtWlWSdPDgQU2dOlVxcXGaNWvWXZQPAMhpDEM6cMBclrdokfTTT2mvN2xohlAdOkj33mtJiQAAAABcSIY2Ou/Vq5dOnDihNWvWpJkZJUnJyclq2bKlypQpo88++yzTCs2NmCkFIKczDGnXLjOEWrxYOnQo9Zqbm9SsmRlEtW8v3XOPZWUCAAAAyEZZutH50qVLNX78+JsCKclc6hcREaHXXnstI28NAHBxDoe5HC8liIqKSr3m6Sm1bGkuzQsPl4oUsa5OAAAAAK4tQ6GUYRg6ePDgba/v37//pr2mAAA5V2KitGGDGUItXSqdPZt6LX9+KSzMDKLCwiQmfgIAAABIjwyFUu3bt9e0adNUvnx5Pffcc8qXL58k6erVq5o2bZqmT5+uJ554IlMLBQBkr/h4ac0aM4havly6dCn1WkCA1LatGUS1bCn5+FhVJQAAAICcKkN7SsXExKht27batGmTPDw8VLJkSUnS6dOnlZiYqMaNG+u///2vAgICMrveXIU9pQC4mrg4aeVKM4hatUq6ciX1WrFi5iblERFS8+bmUj0AAAAA+Kv05h0ZCqVSLFu2TF9//bWOHz8uSSpXrpzCwsIUHh5+y/2mkBahFABXEB1tzoRavNicGZWQkHqtbFkzhIqIkBo1MjcvBwAAAIC/k2UbncfHx2vkyJFq0aKF2rVrp3bt2t1VoQCA7HfqlLk31OLF0nffmZuXp6hSxTwxLyJCCgmR+DcGAAAAAFnhjkMpHx8fTZ8+XdWrV8+KegAAWeT336UlS8xT87ZsSXstKCh1RlT16gRRAAAAALJehjY6DwkJ0S+//JLZtQAAMpFhSAcOmLOhFi2Sfvop7fWGDVODqHvvtaREAAAAAHlYhkKpSZMmKSwsTPfff7+eeuopubtn6G0AAJnMMKRdu1KDqEOHUq+5uUnNmpkhVPv2UqlSlpUJAAAAABnb6LxmzZo6f/68zp49Ky8vL5UqVUo+fzkP3Gaz6eeff860QnMjNjoHkBkcDnM53qJFZhgVFZV6zdNTevhhM4hq21YqUsS6OgEAAADkDVm20bkkFSpUSIULF1bVqlUzXCAAIOMSE80NyhctMjcsP3s29Vq+fFJYmLlZeViYROYNAAAAwBVlKJT67rvvMrkMAMA/iY+X1qwxZ0MtXy5dupR6zd/fnAnVsaPUsqX0l8mrAAAAAOBy2AwKAFxYXJy0cqUZRK1aJV25knqtWDFzb6iOHaXmzc2legAAAACQU2Q4lHI4HJozZ45Wrlyp48ePS5LKlSunNm3a6IknnpCbm1umFQkAeUl0tDkTavFic2ZUQkLqtbJlU0/Ma9TI3LwcAAAAAHKiDG10HhMTo1atWmn79u3y8/PTvf87S/zo0aOKjY1VvXr1tHr1ajbv/gdsdA4gxalT5t5Qixebe0U5HKnXqlQxZ0NFREghIZLNZlWVAAAAAPDPsnSj85EjR2rnzp2aOnWq+vbtKw8PD0lSYmKiZs6cqRdeeEEjR47U1KlTM1Y9AOQBR4+aIdTixVJkZNprQUGpM6KqVyeIAgAAAJD7ZGimVKlSpdSpUydNnjz5ltdfeOEFLVy4UKdOnbrrAnMzZkoBeYthSAcOmCHUokXSTz+lvd6woRlCdeggVaxoSYkAAAAAcNeydKZUdHS0qlatetvr1apV04ULFzLy1gCQqxiGtGtXahB16FDqNbvd3KA8IsLcsLxUKauqBAAAAIDsl6FQqlKlSlq+fLn69+9/y+vLly9XRf6ZH0Ae5XBIW7akLs3731kQkswT8h5+2Ayi2raVihSxrk4AAAAAsFKGQqn+/ftrwIABCgsL0+DBg1WlShVJ0qFDhzRlyhStXbtW77//fqYWCgCuLDHR3KB80SJzw/KzZ1Ov5csnhYWZQdSjj0qs1gUAAACAuwilzp07pzfffFOrV69Oc83Dw0OjR49Wv379MqVAAHBV8fHS2rVmELV8uXTpUuo1f39zJlREhNSqleTjY1mZAAAAAOCSMrTReYrz589r7dq1ioqKkiSVK1dODz30kIqwHiVd2OgcyHni4qSVK81leatWSVeupF4rVszcGyoiQmrRwlyqBwAAAAB5TaZvdF6mTBmFhoaqcePGCg0NVa1atVSkSBF17do1UwoGAFcVHW3OhFq8WFqzRkpISL1WpowZQnXsKDVqJLm5WVcnAAAAAOQk6Q6lKlSooGXLlunLL7+UzWaTn5+fGjRooNDQUDVp0kT169eXt7d3VtYKANnm9GlpyRIziPruO3Pz8hSVK5shVMeOUkiIZLNZViYAAAAA5FjpDqU2btyoxMRE7dy5Uz/88IPzx5o1a2Sz2eTu7q7g4GCFhoY6f7CMD0BOcvRo6ol5W7ZINy5urlUrdUZU9eoEUQAAAABwt+5qTylJ+vXXX9OEVL/++qv5xjabkpKSMqXI3Io9pYDM53BImzaZM51KlpSaNPn7JXX796cGUbt3p73WoIEZQnXoIFWsmLV1AwAAAEBukel7St1OlSpVVKFCBVWtWlVVqlTR0qVL9eOPP97t2wLAHVu8WBo0SDpxInWsdGlp8mRzlpNkzn7atSs1iDp4MPVeu11q1swMotq3l0qVytbyAQAAACBPyVAodeHCBUVGRmrz5s364YcftHPnTl2/fl1ly5ZVo0aN9MQTT6hx48aZXSsA3NbixVKnTmmX3EnSyZPm+OuvmxuWL14sHT+eet3TU3r4YTO0attWYtUxAAAAAGSPdC/fmzVrln744Qdt3rxZBw8elIeHh4KDg9W4cWM1atRIjRo1UsmSJbO63lyF5XtA5nA4pPLl086Q+jv58klhYWYQFRYm+ftnaXkAAAAAkKdk+vK9Xr16ycPDQ507d9b06dNVr149eXl5ZUqxAHA3Nm1KXyD18MNS//5Sy5ZmMAUAAAAAsE66Q6nw8HBt2bJFc+fO1YoVK9SgQQM1btxYjRs3Vv369ZWPv+EBsMjp0+m7r1cvc68oAAAAAID10h1KLVu2TFLa0/bmzp2r0aNHy93dXTVq1HAu5WvcuLHKlCmTZUUDgGTuH7VunfTuu+m7nxXGAAAAAOA60r2n1O2cP39ekZGRioyMTLPpeenSpXX8xt2EcRP2lAIyJilJWrRImjDBPEnvn9hs5il8R49Kbm5ZXx8AAAAA5GWZvqfU7RQpUkShoaGy2WxKTk7W1atXtXv3bp1I747DAJBOV69Kn39uzoz6/XdzzMdH6tNHql7d3C9KSnsCn81m/nfSJAIpAAAAAHAlGQqlfv/9d23evNn549ChQ5IkwzBUoUIFde/eXaGhoZlaKIC8Kzpa+uADaepU6fx5c6xIEWngQDOIKlLEHCtWTBo0KO2m56VLm4FURES2lw0AAAAA+Bv29N44efJkPfbYY7rnnntUuXJlPfXUU/rss8/k4+OjAQMGaMGCBTp58qR+++03zZo1S3379s1QQR988IHKly8vb29v1a9fX9u2bfvb+ydNmqSqVavKx8dHZcqU0ZAhQ3Tt2rU7es9r167p+eefV+HCheXr66uOHTvq7NmzzusXLlxQeHi4fH19FRwcrN27d6d5/fPPP69307upDYB0O37cDJnKlpXGjDEDqfLlpfffN6+NHp0aSElm8HTsmLRhgzRvnvnfo0cJpAAAAADAFaV7Tym73a58+fKpfv36Cg0NVWhoqBo2bChfX99MK+bLL79Ujx499NFHH6l+/fqaNGmSvvrqKx06dEjFihW76f558+apd+/e+vTTT9WoUSP9+uuveuqpp9SlSxdNnDgx3e/Zr18/rVy5Up9//rn8/f01YMAA2e12/fDDD5KkoUOHaufOnfr44481bdo0bdq0STt27JAk/fjjjxowYIC2bt0qtztcG8SeUsCt7dlj7he1YIHkcJhjQUHSiBFSp06S+10vPAYAAAAAZJX05h3pDqW2b9+u2rVr33Hwcifq16+vunXr6v3335ckJScnq0yZMho4cKBefvnlm+4fMGCADhw4oHXr1jnHhg4dqq1bt2rz5s3pes+YmBgVLVpU8+bNU6dOnSRJBw8eVGBgoLZs2aIGDRooLCxMbdu21XPPPacDBw6oTp06unLlihITE1W3bl3NnDlTderUuePnJZQCUhmG9N13Zhj1zTep4w89JA0fbv43ZX8oAAAAAIDryvSNzuvWrZsphd1OQkKCdu7cqVdeecU5Zrfb9dBDD2nLli23fE2jRo00Z84cbdu2TfXq1dPvv/+uVatWqXv37ul+z507dyoxMVEPPfSQ855q1aqpbNmyzlCqVq1aWr9+vfr06aPVq1erZs2akqQJEyaoefPm6Q6krl+/ruvXrzs/jo2NlSQlJiYqMTHRWZ+bm5scDoeSk5PT1O3m5qakpCTdmCO6ubnJbrffdjzlfVO4/2+KSVJSUrrGPTw8lJycLEfKdBVJNptN7u7utx2/Xe08E890q9ptNnctWSJNmGBoxw77/35OQ489ZtPQockKCnL873U555ly4+8Tz8Qz8Uw8E8/EM/FMPBPPxDPxTDxTep8pvVxmEcz58+flcDhUvHjxNOPFixfXwYMHb/mabt266fz58woNDZVhGEpKStJzzz2nV199Nd3veebMGXl6eiogIOCme86cOSNJevnll9WvXz9VrFhR5cuX1yeffKLDhw9r1qxZ2rJli5577jmtWbNGderU0YwZM+Tv73/Let944w2NHTv2pvE1a9Yo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717Vr19f8+fP15IlS9SmTRv16NFD27Zts7o05BG//PKL6tSpo1WrVmnjxo3q1q2bevXqpbVr11pdGvKw/fv3q3jx4ho8eLAkgqm/shn8akDSvn371LBhQz3//PN644035HA4tHfvXl29elX+/v667777rC4RedSkSZO0fft2zZ07V0lJSZo5c6aOHTumcuXK6cEHH1SVKlWsLhG52O7du9WsWTO98MILGjdunIYPH67PP/9chw8flr+/vwzDkM1ms7pM5DGXLl1S69at1aJFC/3f//2fJGnMmDG6fPmy3nrrLbm7u1tcIfKi6OhoPfjgg2rTpo3GjRsnSfr666/Vpk0bPfrooxoyZIhatGhhcZXIzeLj49WpUyfde++9mjp1qiRp27Zt6t+/vwoVKqTnn39e7dq1s7hK5DWnTp1Shw4dlJSUpEOHDqlv37567733JInvI/+HmVLQ9evX1b17d/n6+mrQoEGSpE6dOql3794KDw9X/fr19fbbb1tcJfKqPXv2yMvLS5L0wAMP6NNPP9WOHTv06quvavDgwSwNQJY5d+6cGjdurGeffdb5F6yBAweqUKFCzr2l+EYCVoiPj1d8fLyaNm3qHPvjjz+0bds21a9fX/369eNzI7LdpUuX5O7urm7duskwDCUkJCgoKEiBgYHavn273n//fV28eNHqMpGL+fj46OLFiypWrJgkc0ZzvXr1NGvWLF2/fl3Tp09nf1JkK8MwtGHDBpUrV05Tp07VjBkzNG3aNL344ouSmDGVglAK8vLy0sSJE1WgQAENGTJEISEhunr1qqZMmaLVq1frjTfe0IgRI/TRRx9ZXSrykJRP0GXKlJGHh4eWLl0qb29vrVy5Ut9++622bdumuLg4ffrppxZXitzKw8ND33zzTZpQvnjx4goODtaaNWucY3wzgeyWkJCgw4cP64cfftCePXs0btw4LViwQA8//LCeeuop7dy5Ux988IHOnDljdanIQ+Li4rRr1y6dOXNGNptNnp6eunr1qsqUKaN3331XS5Ys0cKFC60uE7mUYRi6fPmyPD09de7cOUlmKOVwOHTffffp/fff188//6xZs2ZZXCnyEpvNpqZNm+rJJ59Uo0aN1LVrV3366af68MMPNWTIEOc9ef57SQN5WnJysvP/N2zYYJQoUcJo1qyZcerUqTT3DR061KhRo4YRHR2d5jVA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0fr169WmTRu1bdtWBw4ckI+Pj4UVAgAApB8zpQAAAHKwBx54QKNGjdLx48c1Z84cSdKePXv01FNP6d5775W3t7dKlCih3r17Kzo62vm6f/3rXxo2bJgkqUKFCs6lgceOHXPeM2fOHIWEhMjHx0eFChVSly5d9Mcff2Tr8wEAgNyLUAoAACCH6969uyRpzZo1kqS1a9fq999/V69evTR16lR16dJFCxYsUFhYmAzDkCRFRESoa9eukqT33ntPs2fP1uzZs1W0aFFJ0vjx49WjRw9VrlxZEydO1ODBg7Vu3To1bdqU5X4AACBTsHwPAAAghytdurT8/f3122+/SZL69++voUOHprmnQYMG6tq1qzZv3qwmTZqoZs2aql27tubPn6/27durfPnyznuPHz+uMWPGaNy4cXr11Ved4xEREQoODtaHH36YZhwAACAjmCkFAACQC/j6+jpP4btxX6lr167p/PnzatCggSRp165d//heixcvVnJysjp37qzz5887f5QoUUKVK1fWhg0bsuYhAABAnsJMKQAAgFzg8uXLKlasmCTpwoULGjt2rBYsWKBz586luS8mJuYf3+vw4cMyDEOVK1e+5XUPD4+7LxgAAOR5hFIAAAA53IkTJxQTE6NKlSpJkjp37qzIyEgNGzZMQUFB8vX1VXJysh555BElJyf/4/slJyfLZrPp66+/lpub203XfX19M/0ZAABA3kMoBQAAkMPNnj1bktSqVStdvHhR69at09ixYzV69GjnPYcPH77pdTab7ZbvV7FiRRmGoQoVKqhKlSpZUzQAAMjz2FMKAAAgB1u/fr1ef/11VahQQU888YRzZlPKKXspJk2adNNr8+fPL0k3naYXEREhNzc3jR079qb3MQxD0dHRmfcAAAAgz2KmFAAAQA7x9ddf6+DBg0pKStLZs2e1fv16rV27VuXKldPy5cvl7e0tb29vNW3aVBMmTFBiYqJKlSqlNWvW6OjRoze9X0hIiCRp5MiR6tKlizw8PBQeHq6KFStq3LhxeuWVV3Ts2DG1b99efn5+Onr0qJYsWaJnnnlGL730UnY/PgAAyGUIpQAAAHKIlOV4np6eKlSokGrUqKFJkyapV69e8vPzc943b948DRw4UB988IEMw1DLli319ddf65577knzfnXr1tXrr7+ujz76SN98842Sk5N19OhR5c+fXy+//LKqVKmi9957T2PHjpUklSlTRi1btlTbtm2z76EBAECuZTP+OicbAAAAAAAAyGLsKQUAAAAAAIBsRygFAAAAAACAbEcoBQAAAAAAgGxHKAUAAAAAAIBsRygFAAAAAACAbEcoBQAAAAAAgGxHKAUAAAAAAIBsRygFAAAAAACAbEcoBQAAAAAAgGxHKAUAAAAAAIBsRygFAAAAAACAbEcoBQAAAAAAgGxHKAUAAAAAAIBs9/8AALGR//ZXjgAAAABJRU5ErkJggg==\n"
},
"metadata": {}
}
]
},
{
"cell_type": "markdown",
"source": [
"## Block themes\n",
"\n",
"Note: see [this colab](https://gist.github.com/adamsilverstein/b18e6c44880f262f7e3b1f175021ee15) for block theme research."
],
"metadata": {
"id": "rVVMvDvp2oE3"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"block_iapi_sites = client.query('''\n",
"WITH sites_by_block_theme_inteactivity_api AS (\n",
" SELECT\n",
" page,\n",
" JSON_QUERY(custom_metrics, '$.cms.wordpress.block_theme') as block_theme,\n",
" JSON_EXTRACT(custom_metrics, '$.cms.wordpress.uses_interactivity_api') AS uses_interactivity_api\n",
" FROM\n",
" `httparchive.all.pages`,\n",
" UNNEST(technologies) as technologies\n",
" WHERE\n",
" date = PARSE_DATE('%%Y_%%m_%%d','%s') AND\n",
" technologies.technology = \"WordPress\" AND\n",
" is_root_page = TRUE\n",
")\n",
"\n",
"SELECT\n",
" COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) AS has_block_theme,\n",
" COUNT( DISTINCT( IF( uses_interactivity_api = 'true', page, null ))) AS uses_interactivity_api,\n",
" COUNT( DISTINCT IF( uses_interactivity_api = 'true', page, null ) ) / COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) pct_block_theme_sites_using_interactivity_api\n",
"FROM sites_by_block_theme_inteactivity_api\n",
"''' % dataset).to_dataframe()\n"
],
"metadata": {
"id": "BrOIIaeRxfFf"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"block_iapi_sites.head(1000)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 143
},
"id": "OEa25jeVyLL1",
"outputId": "1c51ade5-2c83-4239-b791-7ce454ec4678"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" has_block_theme uses_interactivity_api \\\n",
"0 114680 58379 \n",
"\n",
" pct_block_theme_sites_using_interactivity_api \n",
"0 0.50906 "
],
"text/html": [
"\n",
" <div id=\"df-0e44d1ab-6bf6-4696-b252-1dca935e9712\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>has_block_theme</th>\n",
" <th>uses_interactivity_api</th>\n",
" <th>pct_block_theme_sites_using_interactivity_api</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>114680</td>\n",
" <td>58379</td>\n",
" <td>0.50906</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-0e44d1ab-6bf6-4696-b252-1dca935e9712')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-0e44d1ab-6bf6-4696-b252-1dca935e9712 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-0e44d1ab-6bf6-4696-b252-1dca935e9712');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "block_iapi_sites",
"summary": "{\n \"name\": \"block_iapi_sites\",\n \"rows\": 1,\n \"fields\": [\n {\n \"column\": \"has_block_theme\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 1,\n \"samples\": [\n 114680\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 1,\n \"samples\": [\n 58379\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_block_theme_sites_using_interactivity_api\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": null,\n \"min\": 0.509059993024067,\n \"max\": 0.509059993024067,\n \"num_unique_values\": 1,\n \"samples\": [\n 0.509059993024067\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 114680,\n 'f': \"114680\",\n },\n{\n 'v': 58379,\n 'f': \"58379\",\n },\n{\n 'v': 0.509059993024067,\n 'f': \"0.509059993024067\",\n }]],\n columns: [[\"number\", \"index\"], [\"number\", \"has_block_theme\"], [\"number\", \"uses_interactivity_api\"], [\"number\", \"pct_block_theme_sites_using_interactivity_api\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-c91743e4-5f8b-4fd5-8c75-4ce0727dfa41\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-c91743e4-5f8b-4fd5-8c75-4ce0727dfa41')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-c91743e4-5f8b-4fd5-8c75-4ce0727dfa41 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 10
}
]
},
{
"cell_type": "markdown",
"source": [
"## Block Themes Mobile only"
],
"metadata": {
"id": "zVfWF5AD901g"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"block_iapi_sites_mobile = client.query('''\n",
"WITH sites_by_block_theme_inteactivity_api AS (\n",
" SELECT\n",
" page,\n",
" JSON_QUERY(custom_metrics, '$.cms.wordpress.block_theme') as block_theme,\n",
" JSON_EXTRACT(custom_metrics, '$.cms.wordpress.uses_interactivity_api') AS uses_interactivity_api\n",
" FROM\n",
" `httparchive.all.pages`,\n",
" UNNEST(technologies) as technologies\n",
" WHERE\n",
" date = PARSE_DATE('%%Y_%%m_%%d','%s') AND\n",
" technologies.technology = \"WordPress\" AND\n",
" is_root_page = TRUE AND\n",
" client = \"mobile\"\n",
")\n",
"\n",
"SELECT\n",
" COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) AS has_block_theme,\n",
" COUNT( DISTINCT( IF( uses_interactivity_api = 'true', page, null ))) AS uses_interactivity_api,\n",
" COUNT( DISTINCT IF( uses_interactivity_api = 'true', page, null ) ) / COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) pct_block_theme_sites_using_interactivity_api\n",
"FROM sites_by_block_theme_inteactivity_api\n",
"''' % dataset).to_dataframe()\n"
],
"metadata": {
"id": "fULIlhH7AIDO"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"block_iapi_sites_mobile.head(1000)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 143
},
"id": "KxkSlg3qA3-P",
"outputId": "b162fba2-c4a4-4102-befe-7df47d7fd399"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" has_block_theme uses_interactivity_api \\\n",
"0 110662 55888 \n",
"\n",
" pct_block_theme_sites_using_interactivity_api \n",
"0 0.505033 "
],
"text/html": [
"\n",
" <div id=\"df-7c5b358f-fa4a-4b1b-afd2-92c50c14b178\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>has_block_theme</th>\n",
" <th>uses_interactivity_api</th>\n",
" <th>pct_block_theme_sites_using_interactivity_api</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>110662</td>\n",
" <td>55888</td>\n",
" <td>0.505033</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7c5b358f-fa4a-4b1b-afd2-92c50c14b178')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-7c5b358f-fa4a-4b1b-afd2-92c50c14b178 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-7c5b358f-fa4a-4b1b-afd2-92c50c14b178');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "block_iapi_sites_mobile",
"summary": "{\n \"name\": \"block_iapi_sites_mobile\",\n \"rows\": 1,\n \"fields\": [\n {\n \"column\": \"has_block_theme\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 1,\n \"samples\": [\n 110662\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 1,\n \"samples\": [\n 55888\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_block_theme_sites_using_interactivity_api\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": null,\n \"min\": 0.5050333447795992,\n \"max\": 0.5050333447795992,\n \"num_unique_values\": 1,\n \"samples\": [\n 0.5050333447795992\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 110662,\n 'f': \"110662\",\n },\n{\n 'v': 55888,\n 'f': \"55888\",\n },\n{\n 'v': 0.5050333447795992,\n 'f': \"0.5050333447795992\",\n }]],\n columns: [[\"number\", \"index\"], [\"number\", \"has_block_theme\"], [\"number\", \"uses_interactivity_api\"], [\"number\", \"pct_block_theme_sites_using_interactivity_api\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-c5f2109e-5086-4d3a-931a-890c954c61c9\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-c5f2109e-5086-4d3a-931a-890c954c61c9')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-c5f2109e-5086-4d3a-931a-890c954c61c9 button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 12
}
]
},
{
"cell_type": "markdown",
"source": [
"## Adoption in block themes over time"
],
"metadata": {
"id": "mZOYBKW3BEjb"
}
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"block_iapi_sites_over_time = client.query('''\n",
"WITH sites_by_block_theme_inteactivity_api AS (\n",
" SELECT\n",
" date,\n",
" page,\n",
" JSON_QUERY(custom_metrics, '$.cms.wordpress.block_theme') as block_theme,\n",
" JSON_EXTRACT(custom_metrics, '$.cms.wordpress.uses_interactivity_api') AS uses_interactivity_api\n",
" FROM\n",
" `httparchive.all.pages`,\n",
" UNNEST(technologies) as technologies\n",
" WHERE\n",
" date >= PARSE_DATE('%%Y_%%m_%%d','%s') AND\n",
" technologies.technology = \"WordPress\" AND\n",
" is_root_page = TRUE\n",
")\n",
"\n",
"SELECT\n",
" date,\n",
" COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) AS has_block_theme,\n",
" COUNT( DISTINCT( IF( uses_interactivity_api = 'true', page, null ))) AS uses_interactivity_api,\n",
" COUNT( DISTINCT IF( uses_interactivity_api = 'true', page, null ) ) / COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) pct_block_theme_sites_using_interactivity_api\n",
"FROM sites_by_block_theme_inteactivity_api\n",
"GROUP BY DATE\n",
"ORDER BY DATE ASC\n",
"''' % \"2024_04_01\").to_dataframe()\n"
],
"metadata": {
"id": "IeWe4d6pBDxb"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"block_iapi_sites_over_time.head(1000)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 294
},
"id": "puzqjAT0BkOx",
"outputId": "6e5c1a44-a3b4-4ca1-81aa-f83c02337c6b"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" date has_block_theme uses_interactivity_api \\\n",
"0 2024-04-01 87979 42660 \n",
"1 2024-05-01 91733 45339 \n",
"2 2024-06-01 95058 47442 \n",
"3 2024-07-01 97118 48424 \n",
"4 2024-08-01 98651 48603 \n",
"5 2024-09-01 105238 52791 \n",
"6 2024-10-01 112335 57402 \n",
"7 2024-11-01 114680 58379 \n",
"\n",
" pct_block_theme_sites_using_interactivity_api \n",
"0 0.484888 \n",
"1 0.494250 \n",
"2 0.499085 \n",
"3 0.498610 \n",
"4 0.492676 \n",
"5 0.501634 \n",
"6 0.510989 \n",
"7 0.509060 "
],
"text/html": [
"\n",
" <div id=\"df-0a6ad33f-bec8-4956-8619-7d508350bf0d\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>date</th>\n",
" <th>has_block_theme</th>\n",
" <th>uses_interactivity_api</th>\n",
" <th>pct_block_theme_sites_using_interactivity_api</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2024-04-01</td>\n",
" <td>87979</td>\n",
" <td>42660</td>\n",
" <td>0.484888</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2024-05-01</td>\n",
" <td>91733</td>\n",
" <td>45339</td>\n",
" <td>0.494250</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2024-06-01</td>\n",
" <td>95058</td>\n",
" <td>47442</td>\n",
" <td>0.499085</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2024-07-01</td>\n",
" <td>97118</td>\n",
" <td>48424</td>\n",
" <td>0.498610</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2024-08-01</td>\n",
" <td>98651</td>\n",
" <td>48603</td>\n",
" <td>0.492676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2024-09-01</td>\n",
" <td>105238</td>\n",
" <td>52791</td>\n",
" <td>0.501634</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2024-10-01</td>\n",
" <td>112335</td>\n",
" <td>57402</td>\n",
" <td>0.510989</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2024-11-01</td>\n",
" <td>114680</td>\n",
" <td>58379</td>\n",
" <td>0.509060</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-0a6ad33f-bec8-4956-8619-7d508350bf0d')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-0a6ad33f-bec8-4956-8619-7d508350bf0d button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-0a6ad33f-bec8-4956-8619-7d508350bf0d');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-0367db6a-6a7b-4917-ae8f-03f4b5d13275\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-0367db6a-6a7b-4917-ae8f-03f4b5d13275')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-0367db6a-6a7b-4917-ae8f-03f4b5d13275 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "block_iapi_sites_over_time",
"summary": "{\n \"name\": \"block_iapi_sites_over_time\",\n \"rows\": 8,\n \"fields\": [\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"dbdate\",\n \"num_unique_values\": 8,\n \"samples\": [\n \"2024-05-01\",\n \"2024-09-01\",\n \"2024-04-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"has_block_theme\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 8,\n \"samples\": [\n 91733,\n 105238,\n 87979\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"uses_interactivity_api\",\n \"properties\": {\n \"dtype\": \"Int64\",\n \"num_unique_values\": 8,\n \"samples\": [\n 45339,\n 52791,\n 42660\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"pct_block_theme_sites_using_interactivity_api\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.008566221194582916,\n \"min\": 0.48488843928664793,\n \"max\": 0.5109894511950861,\n \"num_unique_values\": 8,\n \"samples\": [\n 0.49424961573261533,\n 0.501634390619358,\n 0.48488843928664793\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
},
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2024-04-01\",\n{\n 'v': 87979,\n 'f': \"87979\",\n },\n{\n 'v': 42660,\n 'f': \"42660\",\n },\n{\n 'v': 0.48488843928664793,\n 'f': \"0.48488843928664793\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2024-05-01\",\n{\n 'v': 91733,\n 'f': \"91733\",\n },\n{\n 'v': 45339,\n 'f': \"45339\",\n },\n{\n 'v': 0.49424961573261533,\n 'f': \"0.49424961573261533\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2024-06-01\",\n{\n 'v': 95058,\n 'f': \"95058\",\n },\n{\n 'v': 47442,\n 'f': \"47442\",\n },\n{\n 'v': 0.4990847692987439,\n 'f': \"0.4990847692987439\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2024-07-01\",\n{\n 'v': 97118,\n 'f': \"97118\",\n },\n{\n 'v': 48424,\n 'f': \"48424\",\n },\n{\n 'v': 0.4986099384254206,\n 'f': \"0.4986099384254206\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2024-08-01\",\n{\n 'v': 98651,\n 'f': \"98651\",\n },\n{\n 'v': 48603,\n 'f': \"48603\",\n },\n{\n 'v': 0.4926762019645011,\n 'f': \"0.4926762019645011\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2024-09-01\",\n{\n 'v': 105238,\n 'f': \"105238\",\n },\n{\n 'v': 52791,\n 'f': \"52791\",\n },\n{\n 'v': 0.501634390619358,\n 'f': \"0.501634390619358\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2024-10-01\",\n{\n 'v': 112335,\n 'f': \"112335\",\n },\n{\n 'v': 57402,\n 'f': \"57402\",\n },\n{\n 'v': 0.5109894511950861,\n 'f': \"0.5109894511950861\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2024-11-01\",\n{\n 'v': 114680,\n 'f': \"114680\",\n },\n{\n 'v': 58379,\n 'f': \"58379\",\n },\n{\n 'v': 0.509059993024067,\n 'f': \"0.509059993024067\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"date\"], [\"number\", \"has_block_theme\"], [\"number\", \"uses_interactivity_api\"], [\"number\", \"pct_block_theme_sites_using_interactivity_api\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n<div id=\"df-b8b2d501-3946-4226-8053-9dfb16cf37cc\">\n <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-b8b2d501-3946-4226-8053-9dfb16cf37cc')\"\n title=\"Suggest charts\"\n style=\"display:none;\">\n \n<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n width=\"24px\">\n <g>\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n </g>\n</svg>\n </button>\n \n<style>\n .colab-df-quickchart {\n --bg-color: #E8F0FE;\n --fill-color: #1967D2;\n --hover-bg-color: #E2EBFA;\n --hover-fill-color: #174EA6;\n --disabled-fill-color: #AAA;\n --disabled-bg-color: #DDD;\n }\n\n [theme=dark] .colab-df-quickchart {\n --bg-color: #3B4455;\n --fill-color: #D2E3FC;\n --hover-bg-color: #434B5C;\n --hover-fill-color: #FFFFFF;\n --disabled-bg-color: #3B4455;\n --disabled-fill-color: #666;\n }\n\n .colab-df-quickchart {\n background-color: var(--bg-color);\n border: none;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n fill: var(--fill-color);\n height: 32px;\n padding: 0;\n width: 32px;\n }\n\n .colab-df-quickchart:hover {\n background-color: var(--hover-bg-color);\n box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n fill: var(--button-hover-fill-color);\n }\n\n .colab-df-quickchart-complete:disabled,\n .colab-df-quickchart-complete:disabled:hover {\n background-color: var(--disabled-bg-color);\n fill: var(--disabled-fill-color);\n box-shadow: none;\n }\n\n .colab-df-spinner {\n border: 2px solid var(--fill-color);\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n animation:\n spin 1s steps(1) infinite;\n }\n\n @keyframes spin {\n 0% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n border-left-color: var(--fill-color);\n }\n 20% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 30% {\n border-color: transparent;\n border-left-color: var(--fill-color);\n border-top-color: var(--fill-color);\n border-right-color: var(--fill-color);\n }\n 40% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-top-color: var(--fill-color);\n }\n 60% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n }\n 80% {\n border-color: transparent;\n border-right-color: var(--fill-color);\n border-bottom-color: var(--fill-color);\n }\n 90% {\n border-color: transparent;\n border-bottom-color: var(--fill-color);\n }\n }\n</style>\n\n <script>\n async function quickchart(key) {\n const quickchartButtonEl =\n document.querySelector('#' + key + ' button');\n quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n quickchartButtonEl.classList.add('colab-df-spinner');\n try {\n const charts = await google.colab.kernel.invokeFunction(\n 'suggestCharts', [key], {});\n } catch (error) {\n console.error('Error during call to suggestCharts:', error);\n }\n quickchartButtonEl.classList.remove('colab-df-spinner');\n quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n }\n (() => {\n let quickchartButtonEl =\n document.querySelector('#df-b8b2d501-3946-4226-8053-9dfb16cf37cc button');\n quickchartButtonEl.style.display =\n google.colab.kernel.accessAllowed ? 'block' : 'none';\n })();\n </script>\n</div>`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
},
"metadata": {},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"source": [
"# Plot block_iapi_sites_over_time\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# Plotting\n",
"plt.figure(figsize=(12, 6)) # Adjust figure size for better readability\n",
"plt.plot(block_iapi_sites_over_time['date'], block_iapi_sites_over_time['pct_block_theme_sites_using_interactivity_api'], marker='o', linestyle='-', color='blue', label='Block Theme Sites')\n",
"\n",
"# Formatting\n",
"plt.xlabel('Date', fontsize=12)\n",
"plt.ylabel('% of Block Theme Sites Using Interactivity API', fontsize=12)\n",
"plt.title('Adoption of Interactivity API in Block Themes Over Time', fontsize=14)\n",
"plt.legend(fontsize=12) # Show legend\n",
"plt.grid(axis='y', linestyle='--') # Add grid\n",
"plt.xticks(rotation=45, ha=\"right\") # Rotate x-axis ticks for better readability\n",
"\n",
"# Format Y numbers as percents, with 3 decimal points of precision\n",
"plt.gca().yaxis.set_major_formatter(plt.FuncFormatter(lambda y, _: '{:.3%}'.format(y)))\n",
"\n",
"# Show the plot\n",
"plt.tight_layout()\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 607
},
"id": "6TgxRmtvBmfj",
"outputId": "582ccd46-6f8b-4b74-ce0d-c1242fabf55b"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADot0lEQVR4nOzdd3RUVdfH8e+kkEYKhARCC4jSpTxIrwEkVKlSBQRsqAiIIopSHguCioI+KkoJRZAiXaRKU4qiFKnSW2ihJEAg9b5/3DcDQwrDEBgSfp+1ZjFzbttnSsjsnLOPxTAMAxERERERERERkfvIxdkBiIiIiIiIiIjIw0dJKRERERERERERue+UlBIRERERERERkftOSSkREREREREREbnvlJQSEREREREREZH7TkkpERERERERERG575SUEhERERERERGR+05JKRERERERERERue+UlBIRERERERERkftOSSkREbFx5MgRLBYLzz77rLNDsVGvXj0sFouzw7gry5cvp2bNmuTKlQuLxUKrVq2cHVK28uyzz2KxWDhy5IhTz5GdFClShCJFijg7DBvDhg3DYrGwZs2a+3K9iIgILBYLERER9+V6KR7E514eHPpZJSLZhZJSIiLZTM+ePbFYLAQGBhIXF+fscOx2v79o3m9HjhyhZcuWHDp0iB49ejB06FA6duyY4TEpz8mPP/54V9fODgk9cF5yYM2aNVgsFoYNG3bfrrlu3TosFgsWi4XZs2enu1/Kc3LzzcvLi5IlS/L6668TFRVls3/Ke+H06dP3ugt2KVKkSKr4PTw8KFq0KC+88EK2+MKdkjyw93a/399Z3bx583jqqacICQkhR44cBAUF0bBhQyZOnEhSUpKzw7NLWp+DjG7Z4XMhIpLCzdkBiIhI5rl8+TKzZs3CYrFw4cIF5s+fT4cOHZwdVqaYMmUKsbGxzg7DYStXruT69et89tlndO7c2dnhZEsjRoxg0KBBFChQwKnnyAwTJkwAwGKxMHHiRJ5++ukM92/QoAG1atUC4Ny5cyxbtozPP/+cuXPn8tdffxEYGOhQHKtWrXLouDvh6urKu+++a3186dIlNm/ezPfff8/cuXP5+++/KVy48D2P415p1apVqhFPa9asYe3atbRs2ZIKFSrYbLv1saTt6tWrdO7cmYULF5IrVy6aNWtGoUKFOHfuHEuWLKFX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mC+kn5+fk6MREREREREREclYTEwMhQoVsuY00qOk1AMuZcqen5+fklIiIiIiIiIikmXcrgyRCp2LiIiIiIiIiMh9p6SUiIiIiIiIiIjcd0pKiYiIiIiIiIjIfaeklIiIiIiIiIiI3HdKSomIiIiIiIiIyH2n1feykaSkJBISEpwdhkiW5ebmhqur621XiBAREREREZG7p6RUNmAYBqdPn+bSpUvODkUky3N1dSU4OBh/f38lp0RERERERO4hJaWygZSEVHBwMN7e3voiLeIAwzBITEwkJiaGU6dOce3aNUJCQpwdloiIiIiISLalpFQWl5SUZE1IBQYGOjsckSzP19cXDw8PoqKiCA4OxtXV1dkhiYiIiIiIZEsqdJ7FpdSQ8vb2dnIkItmHj48PhmGoRpuIiIiIiMg9pKRUNqEpeyKZR58nERERERGRe09JKRERERERERERue+UlJJsw2KxMGzYsHty7jVr1mCxWJgzZ849OX8Ki8XCq6++ek+v8aAqUqQIzz77rLPDEBERERERkftESSl5YEVERGCxWGxuwcHBhIWF8csvvzg7PLvUq1cvVR/Sut2rZNqD4J9//qFdu3aEhobi6elJgQIFePLJJ/nyyy8zPG737t0MGzaMI0eO3J9ARUREREQyWVISrFkDM2aY/yYlOTsikQeLVt+TB95///tfihYtimEYnDlzhoiICJo2bcqiRYto3ry5s8PL0ODBg3nuueesj//880/Gjh3LO++8Q6lSpazt5cqVc0Z499yGDRsICwujcOHCPP/88+TLl4/jx4+zadMmxowZQ58+faz77tu3DxeXG3ny3bt3M3z4cOrVq0eRIkWcEL2IiIiIiOPmzoW+feHEiRttBQvCmDHQpo3z4hJ5kCgpJQ+8Jk2a8MQTT1gf9+rVi7x58zJjxowHPin15JNP2jz29PRk7NixPPnkk9SrV885Qd1HH374If7+/vz5558EBATYbDt79qzNYw8Pj/sYmYiIiIjIvTN3LrRrB4Zh237ypNk+Z44SUyKg6XuSjgd5mGlAQABeXl64ud0+p7p161aaNGmCn58fOXPmpEGDBmzatCnVfpcuXaJ///4UKVIEDw8PChYsSLdu3YiKikr33HFxcTRv3hx/f382bNhwV3261fz58ylbtiweHh6UKVOGpUuXptrn5MmT9OzZk7x581r3mzhxos0+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3N/bGypXtk1U5c17X7smck8oKZVNeXubo5PuxLp10LTp7fdbsgTq1LnzeDJTyvSyK+l0MigoCG9vb/bt25dq2969e3FxcbGOEipWrBg7d+6067qtWrWiUaNGPPvss/j6+vLNN9842APHBQUF4evrS1JSEg0bNryn1ypWrBiGYVC0aFGKFy+eaedNGfl26tSpdPe5derkzTGBuXqfPf0vVqwYAwYMYMCAAezfv58KFSrw2WefMW3aNAciFxERERFJW3IydO8OK1eas0SGDIEvv0y9gNQXX9xYQMrNzRwxVbEi9O5ttp0/D5s330hSbd5sllBZu9a8pShSxExOpSSqKlSANCaRiDzQVFMqm7JYzB+Ed3Jr1Mj8IZlOLgCLBQoVMve703Ond05HJCQksHz5cnLkyGFdje1Wrq6uNGrUiAULFnDkyBFr+5kzZ5g+fTq1atWyTvNq27atdVrZrYw0imF169aNsWPH8u233/LWW29lTqfugKurK23btuWnn35KM5l27ty5TLtWmzZtcHV1Zfjw4ameC8MwOH/+fIbHr169Os3ncMmSJQBpTq9M4fP/8z0vXbpk0x4eHo6fnx8fffQRCWmMiU7pf2xsLNevX7fZVqxYMXx9fYmLi8swbhERERGRO2EY0L8//PijOXVv7lwYOBCOHIHVq2H6dPPfw4dvv6J5YKA5WOC//zWn9F28CLt2wfjx8Nxz5lQ+i8U8948/mnV/q1YFPz+oUQMGDIDZs80V/u6mtq/I/aCRUmLl6gpjxkC7dukPM/3iC3O/++mXX35h7969gFkrafr06ezfv59BgwZZE0tp+eCDD1ixYgW1atXi5Zdfxs3NjXHjxhEXF8eoUaOs+7355pvMmTOHp59+mp49e1KpUiUuXLjAwoUL+fbbbylfvnyqc7/66qvExMQwePBg/P39eeeddzK/4xn4+OOPWb16NVWrVuX555+ndOnSXLhwgb///puVK1dyIZOqIxYrVowPPviAt99+myNHjtCqVSt8fX05fPgw8+bN44UXXuCNN95I9/g+ffoQGxtL69atKVmyJPHx8WzYsIGZM2dSpEgRevToke6xFSpUwNXVlZEjRxIdHY2Hhwf169cnODiYb775hq5du/Kf//yHjh07EhQUxLFjx/j555+pWbMmX331Ff/++y8NGjSgffv2lC5dGjc3N+bNm8eZM2fo2LFjpjw/IiIiIiIAI0bA2LHm/cmTzT/kg/ndqV69uzu3iwuULm3eevUy22Ji4I8/bKf9nT8PGzeatxT589uOpqpUCby87i4ekcykpJTYaNMG5swxs+0ZDTO9n4YMGWK97+npScmSJfnmm2948cUXMzyuTJkyrF+/nrfffpsRI0aQnJxM1apVmTZtGlWrVrXulzNnTtavX8/QoUOZN28ekydPJjg4mAYNGlCwYMF0z//OO+8QHR1tTUy98sord99ZO+XNm5c//viD//73v8ydO5evv/6awMBAypQpw8iRIzP1WoMGDaJ48eJ8/vnnDB8+HDALpDdq1Iinnnoqw2M//fRTZs+ezZIlS/juu++Ij4+ncOHCvPzyy7z77rsEBASke2y+fPn49ttvGTFiBL169SIpKYnVq1cTHBxM586dyZ8/Px9//DGffPIJcXFxFChQgNq1a1sTXYUKFaJTp06sWrWKqVOn4ubmRsmSJZk1a5bdhe1FRERERG5n/HgYPNi8P2YMdOp076/p5wcNG5o3MAcUHDxoJqRSklTbt0NkpDlqK2Xhcjc3KF/etjbVI49k7swWkTthMdKaWyMPjJiYGPz9/YmOjk5zVND169c5fPgwRYsWxdPTM9Oum5QE69fDqVPmkqa1a9//EVIiznKvPlciIiIikr0sWGD+4T45Gd5+Gz76yNkR3RAba67ul5Kk2rgRTp9OvV+ePLajqSpXNlcHFLkbt8tlpNBIKUlTZgwzFRERERERya7Wr4eOHc2EVK9e8OGHzo7Ilre3uUBVyiJVhmHWmbp5NNXff0NUFCxebN7AHDVVtqxtoqpECXMaoUhmU1JKRERERERE5A788w+0aAHXr8NTT8G33z74U+AsFihc2Lx16GC2xcXBtm22iaqjR83+/fMPfP+9uZ+/v1lMPSVRVaUK5M7ttK5INqKklIiIiIiIiIidjhyB8HCIjoZatcwV8Nyy6DdrDw8z2XRTyV1OnbItoP7nn2Zfly83bylKlLAdTVWmTNZ9HsR5HqgBeMOGDcNisdjcSpYsad3+3XffUa9ePfz8/LBYLKmWik/P//73P4oUKYKnpydVq1bljz/+sNl+/fp1XnnlFQIDA8mZMydt27blzJkzNvscO3aMZs2a4e3tTXBwMG+++SaJiYnW7Vu3bqVixYrkzJmTFi1a2Kx+lpiYSKVKlVJdV0RERERERLKOc+fMhNSpU+YUt4ULs99qdiEh0Lo1jBwJa9eaCam//4b//Q+6doXHHjP327fPXGnwpZegQgUICICwMLO21sKFcMtXapE0PVBJKTBXTDt16pT19ttvv1m3xcbG0rhxY9555x27zzdz5kxef/11hg4dyt9//0358uUJDw/n7Nmz1n369+/PokWLmD17NmvXriUyMpI2Ny0zl5SURLNmzazL2U+ePJmIiAibVeGee+456tevz99//010dDQf3VTh7rPPPqNmzZpUqVLF0adFREREREREnOjKFWjaFP79F0JDYdkyyJXL2VHde+7uULEivPwyTJli9v/cOfj5Z3j3XXMFQF9fuHoV1qyBjz+Gli0hXz5zZb/OnWHsWHPEVXy8s3sjD5oHavW9YcOGMX/+fLZt25bhfmvWrCEsLIyLFy9muKQ8QNWqValcuTJfffUVAMnJyRQqVIg+ffowaNAgoqOjCQoKYvr06bRr1w6AvXv3UqpUKTZu3Ei1atX45ZdfaN68OZGRkeTNmxeAb7/9lrfeeotz586RI0cOvL29+fvvvylZsiTffPMNixcv5ueff+bQoUM0btyYv/76C18HljBw1up7Ig8zfa5ERERE5Gbx8dC8OaxYYa5W99tv5vQ1MSUlwd69trWpdu82i6vfzMMDKlWynfZXsKBzYpZ7K8uuvrd//37y58+Pp6cn1atXZ8SIERQuXNihc8XHx/PXX3/x9ttvW9tcXFxo2LAhGzduBOCvv/4iISGBhg0bWvcpWbIkhQsXtialNm7cyOOPP25NSAGEh4fTu3dvdu3aRcWKFSlfvjwrVqzg0UcfZdWqVZQrVw6Al156iVGjRtmdkIqLiyMuLs76OCYmBoCEhAQSEhKsfXB1dSUpKYmEhAQMwyA5ORnDMLBYLBiGwc25xpSpkOm1Jycn28Rg+f8KfbfmK9Nrd3FxueNr3ut29Ul9upv2lM8TmNNvb97f1dUVFxeXdNtTPqcp3P5/Yv3N030zand3dyc5OZmkpCSbGN3c3NJtT0pKsnkub/4ZkVa7+qQ+qU/qk/qkPqlP6pP6ZH+fkpOhe3dXVqxwwccHFi5M5JFHDFK6lhX7dGt7ZrxOpUolU7x4Et27m20xMRa2bnVjw4ZkNm2CzZstXLhgYcMG2LDhxrEFChhUqWJQrRrUrOlC+fJJeHg8GH3Kjq/T/erTrbGm54FKSlWtWpWIiAhKlCjBqVOnGD58OLVr12bnzp0OjTKKiooiKSnJJpkEkDdvXvbu3QvA6dOnyZEjR6oRV3nz5uX06dPWfdI6R8o2gPHjx/Pyyy/z6aefUrNmTd5++22mTp2Kt7c3lStXJjw8nIMHD9KxY0c++OCDdGMeMWIEw4cPT9W+fPlyvL29AShcuDAVK1Zkx44dREZGki9fPi5fvozFYsHLy4urV6/avPm8vLzw8PDg8uXLNm8aHx8f3N3drYmvFL6+vlgsllTtfn5+GIbB5cuXbdoDAgJITEzk6tWr1jYXFxf8/PyIj4/n2rVr1nY3Nzdy5szJ9evXbZJvKaPNrl27RvxNYzo9PDzUJ/XpvvcpPj7e2o8//viDc+fOWfevUKECoaGhrFu3ziae6tWrExwczPLly22eg7CwMLy8vFiyZIlN7E2bNuXatWusXr3aJsZmzZoRFRVlTZynPC/169fn+PHjNiNJg4KCqFGjBvv372ffvn3W9pt/Rhw7dszaXqJECUqWLKk+qU/qk/qkPqlP6pP6pD7Z2aeYmMtMmFCWxYuL4e5uMHeuhQsXlrFkSdbt0/18nRo2rM9jjx2nfPltvPACnDrlQ2RkKOfPP8aaNdfZty8HJ0+6MG+ehXnzUs7nQpEiMRQvfpESJS7SpEkADRsWe2D6lB1fp3vRp9jYWOzxQE3fu9WlS5cIDQ1l9OjR9OrVy9pu7/S9yMhIChQowIYNG6hevbq1feDAgaxdu5bNmzczffp0evToYfMlFaBKlSqEhYUxcuRIXnjhBY4ePcqyZcus22NjY/Hx8WHJkiU0adIk1bXPnz9P5cqVWbduHa+99hrly5fnjTfeoHLlyowcOZIWLVqkGXNaI6UKFSpEVFSUdcjbrSOlDh06RFBQEHny5MlWo1Xupl19Up/upv38+fNERUVRvHjxVPtnp79eqE/qk/qkPqlP6pP6pD6pTxn36eOPLbz3nisA06Yl06VL1u/Tg/Q6Xb6czN9/W9i0ycIff7iwaZMlzQLpQUFQtWry/4+oMqhUySAg4MHsU3Z8nRzpU0xMDHny5Ml60/duFhAQQPHixTlw4IBDx+fJkwdXV9dUK+mdOXOGfPnyAZAvXz7i4+O5dOmSTYLr1n1uXTkv5Zwp+9zq9ddfp1+/fhQsWJA1a9bwwQcf4OPjQ7NmzVizZk26SSkPDw88PDxStbu7u+Pu7m7T5urqiqurK7ly5SIqKgoXFxe8vb2tX+BFxH6GYZCYmEhMTAwxMTEEBATg6uqa7v4pP+hvdevn1JF2FxcXXFxSr0ORXnvKzwJ729OLXX1Sn9Qn9QnUp/RivNN29Ul9AvUpvRjvtN1ZfZo82Y333jPvf/EFdOnicsexp9eu18mMPSDAlfr1oX59s80w4NgxsyZVSn2qv/82C6svXuzC4sUp5zRXP6xWDapVc6N6dShe3Gx3dp+y4+vkSJ/SiynV/nbt5SRXrlzh4MGDdO3a1aHjc+TIQaVKlVi1ahWtWrUCzFoxq1at4tVXXwWgUqVKuLu7s2rVKtq2bQvAvn37OHbsmHV0VfXq1fnwww85e/YswcHBAKxYsQI/Pz9Kly6d6rqrVq1iz549TJo0CcA6ogmwe17lnUhJjN28oqCIOMbV1ZWQkBD8/f2dHYqIiIiIOMmCBfDCC+b9t9+Gvn2dG8/DwmIxVzYMDYUOHcy269dh2zbbRNWxY7Bjh3n77jtzv4AAqFo1JVFl3n8YVkfM6uyevnfhwoU7Pnnu3LnvaP833niDFi1aEBoaSmRkJEOHDmXbtm3s3r2boKAgTp8+zenTp9myZQvPP/8869atw9fXl8KFC1uv1aBBA1q3bm1NOs2cOZPu3bszbtw4qlSpwhdffMGsWbPYu3evtS5U7969WbJkCREREfj5+dGnTx8ANvx/9bWkpCQqVKhA/vz5GTVqFKdPn6Zr164899xzfPTRRzZ9uH79OhUrVmTGjBlUqFABMOdzFixYkFdeeYXmzZszevRonn76abueE3sr1qfEeS+SXiIPCzc3N1xdXTXaUEREROQhtn49NGpkJkN69oTx481kiTw4IiNh8+YbSaotW+CmcrJWJUveSFJVrw5lykAGkyEkE2X66nsp9YruxM3zEe1x4sQJOnXqxPnz5wkKCqJWrVps2rSJoKAgAL799lubIuB16tQBYNKkSTz77LMAHDx4kKioKOs+HTp04Ny5cwwZMoTTp09ToUIFli5dalO4/PPPP8fFxYW2bdsSFxdHeHg4X3/9tXW7q6srixcvpnfv3lSvXh0fHx+6d+/Of//731R9GD58OM2aNbMmpADGjh1L586dqVOnDl26dLGOyMps6Q2fExERERERkdv75x9o0cJMSD31FIwbp4TUgyh/fmjd2rwBJCSYr11KkmrTJjhwAPbuNW8REeZ+Pj5QpcqNRFW1avD/k6HESeweKTVs2LA7TkoNHTrUoaDkhjsZKSUiIiIiIiKOOXIEatSAU6egVi1Yvhy8vJwdlTgqKsp2NNUff8Ati3kD8MgjtqOpypWDHDnuf7zZjb25jAd69T1RUkpEREREROReO3fOTET9+69ZQHvdOtUjym6SkmDPHtvaVLt3p97P0xMqVbJNVBUocP/jzeruWVLq9OnTHDlyhMDAQB577LG7DlQypqSUiIiIiIjIvXPlirn6259/mgW2f/9dSYiHxaVL5ut+c6Lq4sXU+xUsaDvlr1IlM3kl6cv0pFR8fDzPPvssM2fOtLaVL1+euXPnUqRIkbsOWNKmpJSIiIiIiMi9ER8PzZvDihWQJw/89huUKOHsqMRZDAP277dNUu3YAcnJtvu5u0OFCraJqqJFVX/sZpmelBo9ejRvvPEGTzzxBPXq1ePAgQMsWLCAmjVrsm7dukwLXGwpKSUiIiIiIpL5kpPhmWdgxgyzAPavv5pFsEVuduUK/PXXjUTVxo1w9mzq/YKDbZNUlStDzpx3fr2kJHMFyFOnICQEatfOmisGZnpSqkKFCgQGBrJy5UprwfMRI0bw7rvvcvz4cfLnz585kYsNJaVEREREREQyl2FA//4wZgy4ucHPP0OjRs6OSrICw4CjR21HU23daq4AeDMXF3j8cdtEVfHiZnt65s6Fvn3hxIkbbQULmu/TNm3uTX/ulUxPSvn7+zNixAhefvlla9uhQ4d49NFHWb9+PTVr1rz7qCUVJaVEREREREQy14gR8M475v0ffoDOnZ0bj2Rt16+biambE1XHj6feL1cuqFr1RpKqalUICDC3zZ0L7dqZSa+bpUwJnDMnayWm7M1luNl7wsuXLxOQ8mz9P39/fwDi4uIci1JERERERETkPpow4UZC6osvlJCSu+fpaa7SV726OQIP4ORJ2Lz5RqJqyxaziPrSpeYtRalS5rTRhQtTJ6TAbLNYoF8/aNkya07ly4jdSSnAOm3P3nYRERERERGRB8XChfDCC+b9QYPMqVIi90KBAubIppTRTQkJZtH0m0dTHTwIe/aYt4wYhjnyav16qFfvnod+X9k9fc/FxQVPT0/c3GzzWFeuXMHLywvXW9J1FouF6OjozIv0IaXpeyIiIiIiIndv/XqzbtT169CzJ4wfr9XSxLnOnTNHU02YAPPn337/6dOhU6d7HlamyPTpe927d8+UwERERERERETup3/+gRYtzIRUixYwbpwSUuJ8QUHQvLm5Sp89SamQkHse0n1n90gpcQ6NlBIREREREXHckSNQowacOgU1a8Ly5eDt7eyoRG5ISoIiRcw6VGllaCwWcxW+w4ezTk0pe3MZGSxG6LioqCi++uqre3FqEREREREREbucOwfh4WZCqmxZWLRICSl58Li6wpgx5v1bR/ClPP7ii6yTkLoTmZaUio2NZfr06TRr1owCBQrQVxXjRERERERExEmuXIFmzeDffyE01FzxLFcuZ0clkrY2bWDOHLNA+s0KFjTbUwqmZzd3tPrerZKTk1m2bBk//PADCxYsIDY2lkcffZTXXnuNFi1aZFaMIiIiIiIiInaLj4e2beHPPyEwEJYtS/1lX+RB06YNtGxpFuU/dcqsIVW7dvYcIZXCoaTUpk2b+OGHH5g1axZRUVGEhoYSGxvLd999R69evTI7RhERERERERG7JCfDs8+ataN8fGDJEihRwtlRidjH1RXq1XN2FPeP3Umpffv28cMPPzB9+nQOHTpEsWLFeP755+nUqRMeHh4UL16cXBoLKSIiIiIiIk5iGPD66zBjBri5wdy5UKWKs6MSkfTYnZQqXbo0+fLlo1OnTnTo0IHKlStbtx08ePCeBCciIiIiIiJir5EjbxSMnjwZGjVybjwikjG7C527u7tz8eJFjh49yvHjx4mLi7uXcYmIiIiIiIjYbeJEePtt8/7nn0Pnzs6NR0Ruz+6k1JkzZxg7diznzp3j6aefJjg4mG7durF06VISEhLuZYwiIiIiIiIi6Vq4EJ5/3rw/aBD06+fUcETETnYnpfz9/XnuuedYs2YNR44c4Z133mH79u00bdqUKlWqYLFY2Lt3L/Hx8fcyXhERERERERGr9euhQwezwHnPnvDRR86OSETsZTEMw7ibE+zYsYNp06bx448/cuLECXLmzMmTTz7JU089Rffu3TMrzodWTEwM/v7+REdH4+fn5+xwREREREREHhj//AN16sClS9CihVnY3M2hNeZFJDPZm8u466TUzdasWcO0adOYO3cu0dHRJCUlZdapH1pKSomIiIiIiKR29CjUqAGRkVCzJixfDt7ezo5KRMD+XIbd0/fsUa9ePcaPH8/p06eZM2dOZp5aREREREREBIBz58yV9SIjoUwZWLRICSmRrChTk1IpcuTIQevWre/FqUVEREREROQhduUKNGsG//4LhQvDsmWQK5ezoxIRR9yTpJSIiIiIiIhIZouPh7Zt4c8/ITDQTEgVKODsqETEUUpKiYiIiIiIyAMvORmeffZG7aglS6BkSWdHJSJ3Q0kpEREREREReaAZBrz+OsyYYa6uN3cuVKni7KhE5G4pKSUiIiIiIiIPtJEjYcwY835EBISHOzUcEckkDiWlRo4cycmTJzM7FhEREREREREbEyfC22+b9z//HLp0cW48IpJ5HEpKDR48mNDQUOrXr8+kSZO4fPlyZsclIiIiIiIiD7mFC+H55837gwZBv35ODUdEMplDSamjR48yYsQILly4QK9evciXLx8dO3bk559/JikpKbNjFBERERERkYfMb79Bhw5mgfMePeCjj5wdkYhkNothGMbdnGDnzp388MMPzJgxg2PHjpEnTx46dOjAM888Q9WqVTMrzodWTEwM/v7+REdH4+fn5+xwRERERERE7rl//oE6deDSJWjRwixs7ubm7KhExF725jLuOil1s/Xr1/PFF18wf/58AIoVK0a3bt144YUXCA4OzqzLPFSUlBIRERERkYfJ0aNQowZERkLNmrB8OXh7OzsqEbkT9uYyMmX1vevXr/Pjjz8yatQoFi1ahKurK02aNKFs2bK8//77FCtWjHnz5mXGpURERERERCSbiooyV9aLjIQyZWDRIiWkRLIzh0dKGYbBihUr+OGHH5g/fz6XL1+mYsWKdO3alc6dO1tHRp06dYpOnTpx7NgxDh06lKnBPww0UkpERERERB4GV65A/frw559QuDBs2AAFCjg7KhFxhL25DIdm5fbv35+ZM2dy5swZQkJCeOmll+jWrRtlypRJtW9ISAjPPfcc3bp1c+RSIiIiIiIiks3Fx0PbtmZCKjAQli1TQkrkYeBQUur777+ndevWdOvWjYYNG2KxWDLcv1atWkyaNMmhAEVERERERCT7SlldL6V21M8/Q8mSzo5KRO4Hh5JSZ86cwcfHx+79ixQpQpEiRRy5lIiIiIiIiGRThgEDBsD06ebqenPnghZxF3l4OFTo/PHHH2fhwoXpbl+8eDGPPPKIw0GJiIiIiIhI9jdyJHzxhXk/IsIsci4iDw+HklJHjhzhypUr6W6/cuUK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IiIiIumbPPlGQurTT5WQEpHsz6Gk1JQpU6hTpw5FihShQoUKVKhQwWb7kSNHWLduHd26dcuMGEVERERERLK1xYuhVy/z/htvwIABzo1HROR+cKimVI8ePdiwYUO62zdv3kyPHj0cDkpERERERORhsWEDtG8PSUnQrRuMHOnsiERE7g+HklK3K0N19epV3NwcnhkoIiIiIiLyUNi1C5o3h2vXoGlTGD8eXBz6liYikvXYnTnasWMH27Ztsz5ev349iYmJqfa7dOkS3377LcWLF8+UAEVERERERLKjY8cgPBwuXjRX2Js1C9zdnR2ViMj9Y3dSat68eQwfPhwAi8XCuHHjGDduXJr7BgQEMGXKlMyJUEREREREJJs5f95MSJ08CaVKmTWlfHycHZWIyP1lMW43F+//nTp1isjISAzDoEqVKvz3v/+lSZMmtiezWPDx8aFYsWKavpdJ7F1GUUREREREsoarV6FBA9i8GQoWNGtKFSrk7KhERDKPvbkMuzNHISEhhISEALB69WpKlSpFcHDw3UcqIiIiIiLykEhIgKefNhNSuXPD8uVKSInIw8uh4Ux169bN7DhERERERESyteRk6NkTfvkFvLzMKXulSjk7KhER53F4jt2yZcuYMGEChw4d4uLFi6lW5LNYLBw8ePCuAxQREREREckOBg6EadPA1RXmzIHq1Z0dkYiIczmUlPrkk08YNGgQefPmpUqVKjz++OOZHZeIiIiIiEi28ckn8Nln5v2JE6FpU+fGIyLyIHAoKTVmzBjq16/PkiVLcNeapSIiIiIiIumaPNkcJQVmcqpbN+fGIyLyoHBx5KCLFy/Srl07JaREREREREQy8PPP0KuXef+NN8ybiIiYHEpKValShX379mV2LCIiIiIiItnGhg3mSntJSeboqJEjnR2RiMiDxaGk1Ndff83cuXOZPn16ZscjIiIiIiKS5e3aBc2bw7VrZv2o8ePBxaFvXyIi2ZfFuHXZPDuUK1eOCxcucOrUKXLmzEnBggVxdXW1PbHFwvbt2zMt0IdVTEwM/v7+REdH4+fn5+xwRERERETkNo4fhxo14MQJqFYNVq4EHx9nRyUicv/Ym8twqNB57ty5CQwM5LHHHnM4QBERERERkezm/Hlo1MhMSJUqBYsXKyElIpIeh5JSa9asyeQwREREREREsrarV6FZM9i7FwoWhGXL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YfFiKFfO6lQiIiIiIiIiGZtLM6V+//13atSoweXLl3nssccoUaKEffunn37KkiVL2LRpE8WKFUvWsCIpYcQImDHDvLvevHlQu7bViUREREREREQyPpeaUi+99BJubm7s2LGDMmXKJNr322+/Ua9ePV566SUWLFiQLCFFUsp778Ho0ebj6dOhVStr84iIiIiIiIhkFi5dvrdhwwb69et3R0MKoHTp0jz33HP88MMP95tNJEV99RX062c+fv11ePppa/OIiIiIiIiIZCYuNaViY2P/c1FzX19fYmNjXQ4lktK+/x4ef9xcT6pvX3jlFasTiYiIiIiIiGQuLjWlQkNDmTlzJpGRkXfsi4qK4uOPP6Z8+fL3HU4kJWzbZl6mFxsL7drBlClgs1mdSkRERERERCRzcWlNqVGjRtGoUSOKFy9Ojx49KFq0KAAHDhxgzpw5XLhwgWnTpiVrUJHkcPAgNG4MV69C3bowdy64u1udSkRERERERCTzsRmGYbjygd9//z1Dhgxh165dibaHhITwzjvvUK9evWQJmNlFRUURGBhIZGQkAQEBVsdJ106fhurV4fBhKF8e1q8HfUlFREREREREkpejvQyXm1K3nDlzhqNHjwIQHBxM3rx57+d0chs1pZJHZCTUrg27dkGhQvDTT5Anj9WpRERERERERDIeR3sZLl2+92958+ZVI0rStJs3oUULsyGVJw+sXq2GlIiIiIiIiIjVXFroXCS9iI+HLl1gwwbzUr2VK+GRR6xOJSIiIiIiIiJqSkmGZRjQty989x14ecGiRRASYnUqEREREREREQE1pSQDGzUKPvwQbDb44gt49FGrE4mIiIiIiIjILWpKSYY0fbrZlAJ4/31o08baPCIiIiIiIiKSmJpSkuF884152R7Aa6/Bs89aGkdERERERERE7uK+774HsGHDBj7//HNOnjxJ3rx56dChAw0aNEiOU4s4Zd06c2Fzw4DevWHECKsTiYiIiIiIiMjd3PdMqQ8//JDw8HBiYmIoV64cFy9eJDw8nAkTJiRHPhGH7dgBLVtCTAy0bQvvvmuuJyUiIiIiIiIiaY/NMAzDkQOvXLmCv7//HdtLlCjBuHHjaNasmX3b8OHD+fTTTzlx4kTyJc2koqKiCAwMJDIykoCAAKvjpFmHDkH16nD2LNSpAytWgLe31alEREREREREMh9HexkOz5QqXLgwH3/8sUPH2mw2bJqiIqnk7Flo0MD8NyQEFi5UQ0pEREREREQkrXN4Tanp06czZMgQ3n//faZOnUr16tUB6NevH507d6Zdu3Y8+OCD/P777yxcuJAxY8akWGiRW6KioHFj+OsveOQRc4aUJpSJiIiIiIiIpH0Oz5Rq3bo1+/bto1WrVjRq1IiOHTty4sQJevfuzYIFC3Bzc2P79u34+/uzaNEiXnzxxZTMLcLNm+YaUjt2QO7csHo15M1rdSoRERERERERcYTDa0r928mTJ3nxxRdZtGgRgwcPZujQoWTJkiUl8mV6WlPq7uLjoWNH+OYb8PeHDRsgNNTqVCIiIiIiIiKS7GtK/dtDDz3E559/zurVq1m2bBnFihVj3rx5LocVcYZhwPPPmw0pLy9zDSk1pERERERERETSF4fXlAI4duwYq1at4vr161SuXJlq1aoRERHBJ598wqBBg3jvvfeYOnUqYWFhKZVXhDfegOnTwWaDzz+HunWtTiQiIiIiIiIiznJ4ptTSpUspXrw4b731Fp9++ik1atRg8ODB2Gw2nnzySf744w+qVq1KjRo16NmzJ+fOnUvJ3JJJffABjBxpPp42Ddq2tTaPiIiIiIiIiLjG4abU0KFDadu2LYcOHWLbtm3MmTOHSZMmcfLkSQD8/f0ZP348u3bt4uzZsxQpUiTFQkvm9O230KeP+XjECOjd29o8IiIiIiIiIuI6h5tSJ06coHr16vb3q1evjmEYnDp1KtFxRYsWZdmyZcyfPz/5Ukqm98MP0LmzuZ7UM8/Aa69ZnUhERERERERE7ofDa0rVqFGDqVOnUrp0aYKCgnjzzTfJnj07pUqVuuvxjRs3TraQkrnt3AktWkBMDLRubV62Z7NZnUpERERERERE7ofDM6VmzJjBAw88QK1atShTpgxbt27l66+/xtfXNyXzSSb311/QqBFERUHt2ubC5u7uVqcSERERERERkfvl8EypBx98kO+//56bN29y8+ZNgoKCUjCWCJw9Cw0amP+WKweLFoGPj9WpRERERERERCQ5ONyUusXHxwcfdQYkhUVFQZMmcOgQPPwwrFgBgYFWpxIRERERERGR5OLw5XsiqSU62lw7avt2yJULVq2CBx6wOpWIiIiIiIiIJCc1pSRNiY+Hbt1g7VrImtWcIVWkiNWpRERERERERCS5qSklaYZhQP/+8NVX4OkJCxZAWJjVqUREREREREQkJagpJWnGm2/CtGlgs8Fnn0H9+lYnEhEREREREZGUoqaUpAkzZsCrr5qPp06F9u2tzSMiIiIiIiIiKUtNKbHcggXw7LPm41degeeeszaPiIiIiIiIiKQ8NaXEUhs3QqdOkJAATz0Fr79udSIRERERERERSQ1qSolldu+G5s0hOhpatoT33zfXkxIRERERERGRjE9NKbHE4cPQsCFERkKtWjBvHnh4WJ1KRERERERERFKLmlKS6s6dMxtSZ85A2bKwaBH4+FidSkRERERERERSU5ptSr311lvYbDYGDBhg33bmzBm6du1K3rx58fPzo3z58nz77bf/eZ7XXnsNm82W6K148eKJjrl58yZ9+/YlR44cZM2alTZt2nD27NlExxw7dozw8HB8fX3JnTs3Q4YMIS4uzr5/x44dhIaGkjVrVpo1a8bFixft++Li4ggLCyMiIuI+viIZw5Ur0KQJHDwIBQvCihUQFGR1KhERERERERFJbWmyKbV161Y+/PBDypYtm2h7t27dOHDgAIsXL2bPnj20bt2a9u3bs2PHjv88X6lSpTh9+rT9bdOmTYn2Dxw4kCVLlvD111+zYcMGTp06RevWre374+PjCQ8PJyYmhs2bNzNnzhxmz57NiBEj7Mf06tWLunXrsn37diIjIxkzZox934QJE6hevTqVKlW6ny9LuhQfDz/8YF6et2YNtGoF27ZBzpywahU8+KDVCUVERERERETECmmuKXX16lW6dOnCjBkzyJYtW6J9mzdv5vnnn6dSpUo88sgjvPLKKwQFBbFt27b/PKeHhwd58+a1v+XMmdO+LzIyko8//piJEydSt25dwsLCmDVrFps3b+bnn38GYPXq1ezbt4/PPvuMkJAQGjduzBtvvMG0adOIiYkBYP/+/Tz11FMULVqUTp06sX//fgD++usvPv74Y958883k/DKlC999Z86GqlMHOneGBg1g7Vrw9jZnSBUtanVCEREREREREbFKmltaum/fvoSHh1O/fn1Gjx6daF+1atX48ssvCQ8PJygoiK+++oqbN2/y6KOP/uc5Dx48yIMPPoiPjw9Vq1Zl7NixFChQAIBt27YRGxtL/fr17ccXL16cAgUKsGXLFqpUqcKWLVsoU6YMefLksR/TsGFDevfuzd69ewkNDaVcuXKsWbOG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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"from google.cloud import bigquery\n",
"\n",
"client = bigquery.Client(project=project_id)\n",
"\n",
"block_iapi_sites_over_time = client.query('''\n",
"WITH sites_by_block_theme_inteactivity_api AS (\n",
" SELECT\n",
" date,\n",
" page,\n",
" JSON_QUERY(custom_metrics, '$.cms.wordpress.block_theme') as block_theme,\n",
" FROM\n",
" `httparchive.all.pages`,\n",
" UNNEST(technologies) as technologies\n",
" WHERE\n",
" date >= PARSE_DATE('%%Y_%%m_%%d','%s') AND\n",
" technologies.technology = \"WordPress\" AND\n",
" is_root_page = TRUE\n",
")\n",
"\n",
"SELECT\n",
" date,\n",
" COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) AS has_block_theme,\n",
" COUNT( DISTINCT( IF( uses_interactivity_api = 'true', page, null ))) AS uses_interactivity_api,\n",
" COUNT( DISTINCT IF( uses_interactivity_api = 'true', page, null ) ) / COUNT( DISTINCT( IF( block_theme = \"true\", page, NULL))) pct_block_theme_sites_using_interactivity_api\n",
"FROM sites_by_block_theme_inteactivity_api\n",
"GROUP BY DATE\n",
"ORDER BY DATE ASC\n",
"''' % \"2024_04_01\").to_dataframe()\n"
],
"metadata": {
"id": "TJdrzsmvccEU"
},
"execution_count": null,
"outputs": []
}
],
"metadata": {
"colab": {
"provenance": [],
"toc_visible": true,
"collapsed_sections": [
"4G2WkwMPzxbT"
],
"include_colab_link": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment