Integrations
GrackerAI PageLens

GrackerAI PageLens

Last updated Sep 1, 2026

A Summarize button on your site. Readers land in ChatGPT, Claude or Gemini already asking about your page, which puts your pages into the answers your readers get.

It stays yours. PageLens isn't part of your plan, so it keeps working for free, on as many pages as you like, after everything else stops.

PageLens is not part of your plan. It isn't metered, seat-limited, or tied to a subscription. Use it on as many pages and sites as you like, and it keeps running if you cancel or drop to the Free plan. You don't even need an account: the bare tag works on its own.

Your monitoring stops when the plan does. Your AI visibility doesn't have to.


What it does

One tag, every pagePaste one script before </body>. A floating Summarize button appears across your site.
Your URL, inside the answerReaders pick an engine and land there already asking about your page, with your prompt.
Nothing loads until they clickNo requests and no tracking while a reader is just reading.

It does not rank your page or promise a citation. It removes the friction between your page and the answer engine, and puts your framing in the prompt instead of whatever the reader would have typed.

What the reader sees

StepWhat happens
1Reader is on your article
2A small Summarize button sits in the corner
3They click. Assistant logos appear
4They pick one, say ChatGPT
5ChatGPT opens with your prompt and your URL already written
6ChatGPT fetches your page and answers from it

Six seconds. One click. Your content is the source in an AI conversation.

What it is not

NotBecause
A chatbotIt answers nothing on your site
An AI costNo model runs. No tokens billed to you
A middlemanIt hands the reader to the assistant they already use

Installation

One tag, before </body>:

<script src="https://cdn.gracker.ai/summarize.min.js" defer></script>

That is the full install. Every option has a sensible default, so the bare tag is complete.

To configure it visually, go to Connectors → GrackerAI PageLens. Position, engines and appearance are on the left, with a live preview on the right, and Edit tag gives you the finished snippet to paste.

The GrackerAI PageLens configurator: position, engine and appearance controls on the left, live button preview on the right

Engines you switch off are greyed out in the picker, which is why Perplexity appears dimmed until you enable it.

The snippet Gracker generates carries only what you changed:

<script src="https://cdn.gracker.ai/summarize.min.js"
        data-position="top-left"
        data-label="Ask AI"
        defer></script>

Defaults are omitted, so the tag stays short and what you see is what you configured.


Privacy and performance

While a reader is just reading:

Network requestsNone
CookiesNone
TrackingNone
Third-party callsNone

The widget renders inside a shadow root, so your site's CSS cannot reach into it and its CSS cannot leak out. Provider logos are inlined as SVG, so it makes no requests of its own. The only request is the script tag itself. A click triggers an ordinary navigation carrying your URL and prompt.

Menu links are built lazily from the page address at the moment of interaction, so single-page apps get the correct URL with no re-mounting.

What this removes from review: no beacon to explain to your privacy team, no request to justify to your performance budget, nothing to add to a cookie banner.


Prompt configuration

The prompt decides what a click is worth. Most people leave it at the default.

DefaultSummarize this page in a few short bullet points, then list any key numbers or dates: {url}
Placeholders{url} becomes the page address and {title} the page title, both at click time
Attributedata-prompt

Prompts by page type

A summary prompt on a pricing page wastes the click.

Page typePromptResult
ProductExplain what this product does, who it's for, and how it compares to alternatives: {url}You are inside the comparison
DocsSummarize this, then give me a working code example based on it: {url}Your docs become shipped code
ResearchPull out the key findings and any statistics with their context: {url}Your data quoted with attribution
ComparisonSummarize this and tell me which option fits a small team: {url}You are in the decision moment
PricingExplain this pricing and which plan suits a 20-person team: {url}Qualification without a sales call

Supported assistants

Eight engines, set with data-providers as a comma-separated list. The list order is the menu order.

AssistantKeyShown by default
ChatGPTchatgptYes
ClaudeclaudeYes
Google AI OverviewaioverviewYes
Google AI ModeaimodeYes
GeminigeminiYes
GrokgrokYes
CopilotcopilotYes
PerplexityperplexityNo, opt in

Show fewer than you can. Seven options is a decision. Two is a click.


Appearance settings

SettingAttributeOptionsDefault
Positiondata-position8 anchors: top-left, top-center, top-right, middle-left, middle-right, bottom-left, bottom-center, bottom-rightbottom-right
Custom positiondata-x / data-yAny CSS length. Set both to override data-positionNot set
Offsetdata-offsetDistance from the screen edges, for preset positions24px
Styledata-variantpill, circle, ghost, glass, square, textpill
Labeldata-labelButton text. Kept as the aria-label when circle hides itSummarize
Accentdata-accentAny hex colour#2563eb
Themedata-themeauto, light, darkauto
Opens ondata-open-onhover, click. Tap and keyboard always work either wayhover
Effectdata-effectnone, trail, radar, glow, shimmer, ringnone
Stackingdata-z-indexStacking order of the widget's host element2147483000

auto follows the reader's system setting, so it is correct on dark-mode sites with no extra work.

Motion effects

Five effects stack on top of any style, each taking as many colours as you give it via data-fx-colors, at a thickness (data-fx-width, default 2px) and speed (data-fx-speed) you choose.

EffectWhat it isDefault speed
trailNeon comet running the border3s
radarRotating beam with a tail2.2s
glowPulsing halo2.2s
shimmerHighlight sweeping the edge2.6s
ringRing expanding outward, then gone1.9s

Start at none. Add one only if the button is being missed. Every effect stops under prefers-reduced-motion: reduce.


Driving it yourself

Add data-manual to skip auto-mount and control the widget from your own code. The global is SummarizeThisPage:

<script src="https://cdn.gracker.ai/summarize.min.js" data-manual defer></script>
<script>
  const widget = SummarizeThisPage.mount({
    position: 'bottom-left',
    providers: 'chatgpt,claude',
    accent: '#111111'
  });
 
  // later
  widget.destroy();
</script>

mount(opts) takes the same keys as the data-* attributes in camelCase (openOn, fxColors, zIndex) and returns { el, destroy }. The module also exposes defaults, providers, svg(key) and providerUrl(key, url, title, prompt) if you want to build your own UI on top.

You can also self-host the script rather than loading it from cdn.gracker.ai. Keep summarize in the filename, or use data-manual, so auto-mount can still find its own tag.


Why it matters

Readers already do this

Pasting an article into an assistant is ordinary behaviour. It happens whether or not you enable it. The only question is whose tab it happens from.

Reader leaves to askOutcome
Without PageLensThe assistant answers from training data and pages it chooses. Often a competitor's.
With PageLensThe assistant fetches your URL and answers from your content.

The only lever that works on demand

ApproachHow the outcome arrives
Publishing, structure, earned citationsIndirect. Wait for a crawler, an index, a conclusion.
PageLensDirect. The moment a reader clicks.

No adoption blockers

Usual blockerWhy it does not apply
Performance reviewDeferred script. Zero requests until click.
Privacy reviewNo cookies. No tracking. No third-party calls.
Engineering sprintOne tag. Ships via tag manager.
Budget approvalNot part of your plan. Free, unlimited pages.

Time to value is minutes. Most initiatives on this channel take a quarter.

Highest-return content

Content typeWhy
DocumentationReaders use assistants to turn docs into working code
Long-form researchNobody reads 4,000 words. They summarise it.
Comparison pagesA reader comparing options is at the buying stage
Product pagesThe prompt can position you against alternatives directly

Best practices

PracticeReason
Write the prompt for the page's jobThis is where the return lives
Cut the assistant list to two or threeFewer choices, more clicks
Test the labelAsk AI promises a conversation. Summarize promises a chore.
Vary the prompt by templateDocs, product and comparison pages need different questions
Check mobile placementWatch for collisions with chat widgets and cookie banners

Summary

One script tag turns a common reader habit into a distribution channel.

Cost to runNone
Review neededNone. No performance or privacy surface
Time to installMinutes
What it producesYour page, inside an AI conversation, as the source being read

FAQ

Does it slow my site down?

No. The script is deferred, and it makes zero requests of its own. Nothing loads until a reader clicks.

Do I need a cookie banner for it?

It sets no cookies, uses no storage, and sends no requests while a reader is reading, so there is nothing to consent to before a click. Confirm with your own counsel as you would for any third-party script.

How many pages can I use it on?

All of them. One site-wide tag, no limit, and no limit on the number of sites either.

Is it included in my plan?

No, and that is deliberate. It is not plan-gated, metered or seat-limited, and it keeps working after a GrackerAI plan ends. You do not need an account to use it.

Can I use different prompts per page?

The tag carries one prompt, so emit it from your template with a different data-prompt per page type. Docs, pricing and comparison pages each deserve their own question.

What if a reader never clicks?

They see a small button. Nothing loads, nothing is tracked, and nothing is sent anywhere.

Why isn't Perplexity showing in my menu?

Perplexity is the one engine that is off by default. Add it explicitly with data-providers, listing every engine you want in the order you want them shown.

Will it clash with my site's CSS?

No. The widget renders inside a shadow root, so your styles cannot reach into it and its styles cannot leak out. If it sits under another floating element, raise data-z-index.

Does it work in a single-page app?

Yes. Menu links are built at the moment of interaction from the current page address and title, so route changes are picked up without re-mounting the widget.

Can I change settings later?

Yes. Update them in Gracker and replace the tag. Most changes are a single attribute.