Connect with us

MARKETING

10 Ways to Use AI for Better Ads

Published

on

10 Ways to Use AI for Better Ads

In our recent post about OpenAI’s ChatGPT, we unpacked what the tool is and how it works, and why we don’t see its popularity as a threat to search engines like Google. In this post, we’ll be diving further into the OpenAI Playground, and how PPC marketers can use that tool along with ChatGPT to save time on research, ideation, execution, and more.

The Playground is a basic UI built on top of OpenAI’s API. OpenAI has recently added ChatGPT to their API. When accessing ChatGPT through this UI, users have the ability to customize the model being used for each query (or continuation of the “conversation”) as they progress through their work.
 

How to Write ChatGPT Prompts

 
When working with tools like ChatGPT, it’s important to be as clear as possible in what you ask, and how you ask it. As you write prompts for ChatGPT to work with in retrieving and displaying the information you need, remember that you are giving instructions in a more direct way than you might if conversing with a colleague.

While another person may have contextual insight into what you’re really looking for with your question, tools like ChatGPT take language more literally, tailoring their response to the information you explicitly provide in your request.

ChatGPT will consider every element of your ask, so don’t give generic prompts. The more information you provide the tool in your prompt, the better it will be able to generate what you’re looking for in its response.

Example: Let’s assume you’re using ChatGPT for dinner inspiration…

  • Generic prompt (least likely to return what you’re looking for): Give me 10 recipe ideas for a home-cooked dinner
  •  

  • Slightly better prompt: Give me 10 recipe ideas for a home-cooked dinner with squash as the primary ingredient
  •  

  • Even better prompt: Give me 10 recipe ideas for a vegetarian home-cooked dinner that I can make in an air fryer in 20 minutes or less with squash as the primary ingredient

See here and the examples below for more information and inspiration on crafting strong prompts.
 

How to Start Using the OpenAI Playground for PPC Marketing

 

To get started with the OpenAI Playground, create an account using your personal email address at https://platform.openai.com/. Once you’re logged in, navigate to the Playground page to access the interface and begin making requests.

screenshot of open ai playground

The right-hand sidebar provides some options for different modes and GPT submodels, as well as Codex models, which are primarily used for generating code. The Complete mode is selected by default, along with the text-davinci-003 model. The other models within the “Complete” mode are typically faster and cheaper but are also less advanced, so they may be viable alternatives depending on the nature of your needs. ChatGPT can be accessed via the Chat mode and is what we used for the examples below.
 

OpenAI Playground Tokens and Settings

The billing model for using this service is constructed around the concept of tokens. Each new user gets $18 of free credit (900K tokens) that can be used during their first 3 months from sign up; after that, it’s $0.02 for every 1,000 tokens.

There is a token counter in the footer of the Playground display which can help you keep track of how many tokens you are using. 1 token is approximately 4 characters (or 0.75 words), with token usage measured against both your prompts and the responses.

See also  Google Politics Ads Now Must Be Always Visible, Sufficient Size & Similar Tone

You can limit the number of tokens that can be used in a response by toggling the Maximum length slider on the right hand sidebar, which is set to a 256-token cap by default. If you make an inquiry that requires an elaborate response, you may see the response get cut off before completion; in this case, it may be helpful to increase the Maximum length.

There is a maximum of 4,000 tokens that can be used in a single “request” (single session), i.e. a series of questions within the same Playground. Once you’ve hit that limit, all you need to do is delete your earlier prompt questions and answers, or save them as a “preset” before moving on to a new prompt.

open ai playground screenshot with arrow highlighting button to save your preset

Note: The use of tokens is required in the OpenAI Playground, but not when using ChatGPT natively. As of the time of this writing, ChatGPT is still free to use. A paid version of ChatGPT with advanced features and benefits is also available—ChatGPT Plus.
 

OpenAI Playground and ChatGPT Temperature

open ai playground screenshot highlighting where you can adjust the temperature

The Temperature setting controls randomness; lowering the temperature results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive. For most PPC purposes, we recommend a temperature range of 0.6-0.8 as optimal.
 

10 Ways PPC Marketers Can Use GPT to Improve Workflow Efficiency

 

“In terms of use cases, there are many different ways in which people working in all industries, and all fields of expertise, can lean on tools like ChatGPT and the OpenAI API to improve their efficiency and automate certain redundant tasks. This technology can help with smaller, repetitive tasks, such as breaking down a long document into a bullet point summary. However, when it comes to critical thinking and understanding the implications of things, I would be very cautious about over-relying on AI.”

Portrait of Josh O'Donnell
Josh O’Donnell, Sr. Strategist, Paid Search at Tinuiti

A couple of important things to consider before diving into our examples below:

  1. ChatGPT/GPT language models training data cuts off in 2021. They do not have any knowledge of current events, and cannot accurately respond to questions about such topics. ChatGPT is not aware of things like who won the big game last night; it is not even aware of what day it is.
  2.  

  3. ChatGPT/GPT language models do not have access to the internet or any other kind of external data retrieval; they can only answer questions based on the knowledge acquired from their training data. They cannot verify facts or provide references, only generate responses based on their own internal knowledge and logic.

 

1. Keyword Research

Whether you work on the Paid Search side of marketing, or the organic side, you know how important (and time-consuming) thorough keyword research can be. One of the most important rules of marketing is to know your audience—which includes knowing what they want, and how they search for it—and the OpenAI Playground can help you find those answers faster.

Sample Scenario:

You’re just getting started building a new PPC campaign for a client that sells running shoes. To kick off your initial keyword research, you want to get an idea of which related keywords are being searched most often. You want a Top 20 keyword list, and GPT can generate a list for you to help you get started.

See also  How to Optimize Videos for YouTube Search

The prompt: Provide me with a list of 20 running shoe keywords for google ads, list them in descending order based on expected search volume in the United States.

The result:

screenshot showing how open ai playground can help with keyword research

Note that since OpenAI enables you to continue the “conversation” beyond your first query, we also asked it where it got the returned information from (above photo); it’s always important to consider the source when relying on AI-generated responses. This is a good example of why it’s important to take the outputs with a grain of salt, using them as inspiration to get you started, but not the finished product.
 

2. Competitor Research

Comprehensive competitor research and analysis is a crucial part of a marketer’s job, helping inform and guide their campaigns. However, just like keyword research, this is also an ongoing, time-consuming process.

When you work in a complex space—or your products or services are part of different spaces—it can sometimes feel overwhelming to assure you’re accounting for everything and everyone. The OpenAI Playground can help make short work of initial research in a variety of ways.

Below, we showcase the results provided by three different prompts aimed at unpacking competitor insights instantly…

Sample One: Ask for a list of top US competitors ranked largest to smallest with accompanying website URLs to get ideas for custom audiences, messaging, and product positioning.

screenshot showing the results when asking open ai tool for a list of top running shoe companies in US ranked largest to smallest with website URL

Sample Two: Ask objective questions about your competitor and their product.

screenshot showing results when asking open ai playground to describe advantages of a competitor product compared to another product, including which is more geared toward price-conscious consumers

Sample Three: Ask about pain points for competitor products, and use that info to inform your own product messaging & marketing strategies.

example of using open ai to uncover competitor pain points
 

3. Generate Ad Copy

In the below examples, we used the URL of the ad’s landing page to help inform the suggestions from ChatGPT, providing character limits in our prompt to help direct the output. If your original result doesn’t meet your expectations, continue to sculpt with additional follow-up prompts. GPT cannot access these web pages in real-time, but it can use the context from the URL structure to inform the output.

example of using open ai playground to help with ad copy headline ideas

example of using open ai playground for help with writing google ads descriptions

“It’s more of a utilitarian thing, where you provide the tool with the data, and ask it to manipulate that data for a better output. One example is to provide it with a web page, and ask it to generate some ad copy based on the URL text; it can provide fifteen or twenty options within seconds. I would never recommend simply taking those headlines and pasting them into an ad, but you can now start off your project with a list that you or a teammate can garner inspiration from, and strategically refine or tweak to fully optimize. This gives the practitioner more time to spend on critical thinking, with ChatGPT taking away the more mundane elements of the task.”

Josh O’Donnell, Sr. Strategist, Paid Search at Tinuiti

The copy itself should be quality, but the important aspect of parity between what you’re saying on the ad and what’s on the page can be efficiently solved for.
 

4. Translations of Copy & Headlines

In the example below, we asked ChatGPT to translate the 5 English language ad copy options generated above into Spanish. Additional options currently available include French and Japanese translations.

See also  The Best of Whiteboard Friday 2022

example of using open ai playground for copy translation
 

5. Answer Questions on Demand

Similar to ChatGPT, the OpenAI Playground can also be used for Q&A purposes. Just remember that answers can only be generated based on the tool’s current knowledge.

screenshot of Q&A information from open ai website

Source: https://platform.openai.com/examples/default-qa

This can be especially helpful during calls with clients when you need a fast and simple answer to keep the conversation moving forward.
 

6. Simplify Complex Concepts

When talking about digital marketing with other practitioners, we know our audience ‘speaks the same language’ and certain questions, concepts, or outcomes need no further explanation. However, those same complexities aren’t always as easy to communicate to newer team members or clients.

Even when our day-to-day contacts are digital savvy, they often have to convey information to those higher up the chain in their organization who might not be as familiar with the lingo, or even why certain things they’re highlighting matter.

For scenarios like these, OpenAI’s Summarize for a 2nd grader feature can prove especially helpful. Once you have the foundation laid out, you can add more color and context to paint the fuller picture without worrying the basics would be glazed over.
 

7. Generate Product Descriptions & Names

Working with accurate, well-optimized product names and descriptions is one of the most essential elements of effective marketing. Strong, descriptive names and product information help search engines and users alike in uncovering the items that will be most relevant to their needs.

screenshot from open ai website showcasing how their product name generator works

Source: https://platform.openai.com/examples/default-product-name-gen

While names and descriptions will always require a human touch for proper refinement, tools like ChatGPT and the OpenAI Playground can provide a great starting point to build from.
 

8. Parse Unstructured Data

The OpenAI Playground makes it easy to organize long-form text into a table format. Simply specify a desired structure, provide a few examples to work from, and enjoy the time saved.

screenshot from open ai website showing a prompt for parsing unstructured data

Source: https://platform.openai.com/examples/default-parse-data

screenshot from open ai website showing a response from a prompt asking for structured data

Source: https://platform.openai.com/examples/default-parse-data

 

9. Call Summaries & Follow-Ups

Call summaries are an important aspect of keeping organized and ensuring everyone working on a project is clued into plans and discussions, even if they weren’t part of the original calls. Putting together these comprehensive, valuable recaps can sometimes take as much time as the call itself, but GPT can help.

Below, we asked GPT to write a follow-up email based on a call summary.

screenshot of response when asking GPT to write follow-up email based on call summary
 

10. Convert text from first-person to third-person

We have found this feature especially helpful for turning our own notes into actionable steps someone can follow when shared. For example, if you want to share steps for completing a process with a team member or client, you can type naturally using “I” language to convey those directions. You can then quickly convert the text to third-person, adjusting as necessary for optimal clarity.

Screenshot from Open AI website showing how third-person converter works

Source: https://platform.openai.com/examples/default-third-person

 

Conclusion

 
The capabilities of advanced tools like OpenAI’s Playground and ChatGPT can make short work of mundane tasks, help quickly generate ideas and direction, and ultimately save us all time to focus on the elements of marketing and advertising where our expertise and strategic insights can truly shine. If you’re interested in more under-the-hood information about how ChatGPT works, check out Stephen Wolfram’s breakdown of ChatGPT. Also see here for additional application options, or reach out today to learn more about how our Paid Search team can bring your PPC advertising results to the next level!
 

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

MARKETING

The Secret to Grow Your Business

Published

on

Social Media for E-Commerce: The Secret to Grow Your Business

In today’s digital world where over 50% of the world’s population (Hootsuite) is on social media, leveraging social media for e-commerce marketing is a great idea if you want to grow your business.

Consider this:

According to a 2021 Sprout Social’s the State of Social Media Investment survey, 34% of online consumers say they use social media to learn about products, services, and brands.

In the same survey, 33% said they use social media to discover new products, services, and brands.

Besides, according to Hootsuite’s Global State of Digital 2022 report mentioned above, users spend 2 hours and 27 minutes on average daily on social media:

1685505933 232 The Secret to Grow Your Business

What’s more?

In 2022, global sales via social media were estimated at $992 billion. Besides, social commerce sales are forecasted to reach approximately $2.9 trillion by 2026.

1685505934 837 The Secret to Grow Your Business

Seeing all these statistics, it’s clear that using social media for e-commerce is a great idea for promoting your business online.

Still not convinced?

Here are 4 reasons why you should use social media for e-commerce.

1. Helps You Drive Website Traffic

Using social commerce is a great idea if you want to drive traffic to your website.

As mentioned in the statistics above, consumers are using social media to learn about brands and discover new products and services.

E-commerce brands can leverage this huge social audience to drive more traffic to their websites.

See also  5 Lessons From the Content Marketing Awards Project of the Year Finalists

The good news is that social media for e-commerce is affordable. You can even drive traffic to your e-commerce website for free.

Here are handy social media tactics to drive traffic to your e-commerce website:

  • Research your e-commerce target audience.
  • Choose the right social media platforms that are relevant to your e-commerce business.
  • Post user-generated content.
  • Post valuable content consistently at the right time.
  • Collaborate with influencers.
  • Target your e-commerce audience with social media ads and PPC ads.
  • Utilize your social media and e-commerce data.
  • Follow the 80/20 rule.

2. Helps Create Brand Awareness

Social media is one of the most powerful channels for generating buzz around your brand, products, and services while managing business expenses, effectively track finances, and curtailing them thanks to a large number of users it commands.

Right social media strategy help you to increase the brand value and traffic on your ecommerce website.

According to a 2022 State of Inbound Marketing Trends report by HubSpot, 39% of marketers say their primary goal in using social media is to increase brand awareness:

1685505934 243 The Secret to Grow Your Business

By creating a robust social media marketing strategy, you can boost the visibility of your e-commerce business, thereby increasing brand recognition.

Here are practical tips to build brand awareness for your e-commerce store using social media:

  • Ensure you’re using social media networks that your target customers are using.
  • Create an advertising budget and stick to it to handle business finance better.
  • Demonstrate your brand’s personality and values.
  • Deliver valuable content consistently and engage with your audiences.
  • Take advantage of trends and breaking news.
  • Always track and measure progress.
See also  Google FINALLY Announces Plans to Allow Ads for [Some] CBD Products

3. Improves Conversions

The US retail social commerce sales are projected to reach $79.64 billion by 2025:

1685505934 910 The Secret to Grow Your Business

There’s no doubt that social media marketing can help e-commerce brands improve their conversion rates.

Thus, creating a powerful social media strategy can help you improve conversions for your e-commerce business. In fact, with features like smart links, you can easily drive B2B sales on platforms like LinkedIn too.

To help boost their conversions, Walmart partnered with a US singer Jason Derulo in a live shopping event for which the singer shared a link on Twitter.

1685505934 210 The Secret to Grow Your Business

Here is how to use social media to boost e-commerce conversions:

  • Share user-generated content to empower your customers.
  • Improve conversions with influencer marketing.
  • Use trending and relevant hashtags.
  • Drive authentic engagement.
  • Build deeper trust and loyalty with your audience.
  • Make it easier for customers to shop for products directly on social media.
  • Leverage social media analytics.

4. Provide Customer Service

Take a look at how lululemon responded to a subscriber’s question on Twitter.

The e-commerce brand provided the subscriber with a means to reach out to customer support. And they did so quickly too.

1685505935 345 The Secret to Grow Your Business

These days, the most popular social media platforms allow customers to purchase products directly without leaving the platform. These platforms work as the most digital marketing tools for the marketers and business owners.

See also  How To Launch Your First Google Ads Remarketing Campaign

This makes social media an important platform for customer service for your e-commerce business.

Here are useful tips to use social media for e-commerce customer support:

  • Reply to all questions, comments, concerns, and feedback.
  • Know what to address in public or private.
  • Address crucial matters as soon as possible.
  • Respond positively to both negative and positive feedback.

Conclusion

There are many incredible benefits of using social media for e-commerce marketing.

So, if you’re not using social media to promote your brand, products, and services online then you’re missing out on a lot of huge business opportunities. In fact, you’re giving your competition the edge.

The key lies in leveraging the right social media marketing strategies and promoting your e-commerce store using them. The right combination can give your brand a lift. So, go ahead and start leveraging these strategies.

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

MARKETING

Mnemonic Content Strategy Framework Can Spark Conversations

Published

on

Mnemonic Content Strategy Framework Can Spark Conversations

I’m a sucker for mnemonics.

In fact, I remember how to spell it by “Me Nomics Except M nOt N In Case Spelling.”

OK, that’s a lie. But I daresay ChatGPT could never come up with that.

Anyway, one of my favorite idea-remembering devices comes from my hero Philip Kotler. He reduces his perfect definition of marketing to CCDVTP – Create and Communicate Value to a Target at a Profit.”

I lean on that mnemonic device when anyone asks about the best definition of marketing’s function in a business.

However, what makes a great mnemonic like CCDVTP is that each word the letter represents has something deeper behind it. So it’s not just six words – it’s six operating concepts with definitions made easier to remember by just remembering how the six words go together.

A mnemonic device for content strategy

I’ve written about the standard framework for developing or strengthening your content strategy. It’s one of the core modules of a CMI University course. It can be a lot to take in because the framework’s concepts and definitions need to be explained in varying levels of detail.

So, recently, I created a mnemonic device to use in my explanation – the 5 Cs: Coordination and Collaboration produce Content before Containers and make Channels measurable.

5Cs of #ContentStrategy: Coordination and Collaboration produce Content before Containers and make Channels measurable via @Robert_Rose @CMIContent. Click To Tweet

See also  7 Ways To Use Google Trends For SEO & Content Marketing

It works as a core or high-level definition of a content marketing strategy. But, like Kotler’s CCDVTP, it also lets me drill into the framework’s five concepts or pressure points. Let me explain:

Coordination

The primary purpose of a content strategy is to develop and manage core responsibilities and processes. In addition, they allow marketing to build and continually assess resource allocation, skill sets, and charters the marketing team needs to make content a business strength.

Most businesses that lack this C struggle with content as a repeatable or measurable approach. As I’ve said, content is everyone’s job in many businesses and no one’s strategy. A key element of a content strategy is a focus on building coordination into how ideas become content and ultimately generate business value.

Most businesses that lack coordination struggle with making #content a repeatable and measurable approach, says @Robert_Rose. Click To Tweet

Collaboration

In many businesses, content is developed in silos, especially with sales and marketing. Sometimes, it may be divided by channel – web, email, and sales teams don’t work together. In other cases, it may be by function – PR, sales, marketing, brand, and demand generation have different approaches.

Content is a team sport. The practitioners’ job is not to be good at content but to enable the business to be good at content. Scalability only happens through an effective, collaborative approach to transforming ideas into content and content into experiences.

See also  Bard and ChatGPT will ultimately make the search experience better

Content before containers

As marketers, you are trained to think container first and content second. You start with “I need a web page,” “I need an email,” or “I need a blog post.” Then, your next step is to create content specific to that container.

If you start with “I need a blog post” and then create the #content idea, you’re doing it wrong, says @Robert_Rose via @CMIContent. Click To Tweet

I can’t tell you how many big ideas I’ve seen trapped in the context of a blog post simply because that was how it was conceived. I’ve also seen the reverse – small ideas spun into an e-book or white paper because someone wanted that digital asset.

This pressure point requires reverse thinking about your business’ process to create content. The first step must be to create fully formed ideas (big and small) and then (and only then) figure out which containers and how many might be appropriate.

My test to see whether marketing teams put content before containers is to look at their request or intake form. Does it say, “What kind of content do you need?” and list options, such as email, white paper, e-book, and brochure?  Or does it say, “Please explain the idea or story you’d like to develop more fully?”

See also  43 TikTok Stats to Know in 2022

Channels

I purposely put channels last because they express the kind of content you create. Channels dictate how you ultimately reach the customers and how the customers will access your content. Which or how many of your content channels do you treat as a media company would?

Is your corporate blog truly centered on the audience, or is it centered on your product or brand? Is it a repository where you put everything from news about your product and how to use it to what to expect in the future and how other customers use your product?

What about your social media, website, newsletters, and thought leadership center? What is their purpose and editorial strategy? How do you evolve your content products as your audience changes as a media company does? Without a clear strategy for every channel, the measurement of content becomes guesswork at best.

When you examine your strategic approach to content, I hope the 5Cs mnemonic device helps you have those necessary conversations around coordination, collaboration, content before containers, and channels with the stakeholders in your business.

It’s your story. Tell it well.

Subscribe to workday or weekly CMI emails to get Rose-Colored Glasses in your inbox each week. 

HANDPICKED RELATED CONTENT:

Cover image by Joseph Kalinowski/Content Marketing Institute



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

MARKETING

The Moz Links API: An Introduction

Published

on

The Moz Links API: An Introduction

What exactly IS an API? They’re those things that you copy and paste long strange codes into Screaming Frog for links data on a Site Crawl, right?

I’m here to tell you there’s so much more to them than that – if you’re willing to take just a few little steps. But first, some basics.

What’s an API?

API stands for “application programming interface”, and it’s just the way of… using a thing. Everything has an API. The web is a giant API that takes URLs as input and returns pages.

But special data services like the Moz Links API have their own set of rules. These rules vary from service to service and can be a major stumbling block for people taking the next step.

When Screaming Frog gives you the extra links columns in a crawl, it’s using the Moz Links API, but you can have this capability anywhere. For example, all that tedious manual stuff you do in spreadsheet environments can be automated from data-pull to formatting and emailing a report.

If you take this next step, you can be more efficient than your competitors, designing and delivering your own SEO services instead of relying upon, paying for, and being limited by the next proprietary product integration.

GET vs. POST

Most APIs you’ll encounter use the same data transport mechanism as the web. That means there’s a URL involved just like a website. Don’t get scared! It’s easier than you think. In many ways, using an API is just like using a website.

As with loading web pages, the request may be in one of two places: the URL itself, or in the body of the request. The URL is called the “endpoint” and the often invisibly submitted extra part of the request is called the “payload” or “data”. When the data is in the URL, it’s called a “query string” and indicates the “GET” method is used. You see this all the time when you search:

https://www.google.com/search?q=moz+links+api <-- GET method 

When the data of the request is hidden, it’s called a “POST” request. You see this when you submit a form on the web and the submitted data does not show on the URL. When you hit the back button after such a POST, browsers usually warn you against double-submits. The reason the POST method is often used is that you can fit a lot more in the request using the POST method than the GET method. URLs would get very long otherwise. The Moz Links API uses the POST method.

Making requests

A web browser is what traditionally makes requests of websites for web pages. The browser is a type of software known as a client. Clients are what make requests of services. More than just browsers can make requests. The ability to make client web requests is often built into programming languages like Python, or can be broken out as a standalone tool. The most popular tools for making requests outside a browser are curl and wget.

We are discussing Python here. Python has a built-in library called URLLIB, but it’s designed to handle so many different types of requests that it’s a bit of a pain to use. There are other libraries that are more specialized for making requests of APIs. The most popular for Python is called requests. It’s so popular that it’s used for almost every Python API tutorial you’ll find on the web. So I will use it too. This is what “hitting” the Moz Links API looks like:

response = requests.post(endpoint, data=json_string, auth=auth_tuple)

Given that everything was set up correctly (more on that soon), this will produce the following output:

{'next_token': 'JYkQVg4s9ak8iRBWDiz1qTyguYswnj035nqrQ1oIbW96IGJsb2dZgGzDeAM7Rw==',
 'results': [{'anchor_text': 'moz',
              'external_pages': 7162,
              'external_root_domains': 2026}]}

This is JSON data. It’s contained within the response object that was returned from the API. It’s not on the drive or in a file. It’s in memory. So long as it’s in memory, you can do stuff with it (often just saving it to a file).

See also  Transitioning to GA4: Is this the Right Analytics Move for Your Team?

If you wanted to grab a piece of data within such a response, you could refer to it like this:

response['results'][0]['external_pages']

This says: “Give me the first item in the results list, and then give me the external_pages value from that item.” The result would be 7162.

NOTE: If you’re actually following along executing code, the above line won’t work alone. There’s a certain amount of setup we’ll do shortly, including installing the requests library and setting up a few variables. But this is the basic idea.

JSON

JSON stands for JavaScript Object Notation. It’s a way of representing data in a way that’s easy for humans to read and write. It’s also easy for computers to read and write. It’s a very common data format for APIs that has somewhat taken over the world since the older ways were too difficult for most people to use. Some people might call this part of the “restful” API movement, but the much more difficult XML format is also considered “restful” and everyone seems to have their own interpretation. Consequently, I find it best to just focus on JSON and how it gets in and out of Python.

Python dictionaries

I lied to you. I said that the data structure you were looking at above was JSON. Technically it’s really a Python dictionary or dict datatype object. It’s a special kind of object in Python that’s designed to hold key/value pairs. The keys are strings and the values can be any type of object. The keys are like the column names in a spreadsheet. The values are like the cells in the spreadsheet. In this way, you can think of a Python dict as a JSON object. For example here’s creating a dict in Python:

my_dict = {
    "name": "Mike",
    "age": 52,
    "city": "New York"
}

And here is the equivalent in JavaScript:

var my_json = {
    "name": "Mike",
    "age": 52,
    "city": "New York"
}

Pretty much the same thing, right? Look closely. Key-names and string values get double-quotes. Numbers don’t. These rules apply consistently between JSON and Python dicts. So as you might imagine, it’s easy for JSON data to flow in and out of Python. This is a great gift that has made modern API-work highly accessible to the beginner through a tool that has revolutionized the field of data science and is making inroads into marketing, Jupyter Notebooks.

Flattening data

But beware! As data flows between systems, it’s not uncommon for the data to subtly change. For example, the JSON data above might be converted to a string. Strings might look exactly like JSON, but they’re not. They’re just a bunch of characters. Sometimes you’ll hear it called “serializing”, or “flattening”. It’s a subtle point, but worth understanding as it will help with one of the largest stumbling blocks with the Moz Links (and most JSON) APIs.

Objects have APIs

Actual JSON or dict objects have their own little APIs for accessing the data inside of them. The ability to use these JSON and dict APIs goes away when the data is flattened into a string, but it will travel between systems more easily, and when it arrives at the other end, it will be “deserialized” and the API will come back on the other system.

Data flowing between systems

This is the concept of portable, interoperable data. Back when it was called Electronic Data Interchange (or EDI), it was a very big deal. Then along came the web and then XML and then JSON and now it’s just a normal part of doing business.

See also  5 Lessons From the Content Marketing Awards Project of the Year Finalists

If you’re in Python and you want to convert a dict to a flattened JSON string, you do the following:

import json

my_dict = {
    "name": "Mike",
    "age": 52,
    "city": "New York"
}

json_string = json.dumps(my_dict)

…which would produce the following output:

'{"name": "Mike", "age": 52, "city": "New York"}'

This looks almost the same as the original dict, but if you look closely you can see that single-quotes are used around the entire thing. Another obvious difference is that you can line-wrap real structured data for readability without any ill effect. You can’t do it so easily with strings. That’s why it’s presented all on one line in the above snippet.

Such stringifying processes are done when passing data between different systems because they are not always compatible. Normal text strings on the other hand are compatible with almost everything and can be passed on web-requests with ease. Such flattened strings of JSON data are frequently referred to as the request.

Anatomy of a request

Again, here’s the example request we made above:

response = requests.post(endpoint, data=json_string, auth=auth_tuple)

Now that you understand what the variable name json_string is telling you about its contents, you shouldn’t be surprised to see this is how we populate that variable:

 data_dict = {
    "target": "moz.com/blog",
    "scope": "page",
    "limit": 1
}

json_string = json.dumps(data_dict)

…and the contents of json_string looks like this:

'{"target": "moz.com/blog", "scope": "page", "limit": 1}'

This is one of my key discoveries in learning the Moz Links API. This is in common with countless other APIs out there but trips me up every time because it’s so much more convenient to work with structured dicts than flattened strings. However, most APIs expect the data to be a string for portability between systems, so we have to convert it at the last moment before the actual API-call occurs.

Pythonic loads and dumps

Now you may be wondering in that above example, what a dump is doing in the middle of the code. The json.dumps() function is called a “dumper” because it takes a Python object and dumps it into a string. The json.loads() function is called a “loader” because it takes a string and loads it into a Python object.

The reason for what appear to be singular and plural options are actually binary and string options. If your data is binary, you use json.load() and json.dump(). If your data is a string, you use json.loads() and json.dumps(). The s stands for string. Leaving the s off means binary.

Don’t let anybody tell you Python is perfect. It’s just that its rough edges are not excessively objectionable.

Assignment vs. equality

For those of you completely new to Python or programming in general, what we’re doing when we hit the API is called an assignment. The result of requests.post() is being assigned to the variable named response.

response = requests.post(endpoint, data=json_string, auth=auth_tuple)

We are using the = sign to assign the value of the right side of the equation to the variable on the left side of the equation. The variable response is now a reference to the object that was returned from the API. Assignment is different from equality. The == sign is used for equality.

# This is assignment:
a = 1  # a is now equal to 1

# This is equality:
a == 1  # True, but relies that the above line has been executed

The POST method

response = requests.post(endpoint, data=json_string, auth=auth_tuple)

The requests library has a function called post() that takes 3 arguments. The first argument is the URL of the endpoint. The second argument is the data to send to the endpoint. The third argument is the authentication information to send to the endpoint.

See also  7 Ways To Use Google Trends For SEO & Content Marketing

Keyword parameters and their arguments

You may notice that some of the arguments to the post() function have names. Names are set equal to values using the = sign. Here’s how Python functions get defined. The first argument is positional both because it comes first and also because there’s no keyword. Keyworded arguments come after position-dependent arguments. Trust me, it all makes sense after a while. We all start to think like Guido van Rossum.

def arbitrary_function(argument1, name=argument2):
    # do stuff

The name in the above example is called a “keyword” and the values that come in on those locations are called “arguments”. Now arguments are assigned to variable names right in the function definition, so you can refer to either argument1 or argument2 anywhere inside this function. If you’d like to learn more about the rules of Python functions, you can read about them here.

Setting up the request

Okay, so let’s let you do everything necessary for that success assured moment. We’ve been showing the basic request:

response = requests.post(endpoint, data=json_string, auth=auth_tuple)

…but we haven’t shown everything that goes into it. Let’s do that now. If you’re following along and don’t have the requests library installed, you can do so with the following command from the same terminal environment from which you run Python:

pip install requests

Often times Jupyter will have the requests library installed already, but in case it doesn’t, you can install it with the following command from inside a Notebook cell:

!pip install requests

And now we can put it all together. There’s only a few things here that are new. The most important is how we’re taking 2 different variables and combining them into a single variable called AUTH_TUPLE. You will have to get your own ACCESSID and SECRETKEY from the Moz.com website.

The API expects these two values to be passed as a Python data structure called a tuple. A tuple is a list of values that don’t change. I find it interesting that requests.post() expects flattened strings for the data parameter, but expects a tuple for the auth parameter. I suppose it makes sense, but these are the subtle things to understand when working with APIs.

Here’s the full code:

import json
import pprint
import requests

# Set Constants
ACCESSID = "mozscape-1234567890"  # Replace with your access ID
SECRETKEY = "1234567890abcdef1234567890abcdef"  # Replace with your secret key
AUTH_TUPLE = (ACCESSID, SECRETKEY)

# Set Variables
endpoint = "https://lsapi.seomoz.com/v2/anchor_text"
data_dict = {"target": "moz.com/blog", "scope": "page", "limit": 1}
json_string = json.dumps(data_dict)

# Make the Request
response = requests.post(endpoint, data=json_string, auth=AUTH_TUPLE)

# Print the Response
pprint(response.json())

…which outputs:

{'next_token': 'JYkQVg4s9ak8iRBWDiz1qTyguYswnj035nqrQ1oIbW96IGJsb2dZgGzDeAM7Rw==',
 'results': [{'anchor_text': 'moz',
              'external_pages': 7162,
              'external_root_domains': 2026}]}

Using all upper case for the AUTH_TUPLE variable is a convention many use in Python to indicate that the variable is a constant. It’s not a requirement, but it’s a good idea to follow conventions when you can.

You may notice that I didn’t use all uppercase for the endpoint variable. That’s because the anchor_text endpoint is not a constant. There are a number of different endpoints that can take its place depending on what sort of lookup we wanted to do. The choices are:

  1. anchor_text

  2. final_redirect

  3. global_top_pages

  4. global_top_root_domains

  5. index_metadata

  6. link_intersect

  7. link_status

  8. linking_root_domains

  9. links

  10. top_pages

  11. url_metrics

  12. usage_data

And that leads into the Jupyter Notebook that I prepared on this topic located here on Github. With this Notebook you can extend the example I gave here to any of the 12 available endpoints to create a variety of useful deliverables, which will be the subject of articles to follow.

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

en_USEnglish