Increase Your Discoverability With Keywords in Kontent
Tags: kenticokontent, content, keyword, discoverability
Published: 2020-03-24 05:10:53

You come up with an amazing idea for a piece of content. You spend the next few days, week or longer creating, editing, fine-tuning your content. Once complete, you publish it to your medium of choice and wait for the reviews or read counts to go up, but they never do.

You wonder what went wrong. Was the topic not that great of an idea? Are people not interested in the topic or am I just not as good of a writer as I thought I was? As a content creator, I feel your pain, as it's something I've been through and will continue go through in the future. Some of it might be true, as it is most times in my case 😋, but it is most likely a discoverability issue.

As I continue to create content across different mediums, live streaming, video on-demand and written articles, I'm learning discoverability is really what keeps a lot of  content from getting from getting viewed. So, what can you do to help ensure your article gets seen, or noticed? 

Think about when you visit a site like Medium, or YouTube, what's the first thing you do? You enter the topic you're wanting to know or learn about in the search bar, right? At least that's what I do. Then the platform suggests content based on the search terms you entered. So, how do you get the platform to suggest your content? Well, most platforms offer some sort of tagging mechanism you can use to identify the keywords which can be used to best categorize your content.

Figuring out these keywords is the next tricks, especially if you're not the original content creator. You could spend hours going through your content to identify those keywords, but I want to offer an alternative.

##Keyword Extractor

As part of our hackathon at our last DevRel reunion a few months ago, one of the teams worked on a keyword extractor to be used within Kentico Kontent. 

![Keyword extractor demo animated gif](https://dev-to-uploads.s3.amazonaws.com/i/h0joqbqfwsul32hp2vlu.gif)

The keyword extractor custom element gives creators and editors an automated way to generate keywords for an item based on it's content. It allows editors to remove selective keywords, refresh the list manually and use different keyword selection algorithms. One algorithm, a pure JavaScript implementation, uses the [rapid automatic keyword extraction](https://github.com/sleepycat/rapid-automated-keyword-extraction) (RAKE) algorithm. The other algorithm uses the [Microsoft Azure Text Analytics](https://azure.microsoft.com/en-us/services/cognitive-services/text-analytics/) API.

##Deploying

Before we can use the keyword extractor within Kentico Kontent, it must be deployed to a public host. If you're running through a proof of concept, or just looking to test out the keyword extractor, and not ready to go through the process of setting up a production environment to host the keyword extractor, fear not. 

One of the steps the team took was to reduce the time it takes to get started using the Keyword Extractor was to automate a quick deployment using [Netlify](https://www.netlify.com/). If you're not familiar with Netlify, it's an all-in-one platform for building, testing and deploying modern web projects. 

To deploy the project to Netlify, simply navigate to the deploying section in the [Keyword Extractor repository](https://github.com/Kentico/kontent-custom-element-keyword-extractor#deploying), click the "Deploy to Netlify" button and follow the instructions. Within 5 minutes, you'll have a fully deployed version of the Keyword Extractor.

![Deploying keyword extractor with Netlify](https://dev-to-uploads.s3.amazonaws.com/i/bfy38tn5q1izimz5h9tt.gif)

##Using the Keyword Extractor

To use the Keyword Extractor, a custom element will need to be added to the content type containing the content to be used. Instructions for adding the custom element can be found in the Kentico Kontent documentation. 

You will need 2 pieces of information to complete this step. 

* the URL where we deployed the code to in the above step
* a set of JSON parameters used to configure the Keyword Extractor
```{
    "elements": [
        "<codename of element to be used>"
    ],
    "azureKey": "<YOUR_AZURE_ACCESS_KEY>",
    "debug": true
}```

The "elements" are an array of the codenames for the elements containing the content to be searched for keywords. The "azureKey" is the API key for the Azure Text Analytics API and "debug" displays a debug panel on the content item used in troubleshooting. 

If you want to test the pure JavaScript implementation, remove "azureKey" from the JSON. If you do not want to show the debug panel, either set the value to "false",  or remove it from the JSON.

Once the custom element is added and configured, it is ready for use by the content editors.

##Wrap up

We've seen how we can save quite a bit of time in trying to figure out keywords to use for our content by setting up an automatic keyword extractor in Kentico Kontent. Now it's your turn to take these keywords and see how they can improve the discoverability of your content.