Publishing, audience analytics, consent, and advertising¶
Purpose¶
This document records a possible future path for publishing original architecture and astronomy/astrophotography content, measuring its audience, and monetizing appropriate editorial pages with advertising.
It does not authorize enabling Google Analytics, AdSense, cookies, a consent platform, or any other third-party tag. Provider policies and privacy requirements must be reviewed again before implementation.
Editorial direction¶
AndreaWeb can eventually include a journal with two strong subject areas:
- architecture, urbanism, materials, design process, and Andrea's professional perspective;
- astronomy, observing, astrophotography, equipment, processing workflows, and projects Andrea and Justin undertake together.
Astro can generate this section from typed Markdown or MDX content collections. Suggested routes are:
/journal/ Spanish journal index
/journal/arquitectura/... Spanish architecture articles
/journal/astronomia/... Spanish astronomy articles
/en/journal/... English articles
Each article should have an author, publication and modification dates, language, topic, tags, summary, hero image, image credits, canonical URL, translation relationship, and disclosure fields for sponsorship or affiliate links.
The journal should establish a consistent publishing cadence and a useful body of original work before advertising is considered. Search traffic, newsletter signups, professional inquiries, and product discovery may be more valuable than early ad revenue.
Advertising boundary¶
Advertising must not weaken Andrea's professional presentation or the store's trust.
Recommended boundaries:
- no display ads on the portfolio landing page, project pages, biography, résumé, contact page, product pages, cart, inquiry flow, Admin, API, or thank-you pages;
- ads may appear only in clearly editorial journal/article surfaces;
- reserve ad space in the layout to reduce cumulative layout shift;
- keep density restrained and test mobile readability and accessibility;
- do not use deceptive placements, accidental-click patterns, or language encouraging visitors to click ads;
- label sponsored and affiliate content clearly;
- do not let ad scripts bypass the site's content-security, consent, or performance rules.
The business decision is reversible: the journal should remain useful and visually complete when advertising is disabled.
AdSense readiness gate¶
Before applying for Google AdSense:
- Andrea owns and controls the final domain and can place verification code in the site HTML.
- The journal contains substantial, original, high-quality content that attracts a real audience.
- Public pages include approved privacy, cookie, contact, and required disclosure information.
- Copyright and licenses are documented for photography, diagrams, architectural imagery, and third-party assets.
- The site passes responsive, accessibility, and performance checks with representative ad slots.
- A consent-management design is operating before advertising tags load.
- The root-domain
ads.txtfile can be generated from the actual AdSense publisher identifier and served with a successful response. - Content and placement are reviewed against the current AdSense program policies.
Do not commit an invented publisher identifier or copy ads.txt entries from a template. The real identifier belongs in deployment configuration or a reviewed generated file.
Audience analytics¶
Google Analytics 4 is the initial analytics candidate, not a required dependency. A privacy-oriented alternative such as self-hosted Matomo or a lightweight hosted analytics service should remain possible.
Measurement goals¶
Useful aggregated questions include:
- Which portfolio projects and articles attract sustained interest?
- Do visitors discover the cement store from architecture or astronomy content?
- Which language and device experiences need improvement?
- Which campaigns lead to contact, WhatsApp inquiries, or support-link visits?
- Where do visitors abandon product discovery or the cart inquiry flow?
- Which editorial subjects lead to repeat visits without compromising privacy?
Proposed events¶
Use a small, versioned analytics event dictionary. Candidate events include:
view_projectview_articleview_itemselect_variantadd_to_cartremove_from_cartbegin_inquirywhatsapp_clickemail_clickcontact_submitsupport_link_clicklanguage_changeoutbound_link_click
Never send names, email addresses, telephone numbers, WhatsApp message text, street addresses, payment identifiers, free-form contact text, or other personally identifiable information to Google Analytics. Query strings and page titles must be reviewed so they cannot accidentally contain such information.
Configuration and reporting¶
- Keep measurement IDs and enablement flags in deployment configuration.
- Do not load production analytics in local development or automated tests.
- Separate production traffic from staging and administrator/internal traffic.
- Define key events only for meaningful outcomes; a WhatsApp click is an inquiry attempt, not a confirmed sale.
- Preserve campaign parameters long enough to attribute a voluntarily submitted inquiry, without copying them into logs or databases indefinitely.
- Link Search Console only after domain ownership and data-access roles are approved.
- Document data retention, account ownership, administrator access, and deletion procedures.
- Produce bilingual monthly reports covering audience, content, acquisition, engagement, inquiries, and storefront outcomes, with context rather than vanity totals.
Cookie banner and consent management¶
MVP position¶
If the MVP uses only strictly necessary cookies for Medusa Admin/session security and the cart can operate without optional tracking, do not add an ornamental banner that says “accept” while changing nothing. Keep optional analytics and advertising disabled until consent behavior is implemented and tested.
Consent categories¶
When nonessential tags are introduced, provide an accessible Spanish/English preference interface with at least:
- strictly necessary;
- audience analytics;
- advertising and personalization.
Visitors must be able to accept, reject, make granular choices, and change or withdraw those choices later. Default optional categories to denied until the applicable consent decision is known. Store only the minimum consent record required to honor and demonstrate the choice.
The tag-loading architecture must ensure:
- defaults are established before any optional tag executes;
- Analytics and advertising scripts remain blocked when their category is denied;
- consent updates are propagated to Google Consent Mode if Google tags are enabled;
- the choice applies consistently across the portfolio and storefront;
- changing domains, languages, or application routes does not silently reset or broaden consent;
- automated tests verify that denied consent produces no optional cookies or network requests.
CMP decision¶
A custom banner may be sufficient for a simple analytics-only configuration only after legal and technical review. It is not automatically sufficient for AdSense.
Google currently requires publishers serving personalized AdSense ads to users in the EEA, the UK, and Switzerland to use a Google-certified consent management platform integrated with the IAB Transparency and Consent Framework. Before enabling AdSense for those visitors, choose either Google's publisher CMP or another currently certified CMP and verify its language support, accessibility, pricing, data processing, and Astro/Next.js integration.
Using a certified CMP does not by itself establish compliance with every applicable privacy law. Andrea remains responsible for accurate disclosures, appropriate consent, data-subject handling, and the site's actual tag behavior.
Performance and quality safeguards¶
- Measure Core Web Vitals before and after adding analytics, CMP, or advertising scripts.
- Load optional third-party scripts only after the required consent decision.
- Define a JavaScript and performance budget for editorial pages.
- Prevent ad blockers or tag failures from breaking navigation or article rendering.
- Monitor script errors, blocked requests, layout shifts, and revenue-impacting configuration errors without collecting sensitive visitor data.
- Keep a single tag inventory documenting owner, purpose, cookies/storage, data destination, consent category, routes, and removal instructions.
Rollout sequence¶
- Launch the portfolio and store without display advertising.
- Establish privacy and cookie notices that accurately describe the actual MVP.
- Define the analytics event dictionary and consent categories.
- Add and test the consent mechanism with optional tags still disabled.
- Enable minimal audience analytics for consenting visitors and validate that no PII is sent.
- Publish a substantial original journal and review its audience and brand value.
- Evaluate AdSense economics, placement, policy, and certified CMP options.
- Test advertising on journal pages only, with a kill switch and before/after performance measurements.
- Review monetization quarterly and remove it if it damages experience, trust, or professional positioning.
Decisions required later¶
- Journal name, route, authorship, and Spanish/English publishing workflow.
- Whether astronomy is part of Andrea's primary brand or a visibly separate joint publication.
- GA4 versus a privacy-oriented analytics platform.
- Countries and legal regimes the consent implementation must address.
- CMP provider if advertising or Google policy requires one.
- Whether AdSense revenue is worth its performance and design costs.
- Ownership of Google, Search Console, analytics, advertising, and CMP accounts.
Primary references¶
- Google AdSense eligibility requirements
- Google AdSense site ownership
- Google AdSense ads.txt guidance
- Google Analytics data safeguards
- Google Analytics guidance for avoiding PII
- Google Consent Mode overview
- Google AdSense certified-CMP requirements
- Google AdSense Privacy & messaging