How to Generate Google Ad Grant Keywords for 501(c)(3) Nonprofits with LLMs | Step-by-Step Guide

This guide uses language models to generate long-tail Google Ad Grant keywords, an implementation guide, and research papers for a real nonprofit campaign.

25:18 video6 min readWatch on YouTube

Getting a Google Ad Grant approved and running well for a nonprofit isn't just about writing a few keywords, it's about generating enough specific, compliant, long-tail keywords that a small campaign can add up to real traffic. Professor Bear walks through a repeatable process for doing exactly that using large language models, working through a live example built around the Lyrical Literacy - Neural Music Development initiative.

Start with real context, not just a prompt

The first move isn't writing a clever prompt, it's assembling detailed source material about what the nonprofit actually does. For Lyrical Literacy, that means pulling together far more detail than would ever appear on a public web page, description of the project's method, its use of tongue twisters, lullabies, and nursery rhymes to teach language by singing basic vocabulary and survival phrases, engaging multiple brain regions at once for balanced cognitive development. That detailed writeup lives on GitHub and gets fed to the language model as context before any keyword generation happens, because a model can only generate relevant keywords if it actually understands the mission in depth.

Why generic keywords don't work for Google Ad Grants

Google does not want vague, one-word keywords like "music." A search for "music" is far more likely to be someone looking for a pop artist than for an educational language-learning tool. The alternative is long-tail keywords, phrases that go deep into specifics, like someone searching "music language acquisition" or "how do I learn a language for music." Someone who has never heard of Lyrical Literacy but is searching for those specific ideas is exactly the audience the campaign wants to reach, and that specificity is what Google's Ad Grants program is actually looking for, not just what performs well.

Generating keywords at volume

The practical workflow is to prompt a language model to generate a large batch of keywords tied to the project's two ad groups, in this case brain exercise songs for children and creating your own brain exercise music, then simply ask for more, repeatedly. A detailed survey paper on the ad group topic gets pasted in as supporting context first, which grounds the keyword generation in real, evidence-based language rather than vague marketing terms. Generated keywords get copied into a GitHub repository as a running collection, with duplicate removal treated as a later cleanup step rather than something to worry about during generation, since removing duplicates is a trivial follow-up task for a language model or a short script.

Every keyword gets a quick relevance check, does this actually make sense for what the project does, and the relevancy rate from modern language models is described as very high. What can't be predicted in advance is performance: whether a given keyword actually gets searched and clicked is an empirical question that only gets answered once the keyword is live in the AdSense tool. A keyword like "lullabies" might not get much search volume on its own, but a handful of visits a day from dozens or hundreds of long-tail keywords adds up to meaningful traffic in aggregate, which is the entire logic behind generating as many relevant long-tail keywords as possible rather than betting on a handful of broad ones.

Staying compliant

Compliance is treated as a real constraint, not an afterthought. A medical-sounding claim, such as asserting that a brain exercise activity will produce a specific outcome for a child, is likely to get flagged by Google, since the platform doesn't want nonprofits making claims like that. A more neutral phrase like "musical brain training" is treated as safe, since it describes what the project does without asserting a claim. Brand names used in generated keywords, Suno is specifically mentioned, are similarly uncertain in advance; Google's own review process is the actual test, and any keyword it rejects just gets deleted and replaced, since generating another fifty keywords with a language model costs almost nothing. The guide also stresses submitting a nonprofit ad campaign as a draft first, reviewing it carefully, and only submitting once compliance is genuinely confirmed, since campaigns should never be submitted before they've been double-checked.

Building the implementation guide

Beyond a raw keyword list, the process also generates a second document: an implementation guide meant to be used directly while working in the Google AdSense tool. This guide contains ready-to-use suggestions for headlines, descriptions, and sitelinks, the small supplementary links that appear within an ad. Because Google enforces strict character limits, generated text that runs too long can simply be pasted back into the language model with a request to rewrite it within the required limit, for example no more than 100 characters. Having this guide prepared in advance means not having to improvise headline and description copy on the spot inside the AdSense interface, and it also gives a team a shared document that more than one person can review before anything goes live.

Why research papers feed into landing pages

The process also generates a detailed, research-paper-style writeup for each ad group, deliberately far more detailed than any actual web page would ever be. The reasoning is that this detailed document gives a language model enough context to later generate a tight, highly relevant landing page and video for that specific ad group, since a model can't summarize key points it was never given in the first place. Professor Bear compares outputs from Claude and ChatGPT side by side for this task and notes a preference for Claude's output, observing that it appeared to do more research, taking longer but producing a more substantial document.

From keywords to a dedicated landing page

The eventual plan is to turn each detailed research writeup into its own dedicated landing page, generated using React, built specifically for that ad campaign rather than being part of the nonprofit's general site navigation. That distinction matters for Google's evaluation: the landing page needs to reflect traffic actually coming from the ad itself, not from general site browsing, which is why a standalone page not linked from the main site is used. The stated benefit of building this dedicated page is that it can be produced quickly using an existing React-based site template, and it supports both light and dark themes and mobile-optimized layouts.

Key takeaways

  • Feed a language model detailed context about your nonprofit's mission before asking it to generate keywords; specificity in the source material produces specificity in the output.
  • Generate long-tail, specific keyword phrases rather than single generic words, since Google Ad Grants penalizes vague keywords and rewards relevance.
  • Treat compliance as an iterative, empirical process: draft the campaign, submit it as a draft, let Google flag anything it doesn't like, and simply delete and regenerate replacements.
  • Build a separate implementation guide with ready-to-paste headlines, descriptions, and sitelinks so you're not improvising copy inside the AdSense tool itself.
  • Generate a detailed, research-paper-style document per ad group first, then use it as context for a tight, evidence-based landing page rather than trying to write the page directly.

Who this is for

This step-by-step guide is aimed at nonprofit staff and volunteers managing their own Google Ad Grants campaigns who want a repeatable, AI-assisted process for keyword research and ad copy. It's built around Humanitarians AI's own Lyrical Literacy - Neural Music Development campaign, with the underlying prompts and resources shared on the organization's GitHub.

Full transcript(auto-generated, with timestamps)

[0:00]Professor Barah here again. We're going to continue our Google ad grants. There is uh we're going to focus on keywords today. How we generate keywords in specific. We're going to generate four documents. Uh here's some thoughts on prompts of generating keywords. The main thing you're going to need is not just a prompt, but you're going to need some text about well what is it that you do? We put this on our GitHub here. So this is what this lyrical literacy project is about. This is a lot more detail than we put on a web page, but it's great for the language modes. So we can have this use this as context.

[0:53]And then uh what we're going to do here is we're going to go and just ask it to generate some keywords. We're going to generate some other documents as well. Uh once we have those keywords, we're going to create an implementation guide. And what an implementation guide is is when we actually get to the AdSense tool and we start typing in things. We have things that we can just copy and paste and type into the Google AdSense tool. This includes suggested keywords. It may be text to image prompts for generating images, text to image prompts for generating um headlines, generating descriptions. So the Google AdSense is going to ask you for a

[1:36]Headline. It's going to ask you for description. It's going to ask you for side links. So, these are I'm not sure the right way to explain this, but this is like a subcategory within the the uh Google AdSense tool. It'll be more obvious what this is when we actually use the tool. But basically, when you go to Google, if you go to Google and you see an ad here, not sure why no ads are coming up, but let's just say lyrical literacy. There's I'm not getting ads for some reason. Maybe this is an ad. So, here here's an ad, I suppose, from the Children's Literacy Foundation.

[2:27]And it needs I'm not sure if this is an ad. Maybe, maybe not. It's an AI overview. Oh, actually, we come up number one. Wow. Bear Browning Co. number one. Um, but when there are ads in mind, Twitter as well. Well, I guess I just dominate lyrical literacy. Um, but when you see ads, also my videos are popping up in Instagram. Um, so when you see something on an ad, I don't know why I'm getting ads. I think it's because I have a pro version of Google and maybe they don't give me ads. Um, but when you see ads, they're little side things here like this thing who was

[3:09]From this is from LinkedIn. Some text here often an image. These are things that you put into the Google AdSense tool. That'll be more obvious when we start using the tool. And so what what this implementation guide is doing is just giving you a lot of stuff to literally paste in the AdSense tool. Of course, you're going to think about it. If you don't think this makes sense, then you don't use it. But it's nice just to have suggestions because, as we've discussed before, Google doesn't want vague keywords. They don't want me to put in music. They want me to put in something much more specific.

[3:49]And the good thing about that is when we have these much more specific words, specific, they're called longtail keywords, uh, meaning we're going deep down specifics. Somebody looking for music neural pathways would probably be interested in lyrical lit. If they just type in music, they're more likely looking for Diddy or Taylor Swift or somebody than for lyrical literacy. But if they've never heard of lyrical literacy, but if they're looking at music language acquisition, how do I learn a language for music? Well, lyrical literacy would be a good place for them to go. And so this is what Google wants. And so to come up with all

[4:26]Of these keywords, it's kind of a pain, but it's what AI does super easily. I can just ask it for more more keywords more keywords more keywords more keywords and put them in the tool. Then what we do is we once we in the tool and we'll talk about this when we talk about the AdSense tool we try them and if they do poorly we remove them. Google does not want you having poor performers in your keywords but the only way you really know that is to try them. Like lullabibies we do a lot of lullabibies. suspicion is not a lot of people are searching that. But if the

[5:02]People who are searching that, they'll probably likely like her site. Uh but in order to get any kind of traffic, I just can't put in this one keyword and expect, you know, maybe more than one visit or two visits a day from that keyword. So I need to put in a lot of them. I need to put in a lot of very longtail keywords. And this is what AI is great at. AI is great at generating keywords and more keywords. I can just say and more keywords. So, we're going to start with that. So, we're we're and this is this is our campaign guide. So, our start is

[5:38]To generate some keywords. We're also going to generate some research papers. Um so, based on our ad campaign, we have two ad campaigns. One is how songs help children learn language, learn to read, learn to think. And this is backed by a lot of science. So what I asked her to do when the prompt is here, the actual prompt I use to write this paper is here. And we're going to write a detailed survey paper on our two ad groups. Ad group one, which is brain exercise songs for children. And then when I post this in there, I'll just post this in there now because it'll take about five minutes.

[6:18]Um, I'm just going to press just generate 100 uh keywords related to I'm also going to put this paper in there exercise signs for children and remove that detailed survey thing and it'll start generating keywords and what I do is I just copy them. So one thing I don't know if you note or not the reason why we use GitHub all the time is that uh we can just copy this and I don't really want the paper that started writing another paper for me. I'm going to stop that uh because I I left some some keywords in there, but I can just start pasting these keywords in our GitHub. So, I use

[7:25]The GitHub here just as a collection of So, I'm just going to put this as appendix. Oh, this is the wrong one. This is the paper in our keywords here as an appendix. and just start collecting them. Once we collect them, we try them. So, you actually do two things. Let me take that back. I need to edit that. So what happened there is uh markdown if you don't have any spaces after it will um so in order to to format it I'm going to just add some spaces after everything. This is a regular expression that I'm using here. And I'm just going to put a bunch of

[8:29]Spaces in that. And that may not look different to you, but it looks different to GitHub. And these are just things we start playing with. First of all, whenever we look at a keyword, does this make sense? Well, this makes sense for what we're trying to do. This makes sense for what I we're trying to do. This makes sense for what we're trying to do. What we want to avoid, and the good thing about the Google AdSense tool is it'll flag this. If I'm making a medical claim like brain exercise will do this for your kids, Google will likely flag it because they don't want me making medical

[9:19]Claims. But musical brain training, I don't think they will flag that. I'm not really making an assertion or a claim with that. I'm just if somebody searches for musical brain training, we do stuff on musical brain training. It's relevant. Um, and so we try them. But brain optimizing music, any any one of these keywords is probably not getting a lot of traffic. But all of these keywords, I could put in hundreds of thousands of keywords into AdSense campaign. And so maybe this one gets a couple a day, this one gets a couple a day, this one gets a couple a day, this one gets a couple a day, this

[9:57]One gets a couple a day. Combined, then we get the traffic up to our budget. And the good thing about it, when we use very specific stuff like language acquisition strong songs as opposed to music, people are much much much more likely to want to hear what we have to say because this is what we're talking about. We're talking about using music to make a stronger brain and also teaching people how how to use you music to make a stronger brain. And so because of that, these songs are better for Google. I mean, these songs, these keywords are better for Google because Google wants it to be relevant. They're

[10:41]Also better for you as a nonprofit because you're getting a higher quality of traffic. Before the days of language models, generating this many keywords could take a long, long time. Now, you can generate literally as many as you want. I can just paste these back in. Say generate more. Paste these back in. Generate more. This is certainly enough to start. I don't know which of these keywords are actually going to work though. I just know they're relevant. They make sense for for what we're trying to do, but maybe nobody searches for this. Even though it's Google and has a bazillion people searching, maybe nobody searches for it. But that'll come

[11:20]Up in our stats. We we can't predict that until we put the keyword into the AdSense tool and see, are people clicking on this? Our hope though is a couple people click on that, a couple people click on that a day, a couple people click on that a day, a couple people click on day that a day, then over hundreds or thousands of keywords we get our traffic. And so that's the idea and that's why we use AI to generate these keywords because it could take me a long time thinking of these keywords. But if I read a keyword, yeah, that's relevant. Yeah, that's relevant.

[11:56]Yeah, that's relevant. Yeah, that's relevant. And so it makes it super easy to generate the keywords, which is what we want. And then which ones actually work, we do not know until we we uh get a actual campaign going and put it in AdSense. So this is the first document. The first document is just what I did. These are some suggested prompts. Uh, you could just literally paste this in. I can just open up a new new session here and just put it in and it'll start generating keywords. And then as I get these keywords, I'm just going to add them and add them and

[12:47]Add them and add them. I'll use other tools to remove duplicates. So, at this point, I'm not so concerned with removing duplicates because I'll go back into this here and just, you know, remove the duplicates after the fact. It's a trivial thing to just ask claw to write a Python script to remove duplicates. Um, but the process here now is generating the keywords. I just want to get as many keywords as I can. then I want to read them. I want to, you know, is this relevant? Is this relevant? Is But the the relevancy rate is very high with the modern language models. I don't

[13:26]See one that I would not take. Again, I don't know if any of these are going to work. That's an empirical thing. You know, does somebody actually search for this on AdSense? Then once I have the two campaigns, what I generate is I I generate a implementation guide. And here is the prompts. So here's a prompt for your nonprofit to generate an implementation guide. So you can literally cut and paste that and put in your nonprofit details there to generate basically this document. The purpose of this is when and we'll use this when we go to the AdSense tool. The purpose of this is we

[14:06]Have suggestions of you know what exactly to to type into AdSense. AdSense will ask you for headlines or here's some headlines and we can ask for more. We can just generate 15 more headlines. Generate 20 more headlines. Descriptions. It's going to ask you for descriptions. Also, the good thing about using language models is I make spelling mistakes all of the time. Here, you know, these things are, you know, standard. You can also further prompt it because what sometimes it'll happen and and the language model won't know. Google's limited to 100 characters. So then you can just paste it back in and say, you know, rewrite this to be no

[14:42]More than 100 characters. And it also suggests your side links, you know, what what uh you know, side links you might use in the ad, which is a a Google specific thing. That's only something you put on their site. So, we have two ad groups. And what this document is is just when I am using the Google AdSense tool and here it may block suno, I don't know. Sometimes it doesn't like brand names, but the Google will tell me. So if I put all of these things in there, it might say I don't like this. If it doesn't like this, it's most likely because it did not like the word sunno.

[15:21]You are not sunno. And but maybe it's okay with suno because suno is a general tool. And so I which is which about what we're doing is we're making videos on how to use to create educational music for you and your kids. Maybe they take it, maybe they don't take it, but that's a Google decision, but we can try it. And also with the ad campaign when we do it we are going to do it as a draft with a nonprofit this is particularly important that you don't submit the campaign that is you do it as a draft until you're sure that the campaign is

[15:56]Compliant. You do not want to submit something that you haven't checked and double check but we'll get into that when we talk about using the tool. So what this thing is is just, you know, I don't want to sort of off the top of my head just think of this stuff while I'm at the tool. I want to have this document with me when I'm using the tool. Then we put that in the campaign. Campaigns are an iterative process. Meaning if a particular keyword or a particular campaign isn't performing well, particularly up to the Google requirements, then you need to remove keywords and start changing things. But

[16:31]You need to start somewhere. This is the AI process. The AI process is just to start somewhere which is relevant. This is all relevant. This is all relevant. Google may not like the word suno. It may be okay with the word word suno. I have no idea. It will tell me their tools say I don't like these three keywords. So then I'll just delete them because I can always generate another 50 keywords with language models. And the other two things and it may not be clear why we created these but we created research papers. And uh the reason why we're creating research papers is two things. We're

[17:10]Going to in the next video create a landing page. We're going to create a very specific page for ad group one, a very specific page for ad group two. I'll show you how to do that. We use a tool called React. It'll take five minutes to generate that page. Uh we'll do that in the next video. But in order to have that page irrelevant, our our web page is not going to have this much detail. Web pages shouldn't have this much detail. This is a research paper style writing. But this gives the language model context. So the language model can easily handle all of this. But if we

[17:48]Want our if we want our page to be really relevant and really tight on ad group one, what we ended up doing is we just simply asked uh and here's the prompt that we actually used. So I'll just paste this in right now. So this is the prompt we used and this will take about five minutes. So, a tool and I'll use CHBT for this a tool uh or claude or whatever you want. The reason why I'm using CHBT is I've used Claude for the other ones and it'll take about five minutes to write this paper. Actually, it's quicker. I think JPE may be a little quicker because it's not

[18:31]Doing quite the job that Claw did. Let's the comparison right now. This seems a little light to me. Let's do the same thing in Claude and just do a direct comparison. Quad will take five minutes. And I think the reason why Claude is taking five minutes is actually doing some research. So of the two so far, I far prefer Claude. You can also try the Inemini. Let's you know, go for it. Why not? Why not go for all of them? But what we use these for, I'll let these do their thing and we'll come back and look at them when they're they're finished going. This will take about

[19:24]Five minutes. The GGPT one seem very light to me. Uh, and we want something substantial. We want a nice document talking about what we do. But why we do this is we're going to use this information. It's going to be much simpler on the web page. But that's an easy thing for a language model to do. Just summarize and keep the key points on the web page. Essentially, that's our prompt is going to be something like that. Take take this as context and just keep the key points on the web page. Our landing page and we're also going to use it for the video because we need to make

[19:57]A video. Our landing page is going to look something like this. So, we're going to have a video and then we're going to have details. But what we're going to do is we are going to basically take our survey paper. We're going to take this our react page and and b basically ask uh claude or chatbutt or gemini to write a react page about this survey paper but in the format of this where it has a you know a little abstract here has a hero section video has about it has this it has that that'll take about five minutes to do and this will be name to whatever our

[20:41]Campaign name is so it'll have its own name. It won't be available here on our general thing. You know, a search and you'll find it, but you won't find it if you're coming to this site. The reason why that's done is the we want that page and Google wants that page to reflect traffic not coming from me just clicking in a link and going to that page, but traffic coming from the ad. how effective is your ad? And so what we do is we just create a simple page for it. If you use a tool like React, and we have a lot of videos on using React, we have our entire

[21:23]Website. You can download the code for website and modify and change it. It literally takes five minutes to create another page that looks like this. This is a nice page. It goes dark, it goes light, it's optimized for mobile. I just talked to somebody yesterday and they pulled up the web page. She pulled up the web page on her phone and it looked good on her phone. Um, and so we're going to create landing pages for every ad and we're going to do that in the next uh video. But having this information here, having the information from, you know, a detailed sciencebased, evidence-based um description of what you're doing allows

[22:10]Us to create a much more effective and evidence-based uh web page for what you're doing. So, to summarize, uh we have this page here. I'll put put this in here. You can go to this little GitHub and look at this. We generate some keywords around a uh around um two if campaign. A campaign is a theme like lyrical literacy then ad groups. Our ad groups are brain exercise and creating your own brain exercise music. Those are our two campaigns. We generate a bunch of keywords. When we have keywords, we start putting them in the AdSense tool and drawing them. And that's an airdrop process. If this

[22:53]Doesn't really get us any traffic or Google doesn't like it for some reason, we just delete it and look for some more. But we generate a lot of keywords because none of these keywords are going to get us a lot of traffic. But combine uh a few keywords that you know each get a couple of links a day can add up pretty quickly. Uh then what we do is we create a implementation guide and this is basically cut and paste into your AdSense concept. So you're not going back and forth. Okay, what what would some good site links be? What would some good descriptions be? What would some

[23:30]Good headlines be? This is all in this document. If you have a group like we do, we have our group check the document so more than one person has eyes on it. Another reason to create a document because then other people can look at it. Well, I don't think, you know, this is going to be compliant. So then we just delete it. If anybody in our group doesn't think that that Google would be happy with this, we just delete it. You know, we can always come up with 10,000 more keywords. That's not an issue. Then for both of our ad groups, we create a survey paper. And what that survey paper

[24:07]Does, and I'll go look at the survey papers we just created. They should be done by now. Um, it allows us to then create much more focused landing pages and focus videos on that campaign. Uh, our landing page is not going to have this kind of detail. But having this kind of detail allows a language model then to write your page because a language model isn't going to summarize it. You know what what are the key points here? But if it doesn't know what those key points are, it can't summarize it. So what this is that we're giving it a lot of context. We're giving

[24:42]The language model a lot of context. So, when we write a landing page, the landing page is highly specific and highly effective. So, I've already talked too long. I know I always say this at the end of it that I talked too long, but I guess I just talked too long. So, and this is why we're doing this as a series so I don't go on for 10 hours. So, do the like, subscribe thing. In our next video, we are going to make these landing pitches. So, I hope uh to see you then. again. Do the like, subscribe, ring the bell thing.

More videos

Humanitarians AI Lyrical Literacy Project