=== Headless GA4 ===
Contributors: jakubkanna
Tags: analytics, ga4, dashboard, admin, headless
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 0.1.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Display lightweight GA4 traffic data in the WordPress dashboard for headless frontends.

== Description ==

Headless GA4 adds a compact Google Analytics 4 widget to the main WordPress dashboard.

It is designed for sites where:

* the frontend is not rendered by WordPress
* GA4 tracking already happens on the frontend
* WordPress only needs to read and display GA4 reporting data for admins

The plugin uses the Google Analytics Data API and a Google service account. It does not inject frontend tracking code.

Features:

* settings page for GA4 configuration
* dashboard widget with core traffic metrics
* last 7 days trend chart
* top pages and top traffic sources
* transient caching
* manual refresh action

== Privacy ==

Headless GA4 does not track visitors or inject analytics scripts.

The plugin only sends server-side requests to Google when an administrator configures a GA4 property and opens the dashboard or tests the connection. Those requests use the service account credentials you provide in the plugin settings.

== External services ==

This plugin connects to Google services to authenticate requests and fetch Google Analytics 4 report data. These requests are only made after an administrator configures the plugin and then opens the dashboard widget, refreshes the data, or uses the Test connection button.

= Google OAuth token service (`oauth2.googleapis.com`) =

Used to exchange the configured Google service account credentials for a short-lived access token.

Data sent: a signed JWT assertion containing the service account email, requested scope, token endpoint, issued-at time, and expiration time.

Terms of service: https://developers.google.com/terms
Privacy policy: https://policies.google.com/privacy

= Google Analytics Data API (`analyticsdata.googleapis.com`) =

Used to request GA4 report data for the configured GA4 property.

Data sent: the GA4 property ID, report request parameters such as date ranges, dimensions, metrics, and limits, plus the OAuth access token in the request headers.

Terms of service: https://developers.google.com/terms
Privacy policy: https://policies.google.com/privacy

== Installation ==

1. Upload the `headless-ga4` folder to `/wp-content/plugins/`.
2. Activate the plugin through the WordPress Plugins screen.
3. Go to `Settings > Headless GA4`.
4. Enter your GA4 property ID.
5. Paste your service account JSON credentials.
6. Save the settings.
7. Use the `Test connection` button.
8. Open the main Dashboard screen to view the widget.

== Frequently Asked Questions ==

= What is a service account? =

A service account is a Google Cloud machine identity used by the plugin to read your GA4 reporting data without requiring a human Google login inside wp-admin.

= Does this plugin install tracking on my site? =

No. This plugin only reads GA4 report data. Your frontend must already send data to GA4.

= What do I need from Google? =

You need:

* a Google Cloud project
* the Google Analytics Data API enabled
* a service account
* the full service account JSON credentials
* Viewer access for that service account email in your GA4 property
* your GA4 numeric property ID

= How do I set it up? =

1. Create a Google Cloud project.
2. In Google Cloud Console, open `APIs & Services`, click `Enable APIs and Services`, search for `Google Analytics Data API`, open it, and click `Enable`.
3. Create a service account.
4. Open the service account, go to `Keys`, click `Add key`, choose `Create new key`, then select `JSON` and download the file.
5. Copy the service account email address.
6. In GA4, open `Admin`, then `Property access management`, add that service account email, and grant it `Viewer` access.
7. In GA4, open `Admin`, then `Property settings`, and copy the numeric `Property ID`.
8. Paste the property ID and the full service account JSON into the plugin settings.
9. Save the settings and test the connection.

= Why do I not see any data? =

Possible reasons:

* the frontend is not sending GA4 events
* the wrong property ID was entered
* the service account email was not added in `GA4 > Admin > Property access management`
* the service account JSON is invalid
* the property has not received enough recent traffic

== Screenshots ==

1. Settings page for GA4 property ID and service account JSON
2. Dashboard widget with summary cards, trend chart, top pages, and top traffic sources

== Changelog ==

= 0.1.1 =

* Replace inline admin CSS with an enqueued stylesheet
* Move admin screen markup into template files
* Remove deprecated OpenSSL cleanup call
* Add external service disclosures for Google services

= 0.1.0 =

* Initial release
* Settings page with service account configuration
* Dashboard widget with traffic summary
* GA4 Data API integration using a service account

== Upgrade Notice ==

= 0.1.1 =

Maintenance release for plugin review fixes.

= 0.1.0 =

Initial public release.
