What is Vercel AI SDK?
TypeScript toolkit for building AI-powered applications with React Server Components, streaming, and tool calling.
Searching Google Ads Transparency with Vercel AI SDK
This integration lets your Vercel AI SDK agent search Google Ads Transparency in real time via the Scavio API. The agent gets back structured JSON with top_ads, bottom_ads, ad headlines, destination URLs -- ready for reasoning and decision-making.
Setup
npm install ai @ai-sdk/anthropic zodCode Example
Here is a complete Vercel AI SDK agent that searches Google Ads Transparency using Scavio:
import { generateText, tool } from "ai";
import { anthropic } from "@ai-sdk/anthropic";
import { z } from "zod";
// Scavio has no Ads Transparency endpoint. This searches the public Ads Transparency Center pages through Google, which returns pages about the advertiser rather than the ad creatives themselves. For live ad copy on a keyword, read the top_ads and bottom_ads blocks of a POST /api/v2/google response instead.
const result = await generateText({
model: anthropic("claude-sonnet-4-5"),
tools: {
scavioSearch: tool({
description: "Query Google Ads Transparency for real-time results",
parameters: z.object({ query: z.string() }),
execute: async ({ query }) => {
const res = await fetch("https://api.scavio.dev/api/v2/google", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.SCAVIO_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ query }),
});
if (!res.ok) throw new Error("Scavio API error: " + res.status);
return res.json();
},
}),
},
prompt: "google ads transparency center notion",
});
console.log(result.text);Full Working Example
A production-ready example with error handling:
import { generateText, tool } from "ai";
import { anthropic } from "@ai-sdk/anthropic";
import { z } from "zod";
// Scavio has no Ads Transparency endpoint. This searches the public Ads Transparency Center pages through Google, which returns pages about the advertiser rather than the ad creatives themselves. For live ad copy on a keyword, read the top_ads and bottom_ads blocks of a POST /api/v2/google response instead.
const result = await generateText({
model: anthropic("claude-sonnet-4-5"),
maxSteps: 5,
tools: {
scavioSearch: tool({
description: "Query Google Ads Transparency for real-time results",
parameters: z.object({ query: z.string() }),
execute: async ({ query }) => {
const res = await fetch("https://api.scavio.dev/api/v2/google", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.SCAVIO_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({ query }),
});
if (!res.ok) throw new Error("Scavio API error: " + res.status);
return res.json();
},
}),
},
prompt: "google ads transparency center notion",
});
console.log(result.text);Pricing
Scavio offers a free tier with 50 credits on signup (1 credit per search). No credit card required. This is enough to build and test your Vercel AI SDK integration. Paid plans start at $30/month for higher volumes.