Connect with us

SEO

Free Google Ads Script To Dynamically Change Target ROAS

Published

on

Free Google Ads Script To Dynamically Change Target ROAS

With the continuing onslaught of automation from the ad engines like Google, should we still care about ad scripts?

I believe so.

Scripts are the perfect tool to execute an automation layering strategy.

They give you a technique to use your own simple automations to control, monitor, and improve more sophisticated machine learning automations from Google.

Unfortunately, as Google advertisers have adopted smart bidding in larger numbers, AdWords scripts have become less capable of working in the new way of doing things.

The reason is simple: AdWords Scripts don’t support modifying target CPA or target ROAS bids, so they’re limited in how useful they can be for the modern PPC marketer.

But AdWords Scripts have finally started evolving again and will soon be replaced by Google Ads Scripts.

That’s right, almost four years after AdWords became Google Ads, it’s time for scripts to make the change, too.

In this post, you’ll find an example of how you can use a Google Ads script to manipulate your target return on ad spend (tROAS) setting based on external factors.

How To Use A Google Ads Script To Change tROAS

While you can extend this example to use any external data that is available through an API, we’ll use the true-and-tried example of bidding by weather for the purpose of this column.

In my recent book, Unlevel the Playing Field, I shared an example of an automotive parts store that wants to take full advantage of a spike in car battery sales when the season’s first frost hits and wipes out car batteries that were already on their last leg.

One shortcoming of the “maximize conversion value” smart bidding strategy is that it likely doesn’t know there is a correlation between frost and car battery sales.

But the store’s owner has been in business for enough winters to know what to expect when the temperature dips below freezing.

So the company decides to bid more aggressively when there is a large potential for more sales due to weather conditions.

That means setting a lower target ROAS when the temperature goes below 32 Fahrenheit or 0 degrees Celsius.

The reason for lowering the tROAS is that Google will likely make some inaccurate predictions about conversion rates.

It will assume typical conversion rates when in reality the conversion rate will be much higher because people looking for a car battery during the first frost are more likely to have a dead battery that needs immediate replacement (rather than just shopping for a new battery to replace one that may eventually die).

As Google underestimates the conversion rate, and the advertiser indicates a willingness to get a lower ROAS, these two factors will balance out and the advertiser is likely to get more conversions while still maintaining the same ROAS they usually get.

How To Try The New Google Ads Scripts

The script relies on some functionality that is only available in the new experience so you will need to toggle the setting that enables this new experience in your Google Ads account.

Screenshot from Google Ads, February 2022

The script consists of two core parts:

  • Fetching external data like the min forecast temperature for tomorrow.
  • And setting a new tROAS bid.

How To Connect Weather Data To Google Ads

To fetch weather data, we can use an API like that from Open Weather Maps.

There is a free tier of the API so you can easily test the functionality before committing to any costs.

Paired with a free Ads Script, this means this solution won’t cost you anything to try.

With just about 20 lines of code, we can write a function that queries the weather API for a particular location.

You tell it the latitude and longitude of the location for which you want a forecast and then it returns the forecast for that location.

Weather API free script codeScreenshot from Google Ads, February 2022

In my example, I am fetching the lowest temperature for the next day but you could easily request a different weather-related number by updating the following line of code:

Var min = json.daily[0].temp.min;

Note how that code corresponds to the data from the API.

For every part of the text after the “=” sign, I have placed an arrow next to the associated data in the weather response below to help you understand the mapping.

JSON Viewer for weather code scriptScreenshot from JSON Viewer, February 2022

Use a JSON preview tool to navigate the weather data we’ll use in our code.

How To Update tROAS With Google Ads Scripts

Next, we need a function whose job it is to change the tROAS of a campaign.

That code takes about 11 lines.

code to set function to change the tROASScreenshot from Google Ads, February 2022

It takes a campaign name and a bid adjustment as inputs and it scales the current tROAS by the bid adjustment factor.

The bid adjustments is a simple multiplier.

It’s trivial to change how the tROAS is changed by simply changing the formula:

newTRoas = bidAdjustment * currentTRoas

Putting The Parts Together To Change Bid By Weather

Finally, we write the simple logic that tells our script when to change the bids.

This can be done in around 10 lines of code.

code to get lowest temperature Screenshot from Google Ads, February 2022

Of course, we also need some settings so that we can easily change things like the campaign we’re manipulating or the temperature at which we want to adjust the tROAS, and how much we want to change the tROAS.

The settings look like this:

setting metrics code Google Ads scriptScreenshot from Google Ads, February 2022

When we put it all together, we get the complete code that you can copy and paste and run in your own Google Ads account.

Scripts Housekeeping

This script does very simple automation for free. But chances are you will want to extend the functionality to really meet your own needs.

For example, if you operate in many locations, you may want to change the tROAS for some external factor in each of those locations.

That means repeating the code many times, which is simple but not elegant.

Or, you could write more elegant code that maps the primary geo-location where each campaign gets impressions to a location encoder and then fetches the weather data.

Ideally, you’ll also label any campaigns you adjust so that you can run an automated rule the next day to restore the tROAS to pre-frost levels so that bids don’t remain too high after the spike in battery sales has passed.

The beauty of scripts is that I’ve given you a working set of code that can be the basis of all these enhancements.

All the documentation for the new scripts experience can be found here.

Conclusion

It’s exciting to see Google once again investing in Google Ads scripts, enabling advertisers to automate their most time-consuming tasks even when using modern bid management techniques.

Grab the full code and try the script from here.

More resources:


Featured Image: Pepgooner/Shutterstock




Source link

Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address

SEO

What Is Schema Markup & Why Is It Important For SEO?

Published

on

By

What Is Schema Markup & Why Is It Important For SEO?

Schema.org is a collection of vocabulary (or schemas) used to apply structured data markup to web pages and content. Correctly applying schema can improve SEO outcomes through rich snippets.

Structured data markup is translated by platforms such as Google and Microsoft to provide enhanced rich results (or rich snippets) in search engine results pages or emails. For example, you can markup your ecommerce product pages with variants schema to help Google understand product variations.

Schema.org is an independent project that has helped establish structured data consistency across the internet. It began collaborating with search engines such as Google, Yahoo, Bing, and Yandex back in 2011.

The Schema vocabulary can be applied to pages through encodings such as RDFa, Microdata, and JSON-LD. JSON-LD schema is preferred by Google as it is the easiest to apply and maintain.

Schema is not a ranking factor.

However, your webpage becomes eligible for rich snippets in SERPs only when you use schema markup. This can enhance your search visibility and increase CTR on your webpage from search results.

Schema can also be used to build a knowledge graph of entities and topics. Using semantic markup in this way aligns your website with how AI algorithms categorize entities, assisting search engines in understanding your website and content.

This means that search engines should have additional information to help them figure out what the webpage is about.

You can even link your entities directly to sites like Wikipedia or Google’s knowledge graph to build explicit connections. Using Schema this way can have positive SEO results, according to Martha van Berkel, CEO of Schema App:

By helping search engines understand content, you are assisting them in saving resources (especially important when you have a large website with millions of pages) and increasing the chances for your content to be interpreted properly and ranked well. While this may not be a ranking factor directly, Schema helps your SEO efforts by giving search engines the best chance of interpreting your content correctly, giving users the best chance of discovering it.

Listed above are some of the most popular uses of schema, which are supported by Google and other search engines.

You may have an object type that has a schema.org definition but is not supported by search engines.

In such cases, it is advised to implement them, as search engines may start supporting them in the future, and you may benefit from them as you already have that implementation.

Google recommends JSON-LD as the preferred format for structured data. Microdata is still supported, but JSON-LD schema is recommended.

In certain circumstances, it isn’t possible to implement JSON-LD schema due to website technical infrastructure limitations such as old content management systems). In these cases, the only option is to markup HTML via Microdata or RDFa.

You can now mix JSON-LD and Microdata formats by matching the @id attribute of JSON-LD schema with the itemid attribute of Microdata schema. This approach helps reduce the HTML size of your pages.

For example, in a FAQ section with extensive text, you can use Microdata for the content and JSON-LD for the structured data without duplicating the text, thus avoiding an increase in page size. We will dive deeper into this below in the article when discussing each type in detail.

JSON-LD encodes data using JSON, making it easy to integrate structured data into web pages. JSON-LD allows connecting different schema types using a graph with @ids, improving data integration and reducing redundancy.

Let’s look at an example. Let’s say that you own a store that sells high-quality routers. If you were to look at the source code of your homepage, you would likely see something like this:

Once you dive into the code, you’ll want to find the portion of your webpage that discusses what your business offers. In this example, that data can be found between the two

tags.

The following JSON-LD formatted text will markup the information within that HTML fragment on your webpage, which you may want to include in your webpage’s

section.



This snippet of code defines your business as a store via the attribute"@type": "Store".

Then, it details its location, contact information, hours of operation from Monday to Saturday, and different operational hours for Sunday.

By structuring your webpage data this way, you provide critical information directly to search engines, which can improve how they index and display your site in search results. Just like adding tags in the initial HTML, inserting this JSON-LD script tells search engines specific aspects of your business.

Let’s review another example of WebPage schema connected with Organization and Author schemas via @id. JSON-LD is the format Google recommends and other search engines because it’s extremely flexible, and this is a great example.



In the example:

  • Website links to the organization as the publisher with @id.
  • The organization is described with detailed properties.
  • WebPage links to the WebSite with isPartOf.
  • NewsArticle links to the WebPage with isPartOf, and back to the WebPage with mainEntityOfPage, and includes the author property via @id.

You can see how graph nodes are linked to each other using the"@id"attribute. This way, we inform Google that it is a webpage published by the publisher described in the schema.

The use of hashes (#) for IDs is optional. You should only ensure that different schema types don’t have the same ID by accident. Adding custom hashes (#) can be helpful, as it provides an extra layer of insurance that they will not be repeated.

You may wonder why we use"@id"to connect graph nodes. Can’t we just drop organization, author, and webpage schemas separately on the same page, and it is intuitive that those are connected?

The issue is that Google and other search engines cannot reliably interpret these connections unless explicitly linked using @id.

Adding to the graph additional schema types is as easy as constructing Lego bricks. Say we want to add an image to the schema:

{
   "@type": "ImageObject",
   "@id": "https://www.example.com/#post-image",
   "url": "https://www.example.com/example.png",
   "contentUrl": "https://www.example.com/example.png",
   "width": 2160,
   "height": 1215,
   "thumbnail": [
     {
        "@type": "ImageObject",
        "url": "https://example.com/4x3/photo.jpg",
        "width": 1620,
        "height": 1215
      },
      {
        "@type": "ImageObject",
        "url": "https://example.com/16x9/photo.jpg",
        "width": 1440,
        "height": 810
      },
      {
        "@type": "ImageObject",
        "url": "https://example.com/1x1/photo.jpg",
        "width": 1000,
        "height": 1000
      }
    ]
}

As you already know from the NewsArticle schema, you need to add it to the above schema graph as a parent node and link via @id.

As you do that, it will have this structure:



Quite easy, isn’t it? Now that you understand the main principle, you can build your own schema based on the content you have on your website.

And since we live in the age of AI, you may also want to use ChatGPT or other chatbots to help you build any schema you want.

2. Microdata Schema Format

Microdata is a set of tags that aims to make annotating HTML elements with machine-readable tags much easier.

However, the one downside to using Microdata is that you have to mark every individual item within the body of your webpage. As you can imagine, this can quickly get messy.

Take a look at this sample HTML code, which corresponds to the above JSON schema with NewsArticle:

Our Company

Example Company, also known as Example Co., is a leading innovator in the tech industry.

Founded in 2000, we have grown to a team of 200 dedicated employees.

Our slogan is: "Innovation at its best".

Contact us at +1-800-555-1212 for customer service.

Our Founder

Our founder, Jane Smith, is a pioneer in the tech industry.

Connect with Jane on Twitter and LinkedIn.

About Us

This is the About Us page for Example Company.

Example News Headline

This is an example news article.

This is the full content of the example news article. It provides detailed information about the news event or topic covered in the article.

Author: John Doe. Connect with John on Twitter and LinkedIn.

If we convert the above JSON-LD schema into Microdata format, it will look like this:

Our Company

Example Company, also known as Example Co., is a leading innovator in the tech industry.

Founded in 2000-01-01, we have grown to a team of 200 dedicated employees.

Our slogan is: Innovation at its best.

Contact us at +1-800-555-1212 for Customer Service.

Example Company Logo

Connect with us on: Facebook, Twitter, LinkedIn

Our Founder

Our founder, Jane Smith, is a pioneer in the tech industry.

Connect with Jane on Twitter and LinkedIn.

About Us

This is the About Us page for Example Company.

Example News Headline

This is an example news article.

This is the full content of the example news article. It provides detailed information about the news event or topic covered in the article.

Author:

Example image

This example shows how complicated it becomes compared to JSON-LD since the markup is spread over HTML. Let’s understand what is in the markup.

You can see

tags like:


By adding this tag, we’re stating that the HTML code contained between the

blocks identifies a specific item.

Next, we have to identify what that item is by using the ‘itemtype’ attribute to identify the type of item (Person).


An item type comes in the form of a URL (such as https://schema.org/Person). Let’s say, for example, you have a product you may use http://schema.org/Product.

To make things easier, you can browse a list of item types here and view extensions to identify the specific entity you’re looking for. Keep in mind that this list is not all-encompassing but only includes ones that are supported by Google, so there is a possibility that you won’t find the item type for your specific niche.

It may look complicated, but Schema.org provides examples of how to use the different item types so you can see what the code is supposed to do.

Don’t worry; you won’t be left out in the cold trying to figure this out on your own!

If you’re still feeling a little intimidated by the code, Google’s Structured Data Markup Helper makes it super easy to tag your webpages.

To use this amazing tool, just select your item type, paste in the URL of the target page or the content you want to target, and then highlight the different elements so that you can tag them.

3. RDFa Schema Format

RDFa is an acronym for Resource Description Framework in Attributes. Essentially, RDFa is an extension to HTML5 designed to aid users in marking up structured data.

RDFa isn’t much different from Microdata. RDFa tags incorporate the preexisting HTML code in the body of your webpage. For familiarity, we’ll look at the same code above.

The HTML for the same JSON-LD news article will look like:

vocab="https://schema.org/" typeof="WebSite" resource="https://www.example.com/#website">

Our Company

Example Company, also known as Example Co., is a leading innovator in the tech industry.

Founded in 2000-01-01, we have grown to a team of 200 dedicated employees.

Our slogan is: Innovation at its best.

Contact us at +1-800-555-1212 for Customer Service.

https://www.example.com Example Company Logo

Connect with us on: Facebook, Twitter, LinkedIn

Our Founder

Our founder, Jane Smith, is a pioneer in the tech industry.

Connect with Jane on Twitter and LinkedIn.

About Us

This is the About Us page for Example Company.

https://www.example.com/about

Example News Headline

This is an example news article.

This is the full content of the example news article. It provides detailed information about the news event or topic covered in the article.

Author: John Doe Profile Twitter LinkedIn

Example image

Unlike Microdata, which uses a URL to identify types, RDFa uses one or more words to classify types.

vocab=”http://schema.org/” typeof=”WebPage”>

If you wish to identify a property further, use the ‘typeof’ attribute.

Let’s compare JSON-LD, Microdata, and RDFa side by side. The @type attribute of JSON-LD is equivalent to the itemtype attribute of Microdata format and the typeof attribute in RDFa. Furthermore, the propertyName of JSON-LD attribute would be the equivalent of the itemprop and property attributes.

Attribute Name JSON-LD Microdata RDFa
Type @type itemtype typeof
ID @id itemid resource
Property propertyName itemprop property
Name name itemprop=”name” property=”name”
Description description itemprop=”description” property=”description”

For further explanation, you can visit Schema.org to check lists and view examples. You can find which kinds of elements are defined as properties and which are defined as types.

To help, every page on Schema.org provides examples of how to apply tags properly. Of course, you can also fall back on Google’s Structured Data Testing Tool.

4. Mixing Different Formats Of Structured Data With JSON-LD

If you use JSON-LD schema but certain parts of pages aren’t compatible with it, you can mix schema formats by linking them via @id.

For example, if you have live blogging on the website and a JSON-LD schema, including all live blogging items in the JSON schema would mean having the same content twice on the page, which may increase HTML size and affect First Contentful Paint and Largest Contentful Paint page speed metrics.

You can solve this either by generating JSON-LD dynamically with JavaScript when the page loads or by marking up HTML tags of live blogging via the Microdata format, then linking to your JSON-LD schema in the head section via “@id“.

Here is an example of how to do it.

Say we have this HTML with Microdata markup with itemid="https://www.example.com/live-blog-page/#live-blog"

Explore the biggest announcements from DevDay

1:45 PM ET Nov 6, 2023

OpenAI is taking the first step in gradual deployment of GPTs – tailored ChatGPT for a specific purpose – for safety purposes.

1:44 PM ET Nov 6, 2023

ChatGPT now uses GPT-4 turbo with current knowledge.

It also knows which tool to choose for a task with GPT-4 All Tools.

1:43 PM ET Nov 6, 2023

Microsoft CEO Satya Nadella joined Altman to announce deeper partnership with OpenAI to help developers bring more AI advancements.

We can link to it from the sample JSON-LD example we had like this:



If you copy and paste HTML and JSON examples underneath in the schema validator tool, you will see that they are validating properly.

The schema validator does validate the above example.The schema validator does validate the above example.

The SEO Impact Of Structured Data

This article explored the different schema encoding types and all the nuances regarding structured data implementation.

Schema is much easier to apply than it seems, and it’s a best practice you must incorporate into your webpages. While you won’t receive a direct boost in your SEO rankings for implementing Schema, it can:

  • Make your pages eligible to appear in rich results.
  • Ensure your pages get seen by the right users more often.
  • Avoid confusion and ambiguity.

The work may seem tedious. However, given time and effort, properly implementing Schema markup is good for your website and can lead to better user journeys through the accuracy of information you’re supplying to search engines.


Image Credits

Featured Image: Paulo Bobita
Screenshot taken by author

 

Read more:

VIP CONTRIBUTOR
Chuck Price

Founder at Measurable SEO

Looking for a Content Marketing Solution to Increase Traffic and Revenue? I’m the founder of Measurable SEO and former COO ...

Advanced Technical SEO: A Complete Guide



Source link

Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address
Continue Reading

SEO

Gen Z Ditches Google, Turns To Reddit For Product Searches

Published

on

By

In this photo illustration, the Reddit logo is displayed on a smartphone screen.

A new report from Reddit, in collaboration with GWI and AmbassCo, sheds light on the evolving search behaviors of Generation Z consumers.

The study surveyed over 3,000 internet users across the UK, US, and Germany, highlighting significant changes in how young people discover and research products online.

Here’s an overview of key findings and the implications for marketers.

Decline In Traditional Search

The study found that Gen Z uses search engines to find new brands and products less often.

That’s because they shop online differently. They’re less interested in looking for expert reviews or spending much time searching for products.

There are also frustrations with mobile-friendliness and complex interfaces on traditional search platforms.

Because of this, traditional SEO strategies might not work well for reaching younger customers.

Takeaway

Companies trying to reach Gen Z might need to try new methods instead of just focusing on being visible on Google and other search engines.

Rise Of Social Media Discovery

Screenshot from Reddit study titled: “From search to research: How search marketers can keep up with Gen Z.”, June 2024.

Gen Z is increasingly using social media to find new brands and products.

The study shows that Gen Z has used social media for product discovery 36% more frequently since 2018.

This change is affecting how young people shop online. Instead of searching for products, they expect brands to appear in their social media feeds.

1719123963 547 Gen Z Ditches Google Turns To Reddit For Product SearchesScreenshot from Reddit study titled: “From search to research: How search marketers can keep up with Gen Z.”, June 2024.

Because of this, companies trying to reach young customers need to pay more attention to how they present themselves on social media.

Takeaway

To succeed at marketing to Gen Z, businesses will likely need to focus on two main things:

  1. Ensure that your content appears more often in social media feeds.
  2. Create posts people want to share and interact with.

Trust Issues With Influencer Marketing

Even though more people are finding products through social media, the report shows that Gen Z is less likely to trust what social media influencers recommend.

These young shoppers often don’t believe in posts that influencers are paid to make or products they promote.

Instead, they prefer to get information from sources that feel more real and are driven by regular people in online communities.

Takeaway

Because of this lack of trust, companies must focus on being genuine and building trust when they try to get their websites to appear in search results or create ads.

Some good ways to connect with these young consumers might be to use content created by regular users, encourage honest product reviews, and create authentic conversations within online communities.

Challenges With Current Search Experiences

The research shows that many people are unhappy with how search engines work right now.

More than 60% of those surveyed want search results to be more trustworthy. Almost half of users don’t like looking through many search result pages.

Gen Z is particularly bothered by inaccurate information and unreliable reviews.

1719123963 785 Gen Z Ditches Google Turns To Reddit For Product SearchesScreenshot from Reddit study titled: “From search to research: How search marketers can keep up with Gen Z.”, June 2024.

Takeaway

Given the frustration with search quality, marketers should prioritize creating accurate, trustworthy content.

This can help build brand credibility, leading to more direct visits.

Reddit: A Trusted Alternative

The report suggests that Gen Z trusts Reddit when looking up products—it’s their third most trusted source, after friends and family and review websites.

1719123963 403 Gen Z Ditches Google Turns To Reddit For Product SearchesScreenshot from Reddit study titled: “From search to research: How search marketers can keep up with Gen Z.”, June 2024.

Young users like Reddit because it’s community-based and provides specific answers to users’ questions, making it feel more real.

It’s worth noting that this report comes from Reddit itself, which probably influenced why it’s suggesting its own platform.

Takeaway

Companies should focus more on being part of smaller, specific online groups frequented by Gen Z.

That could include Reddit or any other forum.

Why SEJ Cares

As young people change how they look for information online, this study gives businesses important clues about connecting with future customers.

Here’s what to remember:

  • Traditional search engine use is declining among Gen Z.
  • Social media is increasingly vital for product discovery.
  • There’s growing skepticism towards influencer marketing.
  • Current search experiences often fail to meet user expectations.
  • Community-based platforms like Reddit are gaining trust.

Featured Image: rafapress/Shutterstock

Source link

Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address
Continue Reading

SEO

Google Clarifies Organization Merchant Returns Structured Data

Published

on

By

Google updates organization structured data for merchant returns

Google quietly updated their organization structured data documentation in order to clarify two points about merchant returns in response to feedback about an ambiguity in the previous version.

Organization Structured Data and Merchant Returns

Google recently expanded their Organization structured data so that it could now accommodate a merchant return policy. The change added support for adding a sitewide merchant return policy.

The original reason for adding this support:

“Adding support for Organization-level return policies

What: Added documentation on how to specify a general return policy for an Organization as a whole.

Why: This makes it easier to define and maintain general return policies for an entire site.”

However that change left unanswered about what will happen if a site has a sitewide return policy but also has a different policy for individual products.

The clarification applies for the specific scenario of when a site uses both a sitewide return policy in their structured data and another one for specific products.

What Takes Precedence?

What happens if a merchant uses both a sitewide and product return structured data? Google’s new documentation states that Google will ignore the sitewide product return policy in favor of a more granular product-level policy in the structured data.

The clarification states:

“If you choose to provide both organization-level and product-level return policy markup, Google defaults to the product-level return policy markup.”

Change Reflected Elsewhere

Google also updated the documentation to reflect the scenario of the use of two levels of merchant return policies in another section that discusses whether structured data or merchant feed data takes precedence. There is no change to the policy, merchant center data still takes precedence.

This is the old documentation:

“If you choose to use both markup and settings in Merchant Center, Google will only use the information provided in Merchant Center for any products submitted in your Merchant Center product feeds, including automated feeds.”

This is the same section but updated with additional wording:

“If you choose to use both markup (whether at the organization-level or product-level, or both) and settings in Merchant Center, Google will only use the information provided in Merchant Center for any products submitted in your Merchant Center product feeds, including automated feeds.”

Read the newly updated Organization structured data documentation:

Organization (Organization) structured data – MerchantReturnPolicy

Featured Image by Shutterstock/sutlafk

Source link

Keep an eye on what we are doing
Be the first to get latest updates and exclusive content straight to your email inbox.
We promise not to spam you. You can unsubscribe at any time.
Invalid email address
Continue Reading

Trending