The Essential On-Page SEO Techniques for ecommerce Content

Even though content comes first, it is always important to write your articles with certain SEO techniques in mind to make sure that they are read in the first place. But, it is even more important that our content provides value. In this article, we’ll be going through a proper content strategy, as illustrated by Avinash Kaushik, then we’ll go over tricks for getting your on-page SEO techniques set up right for the content that you’ll be writing. 

A Better ecommerce Content Strategy

With that down, let’s get straight on to what proper blog content is. To do this, we’ll have to first imagine the persona of our audience. That is to say, what kind of person reads your blog? What are their needs, interests, common complaints? By targeting these topics more generally, you’ll have much greater success with your content. That is to say, we’ll be able to use this information to provide actual value with our content.

To understand this better, let’s refer to Kaushik’s analysis of company social media pages

Avinash Kaushik finds one key issue with many social media pages that are created by companies: they are narcissistic. He notices that often a company will use its social media accounts to exclusively post about themselves and their products. While this might be interesting for a few posts at a time, after a while, the content becomes stale and you stop engaging with the content.

You can imagine it another way:

He likens it to filling up your personal social media accounts with nothing but selfies. It’s off-putting. And the same goes for company pages. The best company social pages avoid this mistake by posting content that their audience finds value in. And often the kind of content that will succeed won’t even be in your niche. 

So what does this look like in action?

Say, for instance, you ran a website selling designer lamps for inside the home. The wrong thing to do is to post only about your lamps and your fictional company producing these lamps. The right thing to do would be to first determine the interests of your audience: what are their likes, dislikes; what causes they are for or against. In our case, we would find that our audience/customer persona is interested in home decor, DIY, and crafts. With this information, the right course of action is to post interesting content about any of the aforementioned topics. For instance, we could share posts about DIY planters or home decor. Note that they are not necessarily about lamps, yet they are valuable to the kind of people who are interested in purchasing designer lamps. Performing this social strategy strongly increases engagement and sharing. 

Avinash only talks about the benefits of this ideology in terms of social media, but it can also be easily applied in terms of company blogs and SEO content in general. 

A key component of an SEO strategy is on page content. And depending on the kind of product that you’re selling, the amount of interesting things you can write about that product can be limited. Often, companies opt to create a blog that simply serves as an expose of their operation. However, a blog intent on creating large amounts of organic traffic will have to post at least 2-3 times a week and have articles that are at least 800 words long (but, as we all know, 3000+ is best!). This can mean a lot of stale, unoriginal and boring posts.

So how can you maintain the quality of your “comtent” while increasing the frequency of your posts?

The answer is to adapt Avinash’s social media strategy to your blog strategy. That is, if your store sells apparel, the key to your blog strategy will not be to write only about your apparel, but to write for the kind of person who buys your apparel.

Take the following example:

You know that your target audience is interested in X, Y, and Z. You also know that people who like X and Y are the kind of people that buy Z. If you sell Z and only write about Z, you’re missing out on traffic from X and Y. That is, the search traffic from queries relating to X and Y will not be present.

Here’s a more concrete example: 

Let’s say that we’ve found out that your client persona for your apparel store is also interested in adventure tourism, diving and making kraft dinner for breakfast, then to attract our persona, we’ll write about those topics in our blog too. 

If the kind of person that buys your hats is interested in making kraft dinner for breakfast, then we want to be the website that writes the best post on the perfect breakfast kraft dinner.

The example above is a bit over the top, but you can see how it would be more shareable than a dry blog post about how hats are woven. 

If you write about the things that your audience is interested in, you’ll catch them in totally new places. 

Mediocre e-commerce blogs write about their product and nothing else. Good ecommerce blogs write for the people that buy their products. Good content ranks. Good content gets read. Good content gets shared.

This strategy will not only ensure that your content is fresh and interesting, but it will also be relevant and bring in a new client base that may never have heard about you without searching directly for the kind of products that you sell. 

Not the mention, it will be much easier to write these blog posts.

How do these types of blog posts boost your SEO efforts?

As many know, the large bulk of organic traffic comes from what is called “long-tail keywords”. Namely, keywords that are 2 terms or longer (think something like “montreal knit red toques”). Long tail keywords, due to their specificity, are typically much less competitive than keywords such as “toques”. As such, it will be easier for your site to rank higher on these keyword searches.

Provided that you’ve done the proper keyword research, you’ll be bringing in a whole lot more organic traffic. 

Plus, writing about both your products and other topics that your customers are interested will increase the amount of keywords that will lead customers to your site and, therefore, increase the amount of organic traffic your sites receive. 

Imagine that you are the customer in this instance and you search for “what are the best shaving techniques?”. You’ll navigate to and stay on the page that actually solves your problem. Now imagine you are the store owner of a menswear ecommerce store. If your blog has written about the best shaving techniques, then you’ll be presenting yourself to the customer in a non-intrusive way and actually provide value to them at the same time. 

Lastly, this content strategy will actually improve and build upon your brand image. By writing about things other than your own company, you are, in effect, giving your brand a personality, a set of likes and dislikes, just as a real person would.

So want to see this all in action?

To finish off, we’ll look at 1 ecommerce blog that does not use this strategy and two others that use it to their advantage.

Everlane Blog

Everlane fails when it comes to using this strategy. Hard. If you take a quick look at the history of recent posts and the categories listed in the sidebar, most, if not all, are directly related to apparel found on Everlane. The rest are about Everlane’s business operations or why you should shop at Everlane.

While, this may help to influence or confirm a buyer’s decision who is already thinking about Everlane as a source for clothing, it does nothing to attract new users. If you don’t know anything about Everlane, there is no way you’ll be stumbling on this blog through a randon search query. 

The incestuous blog provides nothing in the way of real content or value for anyone reading it. 

If Everlane were to follow this guide, it could write about a plethora of things that provide value to its userbase or target persona. For instance, I could imagine Everlane writing about design trends, chic home decor, the minimalism movement. Despite this, there are other ecommerce stores that provide value through conten

Harry’s Five O'clock Blog

Let’s take a look at Harry’s, the online store known for its fancy, yet inexpensive, collection of shaving equipment. Their blog, that they call a “magazine”, is a collection of articles that are relevant to their client base. Of course, they have articles that have to do about shaving, but a quick look at their blog shows articles about men’s health, the history of jackets, morning routines, how to be a “wingman” or even “How to Talk to Your Barber”. 

Not exactly about razors, is it?

But they are doing the right thing.

These are all topics that their customers are interested in. And by writing blog posts like this, they are catching new audiences who aren’t even aware of Harry’s without making a single banner ad. Not to mention, the articles that they are writing actually provide value. The article helping you how to talk to your barber actually provides guidance and solves a problem its target persona typically has. This is providing value. The customer hasn’t even spent a dime and the store is already giving. You could liken it to a free sample at a grocery store, where the real goal is the purchase of a select set of ingredients. l

Shopify Blog

Let’s take another online store that does this strategy right: Shopify.

The Shopify blog is a prime example of this strategy at work. While they do write articles that relate directly to the platform, a majority of the articles written for this blog are relevant to any online business owner. There are in depth how-to’s on a myriad of subjects ranging from social media to email marketing, SEO, and even operations. And most importantly, they are written to cater to users of all platforms. And to add to that, the information presented is more often than not useful and has real value.

This is what gets new customers to your site. 

They’ve writing so many detailed, in-depth and useful articles on ecommerce that making any search about the subject will more often than not include a Shopify link on the first page of the search results. 

Best On Page SEO Techniques

If by this point, you’ve been convinced of this technique, you’ll want to start writing content. However, it’s going to be important that you write your content using all of the available search engine optimization opportunities and techniques. Not to mention, a proper SEO optimized article should be around 1500+ words in length, so you won’t want to waste it by not using any proper on-page SEO techniques. 

About SEO

Search Engine Optimization (SEO) is an ongoing task for any website that wishes to continually rank on the first results pages of search engines. Google uses an algorithm to determine which pages will rank #1 on any given page for any given search. Also, these rules change slightly over the course of months. So it is important to keep on top of these changes. An important thing to note with SEO is that results do not appear until at least 3 months for low competition keywords and can take up to a year for keywords with more competition.

Keyword Research

This one is an important step that is all too much ignored. Proper keyword research will ensure that your content has a fighting chance against the big guys and will ensure a niche demand for your article. Typically, you’ll need to use software to perform proper keyword research. But this is not always the case. You can make use of Google auto-suggest (that’s the one in the search bar) to see which long-tail keywords drive the most searches. If it’s on auto-complete, you can bet that a lot of other people are searching for that thing. OH, and another thing, it is best to focus your article on a long-tail keyword, since they typically have less competition.

But, if you’ve got money to spend on a keyword tool, you’ll get better results with your content. A good one I use is called SEOCockPit by the guys over at SwissMadeMarketing. This tool sorts related keywords to your desired search by the keywords with the best competition to search volume ratio. That is, it shows you the keywords that have both the highest searches and the lowest competition. 

Content

There are a few good rules of thumb when it comes to writing your content in a way that will optimize its position on Google. Here are a few.

  1. Include your target keyword in the introduction and conclusion of your piece. Within the introduction and conclusion, you should bold or italicize the target keyword at least once.
  2. Include the target keyword at least 8 times throughout the length of the article. This one is pretty self-explanatory, however, don’t get carried away with this. Artificially stuffing your article with keywords will show up as a red flag and actually penalize you.
  3. Include your keywords in the header of your article.
  4. Include 1-2 internal links to other pages on your website. Doing so teaches the search engine the hierarchy of your website.
  5. Include at least 1 link to a high profile site (e.g. wikipedia, nytimes)

Length

Long-form content, content that is 1500+ words is now valued quite a bit when it comes to getting SERP real estate. Ideally, you’ll even want to pull in 3000 words or more in your article. However, as stated above, content trumps all. If you don’t have enough content to fill 3000 words, filling it up with fluff isn’t going to do you any good. We’re trying to give our audience value, after all. 

Social Shares

As of late, Google has started using social signals much more in its search algorithm. Meaning, the more shares, visits, and presence on social media that an article or blog has, the higher on a page may rank on a search engine results page. A good tool to increase social shares is sumome. Sumome allows you to easily add social share buttons to your website with only one line of code. Best of all, it’s free. Always having social share buttons visible increases the amounts of shares you receive greatly.

Just to recap, here are a few things that Google uses to assess the search relevancy of a page:

  • Quality long form content (1500-3000+ words)
  • Proper keyword research
  • Social Shares
  • Properly optimized content
  • Links from other sites

So there you have it, using a proper content strategy that addresses first the persona of your target audience, you’ll be able to provide value with your content. And, by doing so, you’ll be able to catch them and bring them to your site in wholly new ways. As we saw by Kaushik’s analysis of social media pages, it is important that we not write only about ourselves and our own companies, but also the things that our customers enjoy. Using the on-Page SEO techniques illustrated above, you’ll be able to use your content to drive real, sustainable and cost-effective traffic to your website. 



Guide: How to Choose Products to Sell on Amazon

For a seller starting out on Amazon, or even a seasoned veteran, choosing a new line of products to list can be a daunting task. There hundreds of categories to choose from and millions more competing products to sift through. That being said, there are plenty of opportunities to be found - if you know how to look. And, with the right tools and techniques, it isn’t that hard.

Essentially, when deciding on the right products to buy to list on Amazon, you’ll want to spend the bulk of your time analyzing the competition to see where you can take advantage of weaker competing listings. Furthermore, you’ll want to consider factors which signal the popularity of a given item.

This guide will cover how to analyze and consider these two factors when choosing new products to sell on Amazon. It is important to note, that, instead of detailing the minutiaes of each strategy, this guide will focus mostly on high-level strategies that encompass the buying process. That being said, it does, however, in every case provide helpful links to guides that I have written to automate as much of the process as possible.

How to Choose Products to Sell on Amazon

First off, it’s important to note that most of this work should be done in a spreadsheet. To find the right products to buy and sell we’ll be searching through hundreds of products and keeping track of them will be much easier if they’re all kept together in a table. So, with your favourite spreadsheet editor loaded up, let’s get started.

Wholesaler marketplaces like Alibaba make it easy to find a supplier for just about any product. However, whether it is DVDs, shoe soles or coffee makers, you’ll want to first pick a target category or search filter to choose your products from. Of course, this is not absolutely necessary, but it will help you focus on a similar grouping of products, which, in turn, will help you see the weaknesses in competing listings.

Not sure what category to pick?

There is, of course, no wrong category, but if you are just starting out, it is best to start with products that are small, easy to ship and are hard to damage in transit. This will make logistics much easier for you and will, hopefully, give you a higher order success rate (which is important for winning the buy box!). With your category in mind, you’ll need to go deeper and try to find a list of products within this category that have a chance at succeeding on Amazon.

How to create a list of candidate products

In this guide, we’ll be covering two ways of creating a list of candidate products: searching through products listed on Amazon and searching for products outside of Amazon. In any case, regardless of which method you choose, before analyzing the competition of these products on Amazon, you’ll want to extract the ASINs of each of the products that you are thinking about listing. Retrieving the ASIN will allow us to level the playing field and accurately compare all of the possible candidate items.

What is an ASIN?

The ASIN is simply a unique code that Amazon assigns to each product that is listed. The purpose of the product is so that Amazon can compare the prices of the same products. This means that when you are listing a product on Amazon, Amazon tries to find if another seller has already listed the same product on Amazon. If this ends up being the case, your product will be assigned that same assign. This means you and the other sellers will be competing for the buy box on a number of metrics including price and customer reviews.

Creating a list of Candidate Products From within Amazon

The first method for creating a list of candidate products is simply to search and gather information of already-listed products within your target category on Amazon. It goes without saying, of course, that this method will set you up with a list of candidate products rather quickly, but you won’t have in-depth knowledge into the popularity of the products or how likely they will be to succeed in the long run. So, even if you wish to skip the method detailed below, it’s still a good idea to give it a quick read as it may give you ideas on how to further vet your candidate products.

With that all being said, start by searching for your product category on Amazon. When you reach the search results page for your given category, you’ll then want to extract the product meta-data so we can analyze them quickly within a spreadsheet. We’ll want to get the following information on about 100 or so products: product ASIN, buy box price, number of sellers, rating and rank. You can go by hand, copying and pasting to export the list of product information; however, if that proves too time-consuming, there are tools that let you export ASINs and others that let you export their product information. With that information all loaded up in your spreadsheet, you’ll then want to skip ahead to the “Analyze the Competition” section to see if any of the products you’ve chosen are good opportunities.

Choosing Products from Other Sources

Although decidedly more difficult and time-consuming than the previous method, you are likely to see more success by following the strategies listed below than by creating a list of candidate products solely from within the Amazon ecosystem. That being said, you can still vet the list of products you’ve previously chosen with the method above, using the strategies below.

Search for Awards and Industry News

To start creating your candidate list, use your target product category to search for awards handed out to products in that category. There are typically several websites that host awards for a given product type and some even list links to award winning products on Amazon. Log any of the products that you find on these sites in your candidate list. For every product that you log, be sure to note down the product identifier in your spreadsheet. In most cases, you’ll only find a UPC or EAN code. To get an ASIN from a UPC code you can use a conversion tool or you can search through Amazon manually. Getting the ASIN for each product will be crucial for understanding how many competitors are selling each product.

Social Indicators

Next, broaden out your search by searching for your product category on social and social aggregator sites (Reddit, Twitter, Youtube) to see which products are generating the most social traction. As with the previous step, try to find either the UPC or ASIN of each of the products listed and keep track of them in your spreadsheet.

Google Trends

If you aren’t familiar, Google Trends is a tool that scours the internet to find mentions of a given keyword. And, with any given search, you’ll see if the amount of mentions of that keyword are increasing or decreasing over time. This gives us a great opportunity to see if our candidate products are increasing in popularity of decreasing. That said, plug in as many of the candidate products you’ve just found and remove any of the products that are showing a down trend for longer than a year (some products are seasonal and will downtrend during some parts of the year and we don’t want to remove them solely on that fact).

Compile Product Data from Amazon

Before moving on, you’ll want to get information of each of the remaining candidate products on Amazon. If you don’t already have the ASINs of each product, you can either do a keyword search on Amazon for the product or use the product UPC to find the equivalent product on Amazon. If you wish to automate this process use a bulk UPC to ASIN converter. With the ASIN in hand, get the following information about each product on Amazon: ASIN, UPC, buy box price, number of sellers, rating and rank. While it may be a lengthy process to do so, it is essential to being able to see how well you will compare against other sellers of the same item. Furthermore, there are tools available which can automate the process.

Figuring out your costs and sell price

Although tedious, if at all possible, you should try to determine the sell price any or all of the candidate products you’ve found. It is crucial to being able to determine if you can compete with other sellers on an ASIN. So, if you’ve found UPC codes for any of your candidate products, it will be easy to search through a site like Alibaba to find the cheapest supplier for a given product. If you haven’t you’ll have to rely on a simple keyword search to find the costs for each product. Before moving on, make sure your sell price is saved as a separate column in your spreadsheet.

Analyze the Competition

Analyzing the competition is the most important step of this whole guide. By now, your spreadsheet should be filled with items and should also have the following columns of data: ASIN, UPC, buy box price, your sell price, number of sellers, rating and rank. With all this information in your sheet, we’ll start creating a shortlist by removing candidate products that are not feasible to compete with on Amazon.

The first step will be to remove any product where the buy box price is lower than your minimum sell price. If you can’t compete on buy box price, it is not likely that you will sell many of those products as Amazon will divert any sales to your competitors with the lower price. The next bit is where things start to become more subjective. You’ll want to sort by product rank and remove the products on your sheet that have a very low rank for their category. What qualifies as a low rank depends on the category of the product, so you should do your research before determining what exactly your cut off rank will be. Last, you’ll want to sort by the sheet by the number of sellers for each product. This is because, simply put, with a lower amount of competing sellers on your ASINs, you have a better chance of winning the buy box. Therefore, your product shortlist should be comprised of items that have the least amount of competing sellers.

At this point, you should have a small enough list to go off and start buying products to sell. It goes without saying, it is very much up to your intuition and preference at this stage as to whether or not you will choose certain products. But this guide should be able to give you an objective strategy on eliminating and picking items to sell on Amazon.

How to Auto Follow Instagram Users with a Script

If you've recently read my strategy on getting the most follow backs in Instagram, you might be yearning for a way to automate the process of following users - especially considering how valuable an Instagram following can be. That's to say, despite the change in Instagram's algorithm, it still provides incredibly high engagement rates for brands and communities wanting to create a presence on the platform. And, if you've tried to follow plenty of Instagram users, you'll have found that it is quite time-consuming and, not to mention, boring. As such, I've created a browser script to automate the process. The process is pretty straightforward and essentially, all you'll need to do is copy and paste a script into your browser's console. 

How to Use a Script to Follow Instagram Users

Before getting started, you'll want to use your desktop to browse to an Instagram user's list of Following or Followers. Now, I won't go into great detail about which accounts you should use, however you should pick an account which has more following than followers. With accounts such as those, it is likely that the owner has already tried mass following people to get followers - so we'll want to piggyback on their work by following the people that already follow them.

So, once you find such a page, click on the "Followers" button to bring up a pop-up of that user's followers. When the pop-up is loaded, you'll want to scroll down to load more users in the popup. However, don't go too far. Instagram can and will often ban accounts who are following more than 250 followers per day. It is best to start with an even smaller number especially if you are using this script with a new account. Next, you'll then want to bring up the browser console. You can do this by right-clicking anywhere on the page and clicking "Inspect Element", then clicking on the console tab (or you can press ctrl+shift+c). With the console open, paste in it the following code and press enter:

var jq = document.createElement('script');
jq.src = "https://code.jquery.com/jquery-3.1.1.slim.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
jQuery.noConflict();
__cnt__=0; jQuery('button').each(function (i, ele) {
ele = jQuery(ele);
if (ele.text()!='Follow') {
console.log('already following:', i);
return;
}
setTimeout(function () {
ele.click();
}, __cnt__++*Math.floor((Math.random() * 4152) + 2193)); });

Once you press enter, you'll see that the Follow buttons will be slowly clicked on their own. The script is coded so that it takes a random amount of time (between 2-4 seconds) between each time it follows someone. This is to reduce the chance that Instagram catches you using automated processes. In any case, with daily use, this script can be very powerful get you many followers very quickly. 

In some cases, users with poor internet connection may find that the script may not work right away and result in error. That is because the script needs to load jquery before running. It will often work, however, if you simply try to run it again. 

How to Scrape ASINs from Amazon

If you are looking for the right product to sell on Amazon, you might have found that there are not many options for exporting a large amount of product information, especially ASINs, from a product search. Even those who provide analytics apps for Amazon can't export more than 100 items at a time, and, even worse, they are limited only to the top 100 items. This means if you are looking for products that aren't very popular yet or have low competition, you can't programmatically get a large amount of identifying product info in bulk.

So what are you left with? Typically, sellers resort to copy-pasting to get their information off of Amazon to base their decisions on. While this may work, it is tedious and time-consuming. To get around the initial phase of getting ASINs, I've developed a quick and easy browser script to scrape 

Scraping ASINs from Amazon

The first thing you'll want to do is perform a product search on Amazon and narrow down your search using all of the filtering options you need. Once complete you should land on a results page that should look like this.

While on this page, open up your browser console by right-clicking anywhere on the page and selecting "Inspect". A window will then open up in your browser. At the top of the new window, there will be a series of tabs, click on the one called "Console". This tab lets you enter custom commands to perform operations on the page you have loaded.

Now, you'll want to want to paste the following code in the console and press enter:

for (var i=0;i<2000;i++) try{console.log (document.getElementById("result_"+i).getAttribute("data-asin"));}catch(e){}

This will instantly copy all of the ASINs found on this search results page so you can easily copy and paste them in your favorite spreadsheet editor. With the console still open, you can select the next page of the Amazon search results. Select the "Preserve log" checkbox if you want to use this script continuously and copy and paste only once.

So let's say you copied 10 pages of Amazon search results from the console to your favorite spreadsheet editor, you might have noticed that they have a little junk text from the console still attached to them. We can remove that easily. In this example, I'll use a Google Sheet (but you can use any editor for this) formula to remove it. With your ASINs copied in column A, paste the following formula in column b

=RIGHT(A1,10)

This will leave you with some clean looking ASINs. So what to do next? With your target ASINs scraped from Amazon you can now plug them into 3rd party tools to track their prices and mass export their vital information. There's a tool I developed here that can help you do exactly that. 

 

How to Mass Export Instagram Bio URLs & Emails with Google Sheets

With stronger restrictions hitting the Instagram API, it's becoming harder and harder to export Instagram follower analytics from third party sources. Luckily, I created a nice hack to both get lists of Instagram followers (without using any external service) and then using that list to get the URLs and, in some cases, emails of those account holders. And, best of all, the bulk of the process is automated in a Google Sheet. The strategy is a little lengthy to set up. Yet, once set up in a Google Sheet, it's very powerful and can quickly export and parse thousands of Instagram accounts. As such, I've outlined the basic parts of the guide to help you get a sense of the overall strategy.

  1. Decide on an Instagram account to scrape followers from
  2. Export that list of Followers using your browser console
  3. Use Google Sheets to scrape their bio URLs and email addresses

And, for those who may be interested, I've used a similar strategy to export Twitter accounts, URLs and email addresses. I have also created a paid version using a more robust method of that blog post strategy called TwitExport.

Bulk Exporting Instagram User URLs and Emails

This guide will cover roughly three major sections. First, we'll have to generate a list of Instagram users to get URLs from. Second, we'll have to scrape each of the accounts we generated for bio URLs. Last, we'll be scraping the bio URLs for email addresses. It is important to note, however, that there will likely be a much smaller number of bio emails. This is because not everyone has a URL listed on their Instagram bio, and a smaller number of people have an email listed on their website. That being said, the process is very quick and you'll be able to repeat the process many times, so over time, you can use this strategy to get quite a large number of URLs and emails. 

Exporting a List of Instagram Users

As stated above, the first step in our process will be to get a list of Instagram users to extract bio information from. And, if you've ever tried to get a list of Instagram users before, you'll have noticed that they are hard to get without signing up to some external service. It's hard to find a way to do it on your own. That being said, I have found a way to export Instagram user lists without using only your browser. 

  • First, you'll need to find an account for which you want to get the followers from. Typically, you'll want to use your own account or one that is in the same niche as yours. So once you've decided on an account navigate to it and click on the "Followers" button to list all of that account's followers.
  • A pop-up should then appear with a small list of their followers. You'll want to make that list bigger so keep scrolling down to get as many followers showing on the page as you need.
  • Once you've got all of the followers you need loaded on to the page, right-click on the page and click "Inspect Element".
  • This will bring up the browser console. In the console, we'll want to enter a command that will paste all of the links on this page so we can easily extract them. To do that, click on the "Console" tab as shown below.
     
  • Next, you'll want to paste the following code as shown below in the console and click enter: 

urls = $$('a'); for (url in urls) console.log ( urls[url].href );

  • You'll instantly see links pop up in the console for each of the followers in that list.  Simply drag to select all of the links and copy that list to an open Google Sheet in column A.

Cleaning Up the List of Followers

In the last step, we successfully generated a list of followers using only the browser. However, when copying them, we likely got some extra characters before the follower URLs that we don't need. To get rid of them, paste the following formula in Column B, next to the follower URLs you just pasted in the sheet.

=trim(REGEXEXTRACT(A2," .*"))

Drag this formula down the entire list and after we should have a nice clear list of the URLs of the user's accounts.

Exporting Instagram Bio URLs

Now that we have a full clean list of user accounts, we'll want to scrape them for the URLs that they possess. Since I have completed the proper formulas to complete this tasks, this step will be pretty simple. 

  1. First, copy the following formula into cell B1 of a new sheet. This formula gets the HTML of the account URL in a format that Google Sheets can parse.  =index(IMPORTXML(A1,"/"),6)
  2. In cell C1, copy the following formula. It will parse the imported HTML file and look for a bio URL. Once found, it cleans it using REGEX formulas. 

    =iferror(regexExtract(trim(clean(regexreplace(regexreplace(regexreplace(regexreplace(mid(B1,SEARCH("linkshimmed",B1),search("biography",B1)-SEARCH("linkshimmed",B1)),"linkshimmed",""),char(34),""),":",""),",",""))),"\%3A%2F%2F(.*)\%2F"),"")
     
  3. Next, you'll want to drag these formulas down your sheet to equal the amount of URLs you have to scrape. To do this quickly, select both B1 and C1 cells and hover over the bottom right corner of cell C1. A plus symbol should appear. When this happens, click and drag all the way to the appropriate row. This will properly copy your formulas with the correct cell references.
  4. Before pasting in the URLs in column A, make sure to hide column B by right clicking on the column header and selecting "Hide". This is important since when column B goes to import the follow account URLs, the sheet's formatting will go in dissarray. So once that's hidden, you can go ahead and copy all the follower account URLs you got in the first step into column A. You'll need to wait a minute, but you'll soon start to see bio URLs appearing in cell C1. 

Extracting Email Addresses from List of Generated Bio URLs

Although we just got the bio URLs in the previous step, we might want to take note of their email addresses if we want to reach out to them. Of course, we can do this manually, but why do that when you can automate it? This step will show you how to scrape the emails that can be found on these bio URL websites we just exported.

  1. In column D, paste the following code to scrape each website for an email address: 
    =substitute(IMPORTXML(C1,"//a[contains(@href, '@')]/@href"),"mailto:","")
  2. Like in the previous step, we are using the ImportXML function in Google Sheets to import the URLs in a way that Google Sheets can parse them. In this case, we are using a specific xpath to search for code that is typically used to store email address on a webpage.
  3. Using the method shown above, copy this formula down to the last row to ensure that proper cell references are being used.

With that last complete, you will have successfully completed the bulk export of Instagram Bio URLs and Emails with a Google Sheet. Once the sheet is setup, it will be very easy to repeat this strategy over and over again to keep harvested emails and URLs. It is especially useful for those who want to promote their work or products to other website owners or for SEOs who want to quickly perform blogger outreach for a link building strategy. For instance, since the emails generated by this strategy will likely be website owners in the same niche as yours, a good strategy is to ask them to share your product or add a link to your site.

 

How to get the Most Followers & Follow Backs on Instagram

It goes without saying that having an active and engaged Instagram following is essential for those in many verticals. Yet, growing Instagram accounts organically is often discouragingly slow. And, while Instagram has offered a self-serve advertising system for a while now, it is often not the most efficient way of getting targeted users to follow your account - not to mention the price can be quite prohibitive for many marketers and owners of small accounts. 

As a result, people tend to gravitate towards the "follow back" strategy. And, while it isn't exactly revolutionary, following users is a reliable tactic that has long been used on multiple social media platforms to increase the number of followers on a given account. Yet, that's not to say that it's without drawbacks: first, it can take a lot of time to perform. Following and unfollowing hundreds of users is tedious and time-consuming if you aren't automating it. Second, the level of engagement can be quite low. However, with the right strategy, both of these drawbacks can be negated. This article will, step-by-step, outline a follow back strategy that will let you efficiently generate at least 1 follower for every 10 follows. 

How to get the Most Follow Back on Instagram

This guide will outline an easy strategy to pick users who will be most likely to follow you back. It is predicated on the fact that many Instagram users follow plenty of users to get followers themselves. Our strategy will use the work they've already done to bootstrap our follow campaign. It makes it so that each follow you perform much more targeted with a higher chance of receiving a follow back.

Search for Instagrammers in Your Niche

To ensure that we have high engagement on the followers that we generate, we will need to first use the search function to find other Instagrammers in our niche. For instance, if your niche is analog photography, use something like #35mm or #analogphotography. However, be sure to look through accounts in "Most Recent" instead of "Most Popular" as they'll be more likely to be the type of account we want to use.

Find a User with a Much Higher Following Count than Followers

As stated previously, this strategy uses the work that other Instagrammers have done following others to cherry pick accounts that have a high likelihood of following back. For instance, if you stumble across an account that follows 5000 users, but has 1000 followers, you know, then, that most of the 1000 followers of that account have been generated by the 5000 users that have been mass followed. Furthermore, because you know that the 1000 followers have been generated by mass following, you can be sure that they'll likely be receptive to you doing the same. This is why this strategy works so well. Keep in mind, for the strategy to work, you don't necessarily need to find an account with a 5:1 following to follower ratio, but, at minimum, try to find one with a 3:1 ratio. Check out the example below for reference on an ideal account for this strategy.

 

Follow the Target Account's Followers

Once you find an account with a good following/follower ratio and that's in your niche, proceed to follow that account's followers. However, don't follow more than 300 per day. If you do so often, Instagram may blacklist your account for spamming. However, within minutes you'll likely start seeing the follow backs and likes coming in on your end.

Using this Strategy Over Time

After a while of doing this strategy without unfollowing, you'll reach a dead end at 7500 followers, which is the maximum permitted amount of followers an account may have. The best way to get around this is to keep track of the accounts you been using to harvest followers. After a couple days, you can go back and easily unfollow those who you've just followed as it'll be unlikely that others in that list will follow you in the future.

Automating this Strategy and Going Beyond Instagram

There are quite a few apps that allow you to automatically follow and unfollow people on your behalf. One of my favorite tools for this task is called Followliker. It is a pretty simple desktop app that allows you to schedule when it runs, use proxies and follow multiple accounts at once. Of course, you'll need to use this strategy to set it up, however, it takes away the boring tasks of following and unfollowing. 

That all being said, the guide above should be simple enough for anyone to get the most followers and follow back on Instagram. It might even sound too simple, however it is a great strategy that nets instant and lasting results. Furthermore, it should be noted that this strategy will work for any other social media site that works with a following system, such as Twitter. 

How to List on Amazon without UPC Barcodes

A number of people have asked me if it is possible to bypass the UPC requirement when selling on Amazon. In many cases, they are selling one of a kind products or handmade goods that don't necessarily warrant the creation of a UPC code. Thankfully, selling on Amazon without a UPC code is, in most cases, pretty easy. Using the Brand Registry Program, sellers will be able to sign up for the ability to sell without a barcode. As such, this guide will outline how you can successfully apply to the brand registry program and use other unique attributes to upload your items to Amazon

Listing Products on Amazon without UPC Codes

To list without UPC codes you'll need to use your Seller Central account to sign up as a brand on Amazon. Doing so will designate your account as the manufacturer for all items that are sold your account. However, before starting the application process, you should have a couple pieces of information on hand.

Amazon Brand Registry Requirements

To sign up for the Brand Registry program, you must first prove that you are, indeed, representing a brand. For this, Amazon will ask for the following information in the application.

  1. A link to your brand's site
  2. A photo of your product packaging with your brand visible on it
  3. A photo of your product itself, with the brand visible on it

If you are just a small seller and don't have fully branded packaging, don't worry. The requirements aren't as strict as they may seem. For instance, I had a client that, for their product packaging, shrink wrapped their products and had a branded paper insert that you could see through the plastic wrap. That was the "brand packaging". And for the branded product itself, I just took a photo of a sticker on the product which contained the brands logo and the internal barcode of the product. So, even if you don't think your packaging or branding looks super professional on your products, don't worry! Worst case is that your application won't go through and you'll just have reapply again. However, having to do so is rare.

Applying to the Amazon Brand Registry

To start the application process, click on this link. Once you land on the application page, you'll be presented with a list of information to fill out. You'll be asked questions such as what your relationship to the manufacturing process is, if you sell new or used products, if you own a trademark, etc... Simply try to answer these questions as accurately as possible. 

Of course, you'll also be asked to type out the brand name exactly as it appears on the packaging. You must fill this out correctly. It will be key come the time when we get to uploading products after filing a successful application.

However, most importantly, you'll be asked what type of key identifying attribute you would like to use when uploading products to Amazon. Currently, your Key Identifying Attribute would be the UPC code. This is what currently tells Amazon what product you are uploading to its site and what makes it unique against other items. However, we want to change that. So you have a couple choices available to select as the unique number you'll be using, as a brand, to upload products on Amazon.

  1. Manufacturer Part Number
  2. SKU or Style Number

In reality, it doesn't make much difference which one you choose. The only real change it makes is which field you'll have to enter a number on when creating a product. For instance, if you choose the manufacturer part number as the key attribute, then when creating a product, you'll have to put your product number in that field. It also goes without saying that for the number you choose, you must have a unique one for every product you list. Products with duplicate key identifiers can't be uploaded.

Once you complete this, you'll need to upload the photos of your product with branding and your packaging that displays your branding. The application will take just about 2 weeks to process and you'll be notified by email once you've been accepted. 

Listing Products As a Brand on Amazon

Once you've been accepted, you'll then want to upload your products without the UPC code. Thankfully, doing so is simple. When creating a new product, whether it is through the site, flat file or XML integration, you'll need to enter the product brand exactly as you entered is previously when apply to become a brand. This means exact same case and spelling. Last, you'll need to enter the product's key identifier. For instance, if, in the previous step, entered SKU, then you'll need to enter the unique SKU for the product. Once complete, you will have successfully uploaded a product using the brand registry program.

So in all, the process for uploading products to Amazon without UPCs is surprisingly easy. It only takes some time to get accepted into the program. But once you're in, you should have an easier and cheaper time selling. Especially if you are selling art or other one of a kind products on the site. 

How to Scrape Amazon Product Ratings and Reviews

If you use Amazon product export tools or if you've done any work with Amazon's Product Advertising API, you'll have probably noticed that Amazon does not offer the rating of a product as a field that can be exported. One can only speculate as to why this would be the case, but the only information regarding the reviews of a product is a URL to an iFrame that gives you only a visual glimpse at the ratings and no way to actually use it for data mining. 

In any case, I have found a way that you can use Google Sheets, in conjunction with a list of ASINs, to export and scrape the product rating for a given list of products. The number that is returned is the aggregate rating of the product. More specifically, it is the number out of 5 that the product is rated.

It is important to note, however, that Amazon is stringent about scraping and people have reported being blacklisted when doing this sort of operation too often. So it is best to use moderation when using this Google Sheets formula. 

Amazon Product Rating Google Sheet Formula

This formula assumes that all of your ASINs are in the "A" column. So, to use this, simply paste this formula in cell "B1" and the reviews should start populating in that row. To use this formula among multiple rows, simple drag the bottom right corner of B1 down to the last row you want to process.

=left(JOIN( CHAR(10) ,IMPORTXML(CONCATENATE("https://www.amazon.com/gp/customer-reviews/widgets/average-customer-review/popover/ref=dpx_acr_pop_?contextId=dpx&asin=",A1),"/")),4)

Using this simple formula you can quickly gauge if a product is worth buying or selling. If you want to export more Amazon information with a Google Sheet, check out this guide on exporting Amazon prices with Google Sheets.

Amazon Flat File Item Attribute Guide

Uploading items to Amazon can be quite a time consuming process, especially if you’re uploading items one-by-one. Thankfully, Amazon offers multiple speedier ways of bulk uploading products to your catalog in your marketplace account. One of these, is by adding items programmatically via an XML integration, the other, which is covered by this guide, is to use a Flat File template. The Amazon Flat File templates let you add individual items as rows in a spreadsheet - it’s especially useful if you already have items in a CMS that can be exported into the sheet. Furthermore, if you have similar items, you can use excel formulas to quickly generate content for your listings instead of typing each product attribute out manually.

If you’re unfamiliar of the term, Flat File can be used synonymously with a spreadsheet - meaning you can edit them your spreadsheet editor of choice.

This guide will cover basic information about Amazon Flat File templates and will go through one-by-one most columns (some are self explanatory) that are found within the template. Furthermore, this guide will give best practices about what should be entered in each so your items will rank higher on Amazon.

Types of Flat File Templates

Since sometimes you only need to make small changes to existing products like price, inventory or small text edits, Amazon offers different types of Flat File templates to speed up the updating process. Here are some of the important ones to keep in mind:

Inventory Loader: This template is used simply to update inventory quantities of your existing products in your seller account. The only required field is the product SKU, so it is very fast to fill out.

Price & Quantity: Like the name implies, this template lets you quickly modify the price and quantities for products already in your seller account.

Lite Templates: Each major product category has lite templates that may be used to create new products, however they strip away a lot of the extraneous columns that are found in the full product templates. This template is useful if your products are already existing ASINs on Amazon.

Full Templates: Full templates give you access to all of the possible customizations and meta-data that are available to edit for your given category. This is the template we will be working with for the rest of this article.

How to Download an Amazon Flat File Template

Amazon Flat File templates can be easily downloaded directly from Amazon. On this page, you’ll be able to download each of the different Flat File types and each of the full templates for each respective category.

The Browse Tree Guide (BTG)

The Amazon Browse Tree Guide is a massive guide containing each of the product categories found on Amazon. Finding the right category of your product will be important when it comes to completing the new product template. Being in the proper category can have a huge affect on the amount of search hits your item will receive.

Excel Tips for Completing the Template Faster

=concatenate(): While it is simple, this one can quickly let you create bullet points and other rich content out of existing columns from your CMS export.

=vlookup(): This is, hands-down, one of the most useful formulas you’ll be able to use while filling out the Flat File templates. Using this formula, you can get data from differently sorted tables that have similar data. For instance, if you have different product attributes of the same product in different tables or spreadsheets, you can use this formula to easily match them up without manually copy/pasting between sheets.

CTRL + SHIFT + ARROW: This isn’t a formula, but simply a very fast way to select entire columns or rows without scrolling. If you have thousands of items in a column and want to select all of them, use CTRL + SHIFT + ARROWDOWN and you will instantly select all the cells with data within a given column. Respectively, this will work for any of the other arrow key directions.

Amazon Flat File Template Item Attribute Guide

The next section of the guide will go through all of the columns found in the full Flat File item creation template. For this guide, we will use the home decor category. It is also important to note that, when entering information in this field, it is best to use full sentences and proper grammar. Doing so will improve your Amazon SEO and conversion rates.

SKU: This is your internal unique identifier for your item.

Product ID: This field is where you can enter the items UPC, EAN or GCID number, depending on the type of account you have, it may be a required field (it most likely will be for most sellers).

Product Id Type: In this field, you must enter the type of code you entered in the previous column (“UPC”, ”EAN” or “GCID”)

Item Name: Enter the product name here. Don’t enter any special characters or include any editorializations. However, you can use up to 200 characters (which is a lot) in this field, so be sure to include as many keywords as possible to make sure your item has a better chance of ranking well in search results.

Product Description: Enter the long description of the product here. Since you have 2000 characters to work with, it is important to be verbose and include all possible keywords that have to do with your product. This will help it rank better.

Product Type: Select the appropriate item for your product in the drop down. This will help categorize your product within Amazon so people can find it by browsing.

Brand Name: Enter the brand name of the product here.

Manufacturer: Enter the manufacturer of the product here.

Part Number: If it exists, you can enter the product number of the manufacturer here.

Item Type Keyword: This field is very important to the proper categorization of your item. Refer to the Browse Tree Guide to find the appropriate category keyword for your product and enter it here. A good strategy is to find several possible categories that would suit your item and select the category that has the least competition. This ensures that your product has the greatest amount of visibility.

Update Delete: This field can be ignored unless you are updating the product. If you are using this template to update an existing product, then enter Update here.

Model Number: This field is useful for customers who want to compare pricing if your item has a model number.

Standard Price: Price of the current product

Condition Type: This field is used to specify the item condition.

Condition Note: This field is useful if you’ve entered that the item is not new in the previous field.

Quantity: Self explanatory, enter the quantity available for this product.

List Price: This is the MSRP of the product. Depending on the amount that the list price is higher than the standard price, you can be included in the sidebar filter for discounted items. Therefore, it can help your product visibility to enter a number at least 30% higher than the standard product price in this field.

Minimum Advertised Price: If your manufacturer has imposed MAP on your product, enter that price here.

Launch Date: Enter the date that the product will be made like on Amazon. This field is optional.

Release Date: This is made for pre-orderable products, you can leave this empty

Restock Date: If a customer has ordered an item that has run out of stock, this date will let them know when it will be shipped.

Fulfillment Latency: This is the time it takes to ship the product after you have received the order. This field is important since it will display throughout the site when your product is present to show the consumer how much time it will take to receive their order.

Product Tax Code: A tax code given by Amazon, in most cases it will be: A_GEN_NOTAX

Sale Price: If you wish to make a sale on a given item, enter the sale price in this cell

Sale Start Date & Sale End Date: The dates for which the sale price will be valid.

Package Quantity: How many items are included in the final shipped order for the individual item.

Max Aggregate Ship Quantity: This field denotes how many times this item can be shipped to a customer in a single shipment.

Gift Messaging: This field tells the customer if they can include a gift message or not.

Shipping Template: Select a shipping template created in Seller Central or, if you do not have custom shipping templates, enter “Default Template”

Shipping Weight: Enter the shipping weight of the product without the unit of measurement. This number includes the weight of the package.

Shipping Unit of Measure: Enter the unit of measure you used for the weight in the previous field.

Item Display Length, Width, Height and Weight: Enter the dimensions of the actual product.

Bullet Points 1-5: This field is extremely important for product visibility and Amazon SEO. Enter each of them with relevant product keywords and make sure you used as much of the 250 character limit as possible. If your CMS exports product attributes, use the concatenate formula to quickly make these bullet points.

Target Audience: Enter the the kind of audience who will be actually using your products (i.e. if its for kids, teens, etc..)

Search Terms: This is another extremely important field to complete. Fill in as many keywords related to your product within 1000 characters. This has a great impact on how many searches your product will appear in. The concatenate formula will be useful here again to quickly fill this field with keywords. Note: Do not enter misspellings in this field as Amazon already keeps track of misspellings and doing so will waste precious characters available for this field.

Main Image URL: When using the Flat File, your images must be hosted on a server so they can be uploaded to Amazon. Enter the URLs of your product images here.

Fulfillment Center ID: If you are selling via FBA, enter the fulfillment center ID that you’ll be sending the current product to. If you are shipping the products yourself, then leave this field empty.

Package Height, Width, Length & Weight: Enter the dimensions of the final package of the product that it will be shipped in.

Parent: If the product you are selling has multiple variations and the current variation is the parent, then enter parent in this field. Else, enter child.

Parent SKU: If the item is a child, enter the SKU here. If it is the parent, don’t enter the SKU.

Relationship Type: Select the type of relationship the current child is to the parent product.

Variation Theme: Enter the type of variation that the product has. For instance, it could be something like Size or Color.

Other Flat File Fields

The rest of this guide will provide an overview of the remaining fields that are typically found within the Flat File templates.

Compliance Sections

This section is meant to enter product information relating to compliance with local laws and regulations. For instance, if your item contains electrical components, there will be certain compliance fields that will need to be entered. It is important to look through this section carefully and see if anything will need to be entered for your product.

Category Specific Sections

Certain Flat File templates will have extra columns for subcategories. Examples of this include, bed & bath, home, furniture, etc… It is important to fill out as much information as possible in these fields as many of them highly affect the searchability of your products. Like always, it is important to enter rich information that is properly written out and grammatically correct.

So that concludes this guide for now. I will be periodically including more fields as they are added to the template. Furthermore, I may create category specific guides in the future.

How to Improve Amazon Search Rankings - Amazon SEO Uncovered

As Amazon’s market share and popularity continue to increase, month over month, ranking well in Amazon search results becomes ever more important. And, as the popularity of the site increases among sellers, so to, does the competition involved with ranking. Correspondingly, so to does the importance of getting your listings properly optimized sooner, rather than later.

If you’re familiar with doing SEO work for Google, you’ll understand the core concepts involved with ranking for Amazon. However, it’ll be important to keep in mind that the search algorithm for Amazon is, in many fundamental ways, different than Google’s.

Of course, like with Google, having a store on Amazon requires some work to get extra exposure and higher search rankings. Simply uploading your listings to Amazon won’t guarantee your products any visibility, and, as with with Google, rich content on Amazon is crucial. Thankfully, there are plenty of ways to improve the quality using “Amazon SEO” (so-to-speak) techniques. In this article, we’ll actually first start by tackling the importance and significance of winning the buy box and then we’ll be reviewing several quick ways to bootstrap the search rankings of your listings. And, if you wondering, they work. I’ve used them to boost stores from $0 to $30 000 per month.

What is the Buy Box?

Before understanding just what the Buy Box is, a key thing to note about Amazon is that it is not just a marketplace, but also a shopping comparison engine. It always tries to help the consumer by highlighting the best deal on a given product. So when the user hits the “Buy Now” button, Amazon wants them to be sure that they are getting the best deal. They want to eliminate the need for comparison shopping. Winning the Buy Box, therefore, is when Amazon chooses your product as the best deal compared to all others selling it. If you win the Buy Box, Amazon chooses your account as the default choice for the consumer to buy from.

The Buy Box

The Buy Box

How does it do this? When you load a new product on your seller account, Amazon tries to corroborate it against its database of products to find ones with similar features and specs. If it finds a match, it will assign you an ASIN for your product. An ASIN is like an internal SKU or barcode that Amazon assigns the products that are sold within. As such, when multiple sellers are selling the same thing, they’ll all be sharing the same ASIN. From that point, Amazon will check which seller is offering the lowest price, including shipping, on that particular ASIN, in order to determine who wins the buy box. Yet, it does not check only price. To win the Buy Box, you have to steer well clear of A-Z claims, slow shipping, returns and bad response times on questions. Getting any of these (especially A-Z claims and returns), can severely impact your chances at winning the Buy Box.

As such, winning the buy box is the number one thing to achieve before setting out to rank on Amazon. Without it, your conversion rates and visibility will plummet (I’ve managed accounts that have gone from 30k a month to 0 just by losing the Buy Box).

6 Key Ways to Improve Amazon Search Results

I’ve compiled below 6 (and a half) ways you can easily start ranking your products higher on Amazon. I’ve used these for many different seller accounts and achieved huge success improving sales and visibility exponentially.

Keyword Research

Before writing the copy for your listings, it is absolutely critical to start with keyword research to understand what people are searching for when they want to buy your product and the competition on that keyword. You can find several tools to help you track and determine your target keywords, but since the size of Amazon is so great, I typically use SEO keyword tools normally reserved for Google as well.

Of course, the best way to find keyword opportunities is to go on top ranking listings for products similar to yours and not only use their keywords, but notice which ones they are missing or leaving out. Nine times out of ten, you’ll find a keyword that your competitors have neglected to your advantage.

Another good trick to find out what people are searching for is to type your product in the Amazon search bar and see what suggestions come up. Say your item is a red rug. Go in the Amazon search bar and type "red rug", but don’t press enter. It will auto fill with keyword suggestions. Amazon puts these there because people are search for them a lot. Include these phrases in the keywords. Do this again with "traditional rug" and keep going with more until you have no room left. After doing this with several initial variations, you’ll be able to develop a decent list of long-tail keywords that you can incorporate in your listing copy.

Lastly, don’t include misspellings into your list of target keywords, Amazon’s search algorithm already accounts for this.

Product Title

This can be up to 500 characters. And, remember: Amazon’s search algorithm isn’t like Google’s and it’s actually beneficial to stuff up your titles with plenty of keywords you’ve found during your keyword research. For the time being, it doesn’t matter if your title looks like some SEOs desperate attempt at ranking Google in the 90s. As such. you should be able to include multiple variations keyword variations of your product in each title along with more descriptive info about the category of the product. Again, look what the competitors are missing in their keywords and try to fill that gap.

Keywords

Here you are able to input 50 chars of keywords in 5 text boxes for a total of 250 characters of keywords. The best way to go about this is to start off by using your target keywords and if you still have room, include your product followed by some of its attributes as keywords. If you have keywords that, for some reason, you cannot fit in the bullet points or title, be sure to include them here.

Product Long Description

The product long description is the paragraph text that is usually found below the bullet points of a given product. Use as much text as possible to create descriptions that are at least 1000 chars in length and try to include all possible keyword variations in this field. In this field, it is best to try to expound on any possible information about the product and the benefits it can offer the buyer. The more you can put here, the better.

Bullet Points

Do the same thing you did with the keywords and try to incorporate those in each bullet point. Try to develop a rule system so that depending on the item, custom content is made for each item's bullet points. Remember, you have 150 chars to work with for each bullet point so try to fill up as much of those characters as possible. You might need to work through several iterations to find the most optimal configuration of keywords per bullet point, but, in my opinion, it is well worth it. It not only helps the buyer quickly understand the benefits and features of your product, but also weighs heavily on the listing’s search rankings.

Product Category

This is a powerful, yet often overlooked way to unlock greater Amazon rankings. Amazon’s category tree is massive and often, several categories can be used synonymously. That is to say, sometimes categories repeat themselves and your product can be uploaded to more than one. As a result, it is very important to look through the Amazon category tree carefully to see if you could place your product in a category with less competition. This has worked wonders many times for me and it really pays off to have a look at the browse tree guide.

When thinking about the category of your products, it’s also important to keep in mind its available filters. For instance, notice the number in brackets next to each filter. These are the amount of products found within that filter. Try to optimize your listing so that you fit into the filter with the least amount of competition. For instance, if there are fewer items in the 70% off filter, then increase your MSRP so that you are included in this filter.

Images

This isn’t so much a way to rank as an important thing to consider. Amazon uses image quality as a factor in ranking your listings. Always follow Amazon guidelines and have no written text on your images and always place them against a transparent background. It’s a basic requirement to fill, and most sellers do, but if you don’t, you can have your listings severely suppressed.

Sales Velocity

It may seem obvious to some, but another thing to keep track of when trying to rank on Amazon is sales velocity. Products that sell faster are given an SEO boost. As such, having offering sales and advertising a good ways to launch your product on Amazon.

Promoting via Sales and Advertising

If you looking for really quick wins at a price, there is always product advertising through Amazon. This is the least viable and least sustainable way to rank your products, but also the easiest regarding workload. When you are logged in to your seller account, you'll notice that there’s an advertise tab at the top. Once you are there, you have the option to create new campaigns. Once you create a campaign, there will be the option to create adgroups. Unlike with Google, Adgroups in Amazon work via product groupings. You advertise groups of products based on keywords. For instance, you can add a bunch of red kazaks to one ad group and fill it up with keywords that people would search to find red kazaks. However, make sure the bid on these ads is high enough. Thankfully, there is a button that lets you match current estimate high bid. This tool lets you create ads with thousands of products at a time. So play around with this and check back on your ad groups each day to see which keywords are performing. If they are not performing, cancel the bad keywords and keep only the good ones. This, of course, is a very brief overview of advertising on Amazon, but, compared to Google, is still pretty inexpensive and can offer very high ROIs.

With this info in mind, you should have enough information to start your listings the right way and start making sales. Don’t forget to keep optimizing since competition moves fast on Amazon and the category you thought had no competition could suddenly be out ranking you.

 

Mapping Literature with Google BigQuery and Maps Javascript API

UPDATE: New Maps are now posted here at Litmaps

Current Available Maps (April 26, 2016):

Shakespeare:
http://bit.ly/1MUrCCz

Herman Melville:
http://bit.ly/1SvU4r9

Although hardly a novel idea, mapping locations mentioned in works of literature can provide an interesting visualization of an authors perception of the world. Typically, this is done through crowdsourcing (www.placingliterature.com/) or by mapping the general setting of a novel instead of each location mentioned within. This is one of the few, if not only mapping script that uses BigQuery to automate the whole process and produce a map of a novel within seconds. Using a combination of Google BigQuery API, Google Map Javascript API, Wikipedia API and Google Apps Script, you can map out all locations mentioned in a book.

Google BigQuery

Google offers an experimental API called BigQuery that lets you search large databases for free. You’re given an allotment of thousands of queries and terabytes of data per day. As part of this service, they have integrated with large datasets such all the GPS data for New York taxis in a given year or all the birth records in the United States for the past 100 years. However, among these are databases full of works of literature. BigQuery can let you return a query, searching all public domain books written since 1800, within seconds. Using BigQuery to return locations is the first step of this process.

Location Search Algorithm

These two datasets come from two separate databases. The Shakespeare Corpus comes with no meta data, while the Internet Archive comes with a wealth of meta data, including coordinates of all locations mentioned in a given work.

Mapping works from the Internet Archive is simple. All you need to do is extract the corresponding coordinates for a given work or author, then include them as markers using the javascript API. However, the database starts at the year 1800 and no other works written before that are included.

This means that for all other works, including the Shakespeare corpus dataset, you have to write an algorithm to parse the entire text of a book for locations. The way I got around this was two-fold.

  1. The first step of the algorithm I constructed was to cut down a large part of the text at the query level. All locations mentioned in novels tend to be written in uppercase, so I used Biguery to return all uppercase words. This step completes in seconds.
  2. The next step uses the Wikipedia search API to search all the resulting uppercase words for coordinates. This step isn’t perfect on it’s own so I needed to develop checks for each word search.
    1. To deal with duplicate place names I check the word if it leads to a disambiguation page. From the disambiguation page I then return the first location listed. However, an obvious problem to this is that the correct location might not be the first one that is listed. This hasn’t been solved yet. A possible solution to this that I’ve considered is to search the text for the nearest word (to the current query word) that’s a country. Then to use the country as a basis to determine the proper location.
    2. The next issue was to check for mispellings. When dealing with older texts, the spelling of each location might have small variances. Wikipedia is good at redirecting to the right page if a search contains a mispelt word, however, their API doesn’t easily let you deal with this. My solution was to search get the HTTP response of the given keyword and return the title of the redirected page. This search term then could be properly searched for coordinates.
       

Creating the Map

Once I return all of the coordinates, they are then placed in a Google Sheet for safe keeping using a Google Apps Script. I also record the amount of times each word ismentioned in the book and the name of the location. The Google Maps Javascript API then reads a function within the apps script to return all items in the Google Sheet as an array. From this array I am able to then add a marker for each location.

Marker size is determined by using a simple function to normalize the range between the greatest amount of mentions and the least.

That’s a simple (and poorly written) overview of the process and expect to see more updates as I map out more works of literature and clean up the code so it can be open sourced and distributed.

How to Get the Last Row of Specific Column in Google Apps Script

Lately I've been working on a Google Apps Script to get user information about Twitter users into a Google Sheet. Since Google has a maximum execution time of 5 minutes, you can't have a script run continuously (especially while your calling an API that uses throttling) to fill up all of your rows. I've had to set up triggers in my app, but to do so, you have to read the last row that was written to each time the trigger runs. Turns out, this isn't so easy using a google Sheet with Google Apps Script since Sheets tend to bug out and so the default getLastRow() function doesn't always report the correct last function. The following function, however, will (column parameter that must be passed is the string letter of the column such as "A", "B", "C", etc...):

function getLastRow(column) {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("xyz");
var range = sheet.getRange(column + "1:" + column);
var values = range.getValues();
var newarr = [];
var count = 0;
for (var i = 0; i < range.getLastRow(); i++) {
if (values[i][0]) {
newarr.push(values[i][0]);
}
}
return newarr.length;
}

I've written another pretty hacky workaround that doesn't require a loop. It simply copies the specific row you need the last row of to a temporary sheet, reads the last row of that sheet, saves it, then destroys the temporary sheet. So, without further ado, here is the code for you to use, modify, distribute or destroy!

function getLastRow(column){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var range = sheet.getDataRange();
if (range.getNumColumns() > 1) {
 ss.insertSheet("xyz");
 var sheet2 = ss.getSheetByName("xyz");
 sheet.getRange(column + "1:" +column).copyTo(sheet2.getRange("A1:A"));
 var last = sheet2.getLastRow();
 ss.deleteSheet(sheet2);
 return last;
 } else return 0;
}

Just a little note: The column variable needs to be string value of the specific column you want the last row for ("A", "B", "C", etc...). 

How to Bulk Extract Twitter Email Addresses with Google Sheets

Have a Twitter account you want the email addresses for? If you’ve ever tried this, you’ll have found out that Twitter does not give public access to a user’s email addresses. There’s nowhere in the API or on the site that allows for this - and for good reason. Despite this, I’ve found a workaround to this issue and, in this article, I’ll be going in depth on how to mass extract twitter emails accounts with only a Google sheet. While there are many steps involved, if you follow them as seen here you should have no problem getting your first list set up. And just so you don’t get lost, here’s a quick overview of all the steps involved:

  1. Find target Twitter Account

  2. Export Twitter ID’s of that accounts followers

  3. Convert Twitter ID’s to Twitter account names

  4. Scrape Twitter accounts for domain names

  5. Scrape domain names for email addresses

Update: A robust paid version of this tool using the Twitter API can be found here

Benefits of Using Twitter to Gather Emails

Typically, if you acquire an email in any way other than through traditional website sign up forms (social media contest, etc…), you might find that the list does not perform well and isn’t interested in whatever you are sending them. Since we’ll be using Twitter accounts to generate an email list, we’ll have one key advantage over other email generation techniques: Twitter accounts are tied to a niche. Meaning you can get a targeted email list by using the followers of your competitors or the followers any other accounts across your vertical. For instance, if you have a website that is primarily about home decor, you can go to a home decor bloggers twitter account or a competitors account and generate a list of emails that will be much more likely to convert than any other. This will be important to understand when beginning when using this method of acquiring a list.

...with great power comes great responsibility... - <Your Email Service Provider>

Disclaimer: For good reason, Twitter does not let you access the emails of it’s userbase. So don’t use this to spam people. Furthermore, some countries, like Canada, don’t let you send emails to people who haven’t initiated the opt-in process, so you won’t be able to directly send them emails using this method. However, there are other ways you can use these emails and I’ve listed them at the end of this guide.

Extracting Twitter Email Addresses with a Google Sheet

This is a long “how-to” so, to get through this, it is important to do an overview of what this whole process entails. Since Twitter doesn’t let us access the email addresses of its users, we have to use the next best piece of information it offers us: their domain names. We can then search their domain names for their email addresses. Most of the work involved, however, will be to actually get a workable list of Twitter users to obtain the domain names from. Once we have this list, the rest of the process is rather easy. And using the domain names listed by Twitter users, we will be able to get access to the publicly available email addresses that belong to those users. With that in mind, let’s get started.

Find a Target Account

The first thing you’ll need to do is determine a user’s followers that you’d like to get your emails from. Keep in mind that you’ll want to use an account that is similar to your own and not filled with spam accounts (spam accounts typically have no profile picture, cover photo and have silly names).

Export Twitter User ID's

 

UPDATE July 2016:

 

With your account in hand, head over to dd-css.com. This website offers a free service that will export Twitter account IDs. Once you create an account, click on “Twitter Data” in the site header and you’ll be prompted to authorize access to your Twitter account.

If you’re wondering why this is necessary, it is because Twitter restricts API calls per user. Doing it this way makes the site more quick for everyone. Once complete, you’ll be prompted to select which kind of user export you’d like to make. Click the first option to export IDs of friends and followers.

Then enter the username your target account (without the ‘@’ sign) in the “screen name” text box and click “Get Friends”.

You’ll then be redirected to your account page where all of your exports will be. After a minute, refresh the page and your complete Twitter ID export should be present. Click download and select the CSV option.

Format Twitter User ID's In Excel

The CSV file you’ll just have downloaded will have all of the Twitter IDs of the target account you’ve entered, but they won’t be in the proper format for our Google sheet to read, so we’ll clean them up in Excel. To start, open the CSV file in excel and copy the entire first row (note: the row will be very long) and paste them using the transpose option.

Last, select the entire row and make sure the cell format is set to number and remove the trailing zeroes (Important!). This step is possible in Google sheets, but that is out of the scope of this tutorial. In any case, leave this file open, we’ll get back to it after we’ve created the Google sheet.

Convert Twitter ID's to Twitter Usernames

UPDATE JULY 2016: The website required for the following step (id.twidder.info) is down most of the time. So in order to retrieve the list of usernames of the followers of a certain user, use the following link: https://open.blockspring.com/pkpp1233/get-a-users-followers Once complete, you can skip ahead to the next step.

Unfortunately, we won’t be able to scrape Twitter accounts using only Twitter ID’s since you can’t scrape actual Twitter accounts with them. So we’ll need to convert the Twitter ID’s to usernames. To do this, we’ll be using a Google Sheet since there is a function within that lets us mass search websites for certain information. We’ll use a site called Twidder.info to take the ID’s and output usernames and we’ll do this all within Google Sheets. To do this, follow these steps:

  1. Paste your Twitter Id’s from the previous step in a Google Sheet.
  2. Paste the following formula in cell B1 then copy it for all rows containing a Twitter ID. This formula creates a URL using the Twitter ID using the concatenate formula. Then using the ImportXML formula, it grabs the resulting username from this generated URL (NOTE: Depending on the number of accounts you are processing this could take a couple of hours):   

    =index(IMPORTXML(CONCATENATE("http://id.twidder.info/?user_id=",A1),"//input[1]/@value[1]"),1)
     
  3. Last, you’ll need to create a URL from these usernames, to do this simply paste the following code, which creates a Twitter url, in cell C1:

    =CONCATENATE("https://www.twitter.com/",B1)
  The final product should look something like this.

 

The final product should look something like this.

Scrape Twitter Accounts For Domain names

Now that you have all of the Twitter account URLs for the followers of your target Twitter account, you can scrape them for any domain they have listed on their accounts. To do this, simply paste the following code in cell D1:

=importxml(C1,"//a[@class='u-textUserColor']/@title")

This code simply searches a Twitter account for a domain name. Twitter limits the amount of accounts you scrape for a given amount of time, so you’ll find that many or even all cells will be listed as error. This is normal and it may take up to an hour for all of your URLs to generate.

Scrape Domains for Email Addresses

This last step is where you’ll get the email addresses of those who have listed a domain name on their Twitter account. To do this, set up a second sheet and paste your URLs in the first column. Next we’ll be searching all of the common places that an email would be listed on a site: Home Page, contact, contact us, about and about us pages. For each page create a new column and paste the following code and emails should start to populate:

  • Home: =substitute(IMPORTXML(A1,"//a[contains(@href, '@')]/@href"),"mailto:","")
  • Contact: =substitute(IMPORTXML(CONCATENATE(A1,"/contact"),"//a[contains(@href, '@')]/@href"),"mailto:","")
  • Contact Us: =substitute(IMPORTXML(CONCATENATE(A1,"/contact-us"),"//a[contains(@href, '@')]/@href"),"mailto:","")
  • About: =substitute(IMPORTXML(CONCATENATE(A1,"/about"),"//a[contains(@href, '@')]/@href"),"mailto:","")
  • About Us: =substitute(IMPORTXML(CONCATENATE(A1,"/about-us"),"//a[contains(@href, '@')]/@href"),"mailto:","")

Obviously, there are more places you could search for an email, but this covers the basics. And now you’ll be left with a page peppered with email addresses of those domain names you’ve just scraped. The best way to clean these up is to paste them all into one column in Excel and then use the “Remove Duplicates” option.

So, finally, you’ve scraped (a portion) the email addresses of a targeted Twitter userbase. However, since this process can be automated, you can get thousands of targeted emails while doing hardly any work. So even if you didn’t get the emails of all the Twitter users in your list, note that you can repeat this process for many other users and grow you list that way.

What to do with Twitter Account Emails

Depending on the the country where you’re based in, you might be restricted in what you can actually do with the emails you’ve harvested. For instance, Canada restricts usage of email blasts sent to people who you’ve never had contact with before. However, even though you can’t send directed emails to them, there are other things that can be done with these emails. Here are a few:

  • Invite them your Google Plus Page: You can cross over your twitter list to your Google plus page and invite them to see if they’ll want to follow you on Google plus as well. To do so, you’ll need to put your emails in a csv export and upload them to Google Plus as shown below.
  • Upload to LinkedIn: If you have a personal or business LinkedIn page that you want to grow, you can use these emails to send invitations to connect on LinkedIn. Again, you’ll need to create a csv export to get this to work.
  • Facebook Ads: There is a great feature in Facebook that lets you create ads that will be sent only to a certain list of emails. These ads typically have great conversion rates so it would be fitting to use this email list to set up Facebook ads with
  • Invite to a Google Calendar Event: There is a little known trick where you can invite any email address to a Google calendar event. In the event note you can write down whatever offer you are giving, just like an email. However, you can only do this 500 times in one day so watch out so your account doesn’t get banned.

So there it is. If you were able to complete the tutorial on how to harvest emails from Twitter you should have quite of emails to play with now. And even if you can't direct mail anyone on these lists, there are other options at your disposal to get the most out of them.

Found this guide useful? Feeling generous?

13 Must-Have Apps to Jumpstart Your Shopify Store

Starting or want to start a Shopify store and don’t want to code? One of the best things about the Shopify platform is the ease of implementation. Most modifications can be done without even knowing how to code. Things like modifying themes or setting up integrations with third party services are made extremely easy with the platform. 

Having started a few Shopify stores myself, I’ve come across a few apps that have made my life marketing and running my stores much easier than without them. But, not all apps are created equal. Many apps that are free lack key features and sometimes some that are expensive can be easily done with a free one. So, if you’re just starting out with ecommerce or if this is your first Shopify store, then this guide should really help you get on your feet. 

All of the apps featured have been apps that I’ve tried and tested in Shopify stores I run. Furthermore, all of the apps in this list require no coding knowledge. They may, however, require some configuration to get up and running for the first time. In most cases, I have tried to include apps that are free or are at least free for a trial period to allow give you the most functionality on your new site without having to invest right away.

What is Shopify?

Shopify is an ecommerce shopping cart platform that let’s you easily set up an online store. With it, you can easily install apps, themes and upload products. It handles almost everything that would be needed from a basic online store, from hosting, to inventory handling, payment processing and more. It starts as low as $9 a month and rises to $179 for enterprise plans.

13 Starter Apps for your Shopify Store

Oberlo - Free

Oberlo is the ultimate app for those getting started with dropshipping for the first time. It takes care of almost all of the tasks you would normally have to do when running a Shopify dropship store. For instance, you can use it to import products and product information directly from Aliexpress, create pricing rules and then automatically process orders and send buyers their tracking info. Even better is that the first 500 orders per month is free, meaning you can fully flesh out and start your store without buying a single item of inventory. 

Chimpified - Free

Chimpified - Free

Chimpified - Free

If you have Mailchimp as your email service provider, this is an app that you’ll definitely want to get it on. It gives instant integration from your Shopify store to your MailChimp account. It gives you the ability to capture email addresses and send them directly to your mailing list. Furthermore, you can even use it to track subscriber buying behaviour to customize your automated email campaigns and tailor them to each of your customer’s preferences. For example, if an email subscriber buys a toothbrush from you, you can use the integration in this app to automatically send them a newsletter campaign for toothpaste. 

Alt Text - Free

Alt Text - Free

Alt Text - Free

If you’ve already started a store and don’t want to go back and add Alt-text to all of your images, this app is one your one stop for alt-text. Simply install it and it’ll add alt-text to all of your product images and any other images you have on your site. If you aren't yet familiar with SEO practices, adding alt-text to each of the images on your site, including product images, helps Google and other search engines understand the content of your images. As a result, adding quality alt-text tags to your images helps your pages rank higher in search engines. 

Privy - Free

Privy - Free

Privy - Free

If you’re looking for a free newsletter pop-up with exit intent, Privy is your best bet. This app easily lets you include a newsletter pop up on your site with custom messaging. Included exit intent means that whenever someone’s mouse goes to leave your site, you can show them a pop-up just as they are about to leave. Doing so dramatically increases the amount of newsletters sign ups you get.

Have2Have.it - Free - $300 /month

Have2Have.it - Free - $300 /month

Have2Have.it - Free/Paid

Selling on Shopify with Instagram? You’ll want this app. Have2Have.it will make the most of the one link you are permitted on Instagram by creating a landing page where users can purchase all of the products that you’ve featured on your instagram page. The landing page created will have the same look and feel as your instagram feed, the difference is that they will be able to use this page to purchase your products featured in your instagram posts. Furthermore, the setup is easy. The app reads your Shopify feed and lets you instantly tag your photos with your products. Given the high average conversion rate of Instagram traffic, you’ll want to give this app a shot.

RetargetApp - 10% of ad spend

RetargetApp - 10% of ad spend

RetargetApp - Paid

If you want an easy way to set up retargeting campaigns for your store, look no further than Retargetapp. This app uses your product feed to delivery dynamic and custom retargeting ads to all visitors on their Facebook feeds. Meaning, if someone visits your store and views a certain product, they’ll be served an ad with that product on their own product feed. Pretty powerful stuff.

Product Reviews - Free

Product Reviews - Free

Product Reviews - Free

Pretty self-explanatory, but this app is an easy way to add product reviews to your site. And, if you’ve seen how product reviews can increase your conversion rates, you’ll want to get this on your site. 

Zero Out

Zero Out

Zero Out - Paid

Oddly enough, Shopify doesn’t have the capability to remove items from your store once they are out of stock. This app will take care of this and make sure that all of the items on your site are in stock.

Social Login - $9/Month

Social Login - $9/Month

Social Login - Paid

Ever wish you never had to create website another account ever again? So do your customers. Do them a favour and let them login with their social media accounts. Do yourself a favour and get this functionality painlessly with this app. Allowing your customers to login with their social accounts will increase the amount of people who actually sign up by decreasing the amount of time required to get an account. Furthermore, people are wary of sharing their personal information on sites they aren’t familiar with. Letting them sign in with an account from a trusted source immediately alleviates this fear. This app will greatly improve the experience of using your store.

Live-Chat 24/7 - Free

Live-Chat 24/7 - Free

Live-Chat 24/7 - Free

Live Chat is an app that I’ve used that lets you set up a simple chatting system on your website. With it, you’ll easily be able to install a system that lets you communicate and help your customers in real time. The best part about it, is that it’s free. So if you’re starting a store and you aren’t sure if you’ll have the traffic to justify spending money on a fully featured chatting app, then this one is the way to go. Plus, it even let’s you set up simple automated messages to greet your customers if you aren’t around.

Amazon by Shopify - Free

If you haven't already mirrored your product selection on Amazon, this app will make doing so a breeze. The app, which is developed by the Shopify team, allows you to sync your Shopify inventory and place it all on Amazon. It takes the trouble out of running an Amazon store alongside your ecommerce store by centralizing all of your data. For example, it syncs your inventory quantities, product information, images and even orders with your store. It even reconciles your order amounts into your Shopify store so you can see your total sales by sales channel. However, to list on Amazon you'll still need a seller subscription to Amazon, which will cost $39/month. This might seem high to start, however, Amazon can bring huge traffic to your product listings that you might not be able to get to your products when you are first starting out your store. 

Plug-in SEO - Free

Plug-in SEO - Free

Plug-in SEO - Free

This app checks your store for basic SEO issues. It ensures that you have things like meta-tags, alt-text, appropriate loading times, etc… to make sure your site is SEO friendly. This is a good app to get going once you finalize the initial set-up of your store. 

Enlistly - Free

Enlistly - Free

Enlistly - Free

Got a new store, but don’t want to spend the big bucks to get into an affiliate program up and running? If you’re willing to reach out to potential publishers, this app will take care of the tracking part, for free. This app lets you hand out tracking codes to affiliates and then tracks whatever traffic or purchases are coming from those tracking codes. It even includes a hands-free affiliate sign up page where affiliates can sign up and receive their tracking code on their own. Having an affiliate program is an integral part of a ecommerce marketing strategy, so get this if you’re just starting out. A definite must-have app.

Google Shopping - Free

Google Shopping - Free

Google Shopping - Free

Google Shopping is starting to get big. But, like all other marketplaces, it requires you to fill out a feed to get your products up and validated. This app easily lets you get your entire inventory live on Google Shopping. And, once your items are on Google Shopping, you can easily start advertising them individually on Adwords. Typically I've found that items individually advertised with a product feed through Google Merchant Center perform much better than regular text ads. So give it a shot. There is no reason not to get this app!


Bonus - SumoMe:

This one is actually not a Shopify app, but is extremely easy to install and once it’s installed, easily allows you to create it's now famous share buttons on your website. Once you’ve copied the one line of code required to set up the app, you’ll not only be able to set up a (mobile ready) customizable set of share buttons that appear on any page you specify, but a plethora of marketing and discovery apps that'll boost traffic to your site. You can even use it to set up a landing page generator that, while I haven't tried, is said to increase conversions especially for email lists. 

So if you’re starting a Shopify store, check out some of these “must-have” Shopify apps. They’ll get you started in marketing automation, sales, inventory management and more with your Shopify store. 

Wordpress Review Post Generator with Amazon Affiliate Links

If you're using Wordpress to run an Amazon review site, you'll know how much tedious work is involved for either you or your VA to get even one post up. There are countless steps to follow to make sure your reviews are SEO friendly and even more to just even find the items to review. To save on time and resources for myself, I've created an automated sheet to generate SEO optimized HTML code for your Amazon reviews in minutes. This generator will do almost everything required except for the actual review writing. I'm sharing it with you for $39. It will auto generate your Amazon affiliate links and place them in 3 different locations for each product review. It also includes the alt tags and images for each of the products. Once purchased, you'll receive a share code to your dedicated Wordpress HTML Generator in Google Sheets.

How it works

The first step in writing your review post is to actually get products that you want to review. As you may know, this process is actually quite boring and long. You normally have to find 10 or more products on Amazon, generate and copy your affiliate links in a spreadsheet and pull product information from them to start your review. This Google sheet automates that entire process. Using this sheet, all you need to do is enter the keywords of the type of items you want to review, how many results you want to generate and your affiliate tracking code. However keep in mind, this is intended only for those who are reviewing products for the Amazon affiliates program. Once you've entered all of the information required, the sheet then generates affiliate links for the parameters you specified. Above, I've used the keywords "flying drone" to pull 14 flying drones from Amazon, along with the test affiliate code. After pulling the products, this sheet then starts filling up the reviews with content.

Get the Wordpress Review Post HTML Generator Now

The sheet also grabs the price of each of the items to include them as a caption for the product image. Finally the sheet combines your review, your images and includes SEO optimized HTML code to generate the Wordpress Amazon reviews.

How to use the generator

Once you boot up the sheet, you'll only have to complete 3 steps before having fully usable HTML code for your Wordpress review site or post:

  1. Enter the keywords of your product, the amount of results you want and your amazon affiliate tag
  2. Write your reviews, paste your image links and write your image alt text. I've displayed the scraped product title to help you write unique alt text for your images.
  3. Paste your newly generated HTML code in your review post

So it's pretty easy.  If you think that this HTML generator will save you some time creating your reviews, hit the link below to purchase your copy for $39.

Note: for best image results, it is important to resize your product images to be 450 pixels wide. You can do this easily by putting all of your product images in one folder and using the program smallimage to resize all of the images quickly. This will ensure that your images in your Wordpress post are not distorted. 

What your reviews will look like

Reviews generated by this sheet will include the following: 

  • H3 Title with embedded affiliate link
  • Product image with embedded affiliate link
  • Image caption with price, name and embedded affiliate link
  • Product review content

You can have a look at the image below to see what the finished product will look like using the generator:

This tool will give you back the time necessary to write complete and well written Wordpress review posts and less time manually scraping information and optimizing your reviews for SEO. If you using Wordpress to run Amazon Affiliate review posts, you'll definitely be able to use this write write longer, better articles and make more money.

Get the Wordpress Review Generator for a one-time purchase of $39


How to Scrape Blogger Emails with Google Sheets

If you read the last post, you’re probably aware that Google Sheets can be used as a primitive scraper. Using xpaths you can search websites and pick them apart to find a specific piece of information. Now we’ll be using Google Sheets to scrape blogger emails. In this guide, we’ll be scraping a list of blogger URLs with Google Sheets from Google Search, and then scraping those URLs for publicly available emails, for the purposes of blogger outreach. If you copy the code, setting up this sheet yourself should be pretty easy to do. See the example below:

Scraping Blogger URLs from Google

The first step to scraping blogger emails will be to generate a list of blogger urls to scrape the emails from. This can be easily done within Google sheets. We will be using an ImportXML formula on a Google Search query to generate this list. To start, copy the following code into your sheet (A6 if you’re following the sample above):

=ImportXML(CONCATENATE("http://www.google.com/search?q={blog ",B3,"}&num=",D3), "//h3[@class='r']/a/@href")

This code lets you alter the keyword and amount of search results you want to appear in your sheet (see references to cells B3 and D3). The keyword “blog” is already hard coded in the search query since we’ll be using this to get blogger emails, but removing this will let you scrape any of sort of site. If you’re curious as to how this is working, this formula is first executing a search query, and then it is returning all the results for the xpath query “//h3[@class='r']/a/@href”. Within a Google search results page, this refers to all H3’s that are links (hrefs).

Cleaning Up the Links

Now that you have a list of links on your sheet, they won’t be workable just yet, so you’ll have to clean them up. To do that, use the following formula and paste it in your sheet (B6 if you’re following along):

=iferror(substitute((RIGHT(A6,LEN(A6)-7)),REGEXEXTRACT(RIGHT(A6,LEN(A6)-7),"& a=.*"),""),"")

his formula uses a REGEXEXTRACT to search for the bit of text that follows the pattern “&sa=” and then, using a SUBSTITUTE, removes anything after it. It then substitutes the first seven characters of the text with nothing. What you are left with is a clean URL that the ImportXML formula can parse and search.

Scraping Blogger URLs for Contact Emails

Having a clean list of blogger URLs, you can now search and scrape them for email addresses. Keep in mind that this formula will not be searching all of the pages of a website for emails and that some emails are generated by javascript and will not be “scrape-able”.

To start, copy the following code in your sheet (C6 for everyone following along):

=iferror(substitute(IMPORTXML(B6,"//a[contains(@href, '@')]/@href"),"mailto:",""),"No Email Found")

This code is fairly simple. It uses the ImportXML function to search for all links that contain the “@” symbol within them. You’ll get some false positives with this method, but this is done to account for all the types of email domains that are out there. Then, if no email is found, the formula returns “No email found” so that your sheet isn’t full of errors.

We can go a step further and check the “contact” page, which typically hosts email addresses if the home page does not. To do this, we will simply be adding “/contact” to the cleaned up URL that we generated before. Copy the following code (cell E6):

=CONCATENATE(B6,"/contact")

Using this formula you’ll then generate a second URL to scrape for sites with a “Contact Us” page. Next step will be to scrape it. Again, use the same formula (H6):

=iferror(IMPORTXML(E6,"//a[contains(@href, '@')]/@href"),"No Email Found")

Using this formula, you’ll be able to scrape the contact page (if it exists) for a second chance at getting an email. You could go further with this and try to search the “Contact-us” page that typically appears on websites, but after following this guide, you should be able to set that up fairly simple for yourself. Bloggers typically shield their site from scrapers by replacing the “@” sign in their email addresses with the word “at”. If you’re willing to get a bunch of false positives you can try to search for a reference of the keyphrase “ at “ to get around this. But, typically, those bloggers aren’t interested in mass emailed pitches either.

While this won’t get all emails out there, it is a free way to quickly collect a lot of blogger email addresses with a script. And surely there are other places that you can easily check for an email address with the ImportXML formula. Not to mention, removing the keyword “blog” from the initial search query will let you scrape emails with a Google Sheet from any other type of site.

Sending a Mail Merge with Google Sheets

Now that you've got your list of emails to use for link building or whatever it is you use a lot of emails for, you'll want to start sending them your message. While not difficult, this is a time consuming task. Even if you've written an email template, you'll have to load each email individually and send them off one by one. Luckily, with a Google Apps Script, we can write a mail merge to mass email our newly scraped email list. 

Setting up Your Sheet

Before writing your script, you'll need to set up your email list and message. To do this, open up a new sheet, paste the email list you've gathered in the first column (A1), then paste the body of your email in the second column (B1). 

If you're curious about writing a good email pitch, this is a good resource on the subject. It essentially boils down to writing an honest (re: no exaggerations or buzzwords) and concise email about your cause. It should be well formatted and easy to read, with appropriate line breaks and bullets. Since you'll be using a spreadsheet to send these emails, use a concatenate formula with char(14) for line breaks and char(149) for bullet points. These codes will work in both excel and Google Sheets. It is also worth noting that including the recipient's name in the email will go a long way to build trust, so include it if you can.

Writing the Mail Merge Script

script editor google sheets

To set up your script, open up the script editor in tools.  This will open up a new tab where you can run and debug your scripts. In the white space, paste the following code:

function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 1;// First row of data to process
var numRows = 40; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 2)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[0];// First column
var message = row[1]; // Second column
var subject = "Little Rug Shop Affiliate Program Invite";
MailApp.sendEmail(emailAddress, subject, message);
}
}

If you're looking at this and feeling a little bit intimidated, don't be! We'll go right through the different variables so you can understand how to use this script for future projects.

  • startRow refers to the row you would like the script to start reading from. Since we copied our email addresses in A1, we'll set this variable to "1". If you wanted to start from row 15, you would set it to 15 and so on. 
  • numRows refers to the amount of rows that you want to process after the starting row. 
  • dataRange refers to the variable we'll be using to create a range to pull our information from. This uses the numbers we specified below and columns 1 and 2 to create the range. In Sheets you would see this being written equivalently as the range "A1B40".
  • subject is a static variable for the subject line of your email. This will be the same for all emails sent using the script.
  • MailApp.sendEmail(emailAddress, subject, message); refers to the method that actually send the email. It takes the email address, subject and message as parameters. Read this article to see what else is possible with the sendEmail() method.

Once you are all set up, have the right subject line, message and email addresses, hit the play button that is right above where you entered the script. Google will then ask for you authorization to access your document. After clicking yes, the emails will start sending. If you're wondering, Google will let you send a maximum of 500 emails a day under your account. Send any more and you risk having your account flagged as spam and risk suspension. 

So now you know how to go start a blogger outreach program from gathering email addresses to sending them all a message automatically. After using this method a couple times and finding an email pitch that works for you, you can scrape hundreds of emails and send to them within minutes. This is a great alternative to programs like Scrapebox, since this is free :)

Found this guide useful? Feeling generous?

How to Scrape Amazon Prices with Google Sheets

Scraping Amazon prices with Google sheets used to be “easy” since you could use an ImportXML formula with an xpath to target the price of an Amazon listing directly on Amazon.com. However, Amazon seems to have currently blocked that capability in Google sheets, leaving users of that method with a parse error. This new method I’ve discovered will use make use of a 3rd party Amazon price tracking website to scrape the prices instead of scraping them from Amazon itself.

This guide is a bit on the advanced side, but as long as you follow the code exactly as seen, you shouldn’t have any problems. If you need something robust to convert barcodes to ASINs or get prices using the AWS API, I've developed a sheet that you can purchase here. In any case, the code used in this tutorial also allows you to dynamically generate the prices of any number of Amazon products (up to 1000), using a keyword search within the sheet. The example below shows what you should end up with once you’ve completed it.
 

July 2016 Update: I now offer an Amazon Price Tracker tool that uses the Product Advertising API to track prices (but this blog post still works, too)

Scraping Amazon Listing URLs from Google

The first step to getting prices from Amazon is to generate a set of Amazon product links. If you already have a set of links, you can skip this step. However, I figured that most people will also need to generate a list or won’t want to generate it by hand. So, start by copying the selected code into your sheet (if you want to follow the example sheet above, copy this code into cell A6):

=ImportXML(CONCATENATE("http://www.google.com/search?q={site:www.amazon.com ",B3,"}&num=",D3), "//h3[@class='r']/a/@href")

Using the ImportXML formula, this code exclusively scrapes Amazon.com links found on a Google search results page. And, if you’re using this snippet, you’ll be able to input a keyword into B3 to return Amazon listings relating only to that keyword. Likewise, by entering a number into D3, you’ll be able to return that number of URLs from Google. For example, typing “beard oil” in B3 and “17” in D3, you’ll return 17 beard oil Amazon product listing URLs.

Cleaning Up Your Scraped URLs

So you’ll just have scraped a few links, but the URLs you’ve just scraped aren’t going to be of any use in their current state and they’ll probably look a little bit like this:

/url?q=http://www.amazon.com/Leven-Rose-Beard-Leave-In-Conditioner/dp/B00IB6IAOS&sa=U&ved=0CBQQFjAAahUKEwiztb63qpbJAhVMWj4KHTdvB-U&usg=AFQjCNHCgEto98Yas5bWR_3sWd9pbsRZPA

So to be able to work with them, use the following code (paste it into B6 if you’re following the example):

=iferror(substitute((RIGHT(A6,LEN(A6)-7)),REGEXEXTRACT(RIGHT(A6,LEN(A6)-7),"&s a=.*"),""),"")

This code uses a SUBSTITUTE and REGEXEXTRACT to find the text “&sa=” within the link and remove anything following it. It’ll also remove the first 7 characters of the scraped text. The function also includes error handling so that you can feed it with empty inputs and not have your entire sheet riddled with “N/As”. In the end, this code should leave you with a workable URL that looks something like this

http://www.amazon.com/Leven-Rose-Beard-Leave-In-Conditioner/dp/B00IB6IAOS/

Scraping Prices from Amazon URLs

Now that you’ve cleaned up your URLs, it’s time to scrape the prices of these products. Since Amazon currently blocks xpath scraping, we’ll be using a site that doesn’t. ezpricealerts.com is a site that keeps track of all prices on Amazon and lets us scrape the prices with an ImportXML formula in Google sheets. To generate your price, simply paste the code below (to keep with the example above, copy this code into cell D6):

New updated code (November 7, 2016):

=iferror(INDEX(importxml(concatenate("https://www.ezpricealerts.com/products/US/",right(substitute((RIGHT(A6,LEN(A6)-7)),REGEXEXTRACT(RIGHT(A6,LEN(A6)-7),"&sa=.*"),""),10)),"//p[@class='form-control-static text-success']"),1),"")

Using a combination of a few REGEXEXTRACT and SUBSTITUTE formulas, this code reassembles the URL of your Amazon listing into a URL that thetracktor.com recgonizes. For example, it’ll end up looking something a bit like this:

Once complete, this code then extracts the price of the ASIN found on this page using an ImportXML function referencing the xpath of the price. If you’re unsure of the definition of an xpath, it can be easily summarized as a unique address of a piece of data containined within a tag in an XML or HTML file. The ImportXML function uses this xpath to find the price tag on the webpage. To generate one easily, you can install a browser extension such as xPath helper. In our case, the xpath of the price on thetracktor.com was this:

//p[@class='form-control-static text-success']

There it is. A new way to use Google Sheets to scrape Amazon prices. The one downfall of this method is that sometimes ezpricealerts won’t update sale prices right away, so from time to time your prices might be a little bit high. But for quick research or generating Amazon review articles, this is a great way to get started. And, technically, you could directly scrape the price from the first step without “cleaning” the URL. However, it’s sometimes good to have a URL to go along with your price.

Found this guide useful? Feeling generous?

How to Automatically Follow Twitter Users with a Script

Twitter Purchasing Power
Twitter Purchasing Power

Following Twitter users manually can be pretty time consuming and, not to mention, annoying. Despite this, it's one of the fastest ways to grow your Twitter account. And given that the traffic that you can generate from Twitter is 72% more likely to purchase from your online store, it can make sense to devote some time to this sort of task. Courtesy: Shopify

As such, marketers often spend hours following and unfollowing users. But, with the right script, you can automate following twitter users and cut down the amount of time spent getting followers so you can spend more time posting engaging content.

The process is pretty simple. First you'll need to find a Twitter influencer in the same niche as you. For instance, if your niche was digital marketing, you might want to use the followers of an influencer such as Sujan Patel. Once you've reach a page like this, open the console in your browser. In Chrome simply right click on the page and click "Inspect Element" then click on the "Console" tab. Next copy the following text:

__cnt__=0; jQuery('.Grid-cell .not-following .follow-text').each(function (i, ele) { ele = jQuery(ele); if (ele.css('display')!='block') {console.log('already following:', i); return;} setTimeout(function () {ele.click();}, __cnt__++*500); });

And paste it in the console and press enter. The script will start working right away. It will follow 2 twitter users a second. Before running the script you can scroll down the page to keep loading more accounts, but make sure to follow a maximum of 250 followers a day or you'll risk having your account shut down for spam.

After doing this for a few days, you'll probably want to cut down on the amount of followers you have on your account. To get rid of them easily and without any of that nasty manual labor, simply go to your followers page and use the following code in the console:

$('.js-follow-btn').each(function(){ $(this).trigger('click'); });

And, just like that, you'll have cleaned your Twitter account with (almost) no work on your part.

So now you'll be able to grow your Twitter following fast. It's a great way to automatically follow Twitter users with a script. If you use this method, just be sure you aren't following enough to risk a ban.

Also, if you want to export the Twitter usernames, bio websites and sometimes emails your followers or the followers of another user, check out this app, TwitExport.

How to use an iMacro Script to Follow Pinterest Users (and get more followers)

Pinterest users generate some of the highest average order values of all social media traffic. However, getting a large following on the site, and quickly, requires a lot of manual following of users in your niche. Average Order Value by Social Network Courtesy: Shopify

Thankfully, you can use an iMacro script to automate the bulk of this work and put more of your time posting quality content on your account. To get started, you'll need to install iMacro in your browser of choice. Once you have it installed, you'll need to make a macro using the following code:

VERSION BUILD=8300326 RECORDER=FX TAB T=1 SET !ERRORIGNORE YES WAIT SECONDS=12 TAG POS=1 TYPE=BUTTON ATTR=TXT:Follow

Note: be sure to replace the build number with your own and be sure to click "Convert Macro" after you've saved it.

After you've completed this, find a Pinterest users with many followers in your niche. If, for instance, you wanted followers in the home decor niche, find a pinterest user such as HGTV and go to their followers page. Once you are there, simply run the script and you won't have to follow manually. Exciting.

This is a great way to get easy pinterest followers with a script. But be sure to only follow a maximum of 200 users a day otherwise you risk getting your account banned.

Marketing Automation (or how to get thousands of followers without even trying)

The question isn't anymore about the message, but instead, how to get the message out to as many people as possible. And to do that for next to no budget. This is the direction digital marketing is taking. And this is what drives quick growth. Automation is exactly a solution to this. It lets a single person do the work of an entire team. Your traditional marketing messages mean nothing if no one can read them.

Take social.

If you're not already automating at least some of your social tasks, you're missing on a goldmine. Content marketing, social media marketing and community management require a lot of time. If you're trying to get fast traction on a new social account, you'll find yourself doing a lot of manual liking, commenting, posting, finding content and following.

Many clever programmers have already created the tools to bypass the menial tasks involved with this. Apps like Follow liker or TweetAdder have been developed to do just that. They follow, comment and like for you.

You can set a Follow Liker account to run by itself, 24/7, running all of the social tasks you would have never had the time to do. Of course, this is against terms of service, but if you aren't too aggressive you can start seeing your follow base grow on a huge number of social sites.

Content creation can be largely automated now, too, thanks to IFTTT.com, a website thats whole purpose is to automate tasks on a huge number of web services and social media sites. Just for an example, you can get IFTTT to autopost any new link to from particular subreddit to your tumblr blog. You can automate your instagram and have each post sent your twitter or Facebook page. IFTTT automation can be extremely powerful. Oh, and it's free.

Just with these two tools you can automate an entire social media account, from finding content, to posting and growing. And it's easy to scale too. Imagine creating many dozens of automated social accounts linking to your page and never having to touch them after setting them up.

So get creative.

Start automating.