# Making Crawlie ready for Google AdSense & Analytics

This site is now structured for AdSense and GA4, but both require **your own
accounts** — I can't create those for you. Here's exactly what to do.

## 1. Google AdSense

### Ad slots already placed in the site
Ad slot containers (`<div class="ad-slot">...</div>`) are placed in three
positions, matching the "top / middle / bottom" placement advice for
maximizing earnings without hurting user experience:
- **Homepage**: below the hero, and near the bottom before the footer.
- **Blog post pages**: after the first two paragraphs, and at the end of the post.
- **Tools hub page**: between category sections.

Each one currently renders as an empty placeholder box (visible only in a
faint dashed outline) so the layout doesn't shift once you add real ads.

### To activate real ads
1. Apply for an AdSense account at https://www.google.com/adsense and get approved.
   (Approval depends on Google's policy review of your content — original
   blog content, a Privacy Policy, and clear navigation all help.)
2. Once approved, add this single script tag to the `<head>` of every page
   (replace `ca-pub-XXXXXXXXXXXXXXXX` with your real publisher ID):
   ```html
   <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-XXXXXXXXXXXXXXXX" crossorigin="anonymous"></script>
   ```
3. Replace each `<div class="ad-slot">` placeholder with your real ad unit
   code from the AdSense dashboard (it will look like an `<ins class="adsbygoogle">`
   tag with your publisher and slot IDs).

### Already in place to help with approval
- `privacy-policy.html` — a Privacy Policy page (required by AdSense).
- Clear, substantial navigation and original content (tools + blog).
- `about.html` and `contact.html` already existed.

## 2. Google Analytics (GA4)

1. Create a GA4 property at https://analytics.google.com and get your
   Measurement ID (looks like `G-XXXXXXXXXX`).
2. Add this snippet to the `<head>` of every page you want tracked (replace
   the ID):
   ```html
   <script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
   <script>
     window.dataLayer = window.dataLayer || [];
     function gtag(){dataLayer.push(arguments);}
     gtag('js', new Date());
     gtag('config', 'G-XXXXXXXXXX');
   </script>
   ```
   The cleanest way to do this across a static multi-page site like this one
   is a quick find-and-replace across all `.html` files once you have your
   real ID, or ask Claude to do it for you by pasting your Measurement ID.

## 3. SEO already in place to support this
- `sitemap.xml` and `robots.txt` at the site root.
- Per-page meta descriptions and titles.
- JSON-LD structured data available via the Schema Generator tool for your
  own pages.
- Original blog content (via the blog + admin panel) — search engines and
  AdSense both value genuinely original content over thin/duplicate pages.
