Blog Posts About

Work

This section is all about things I do for a living. I currently work at Altitude-sports.com where my main task is to acquire new clients for the business. If you haven’t guessed, this section is almost exclusively devoted to Internet Marketing with a bit of posts about code mixed in.

eCommerce

How to Predict Blog Post Revenue

A recent post on Data Science Central caught my eye that could definitely be used to predict blog post revenue:

http://www.datasciencecentral.com/profiles/blogs/state-of-the-art-machine-learning-automation-with-hdt

The writer wrote an algorithm to predict the page views of an article based on keywords in the title and post type.  It was quite interesting as it used decision tree logic and regression, instead of pure math to achieve the results.

I’d suggest looking at the blog post category or tags to  help determine the expected revenue for the posts in addition to the current factors for better strategic decisions depending on the scope of your blog.

 

Excel

Using IF & Other Logical Functions in Excel

Many Excel users know how to use basic logical functions. However, I’ve realized that many people are uncomfortable combining multiple Excel logical functions into a single large chain. This is the first step to becoming an Excel wizard.

Excel Logical Functions List

The following is the list of functions that I will cover in this post. I’ve added the French translation as I work in a bilingual environment and not everyone has an English installation.

There are other logical functions that are less commonly used that I will not cover. You can read up on them here.

English Name French Name
IF SI
IFERROR SIERREUR
AND ET
OR OU
COUNTIF(S)
SUMIF(S)

Common Uses of Excel IF Functions

The basic IF function is one of the basic building blocks of Excel. Here are some simple examples that show some use cases. All the other logical functions tend to be included within IF functions except for IFERROR and COUNTIF which can have other use cases.

=IF(A1 = "Philip", TRUE, FALSE)
=IF(AND(A1 >= 2, A2 <= 3), "This is true", "This is false")
=IF(OR(A1 = 2, A2 <> 2), 1, -1)
=IFERROR(Badly Formated Text, "Well Formated Text")
=IF(COUNTIF(A:A,"*sub-string*") > 0, "We found you", "You never existed")
=IF(COUNTIFS(A:A,"*sub-string*",B:B,"chicken wing") > 0, "We found you next to a chicken wing.", "You may be there but not next to a chicken wing")

 

The first statement is just looking to see if cell A1 contains the exact text “Philip”. If it contained, ” Philip” or “Philip “, it would return false.

The second statement would be true if cell A1 is greater or equal to A2 and cell A2 is smaller or equal to 3.

The third statement is similar except with an OR statement. An OR statement are true if at least one of its parts are true. For those who aren’t in the know, the <> symbol represents “is not equal to.”

The fourth statement is most often used at work when there is a possibility of dividing a number by 0. Dividing by 0 results in an Excel error and it looks nicer to have a fail safe rather than staring at a #DIV/0!.

I examine in COUNTIF & COUNTIFS type functions in another post.

eCommerce WooCommerce

Importing Products in Multiple Languages Using WPML & WooCommerce Product CSV Import Suite

By default, the WooCommerce Product CSV Import Suite will always import your products in the default language of your eCommerce website. This can be problematic when you are working with a site that has multiple languages.

While WPML is not my language plugin of choice for WordPress, it definitely requires the least amount of work to get running with the WooCommerce ecommerce plugin. It also has several necessary functionalities that make importing products in multiple languages easier than it looks. Here’s my process in more detail.

Import Products in Default Language

A small tip, would be to have all your product images, categories, attributes and tags already uploading into WordPress. I’ve drag-and-drop uploaded over 500 images with no problem, so you shouldn’t have any problems either!

In any case, the first step is to only import the products in the default language of your theme. If you don’t do this, you’ll want to shoot yourself later on. This is relatively easy to do and if you need help working with the CSV either drop a line in the comments or read the official plugin documentation.

Export All Your Products

These easiest way to set up a unique way of detecting what products are in your default language is by exporting them before duplicating. This will allow you to create a function in Excel that can tell you if they are in the default language master sheet or not. This method of ID will only work if you are doing a bilingual site. I’m sure you can figure out a better way if you’re dealing with multiple languages. Please leave the method in the comments if you do!

Duplicate Your Products in Every Other Language

Go to the WPML Translation Dashboard in the Translation Management section. Select all your product posts and scroll down. You should see the option to duplicate the posts for your other languages. Do it as many times as needed. Be sure to have your selection only include posts that have no translation or you may be repeating the same action over and over for nothing.

Merge Proper Text for All Non-Default Languages

This is the last step on your translation journey. Export all your products and use the Excel sheet with your default language products to identity them if needed. Update the relevant information for your translations and merge. Your task is now done!

eCommerce Work

Mixing Product / Informational and Marketing Content

The last talk that I will be attending at RDV_MARKETING is the one given by some lady from Twitter. I’ll probably update to her real name later but she seems really interesting and unlike the Ulule guy has good designers.

Her talk is much more focused on tech products, but I’m going to try and convert her message fast into something applicable to eCommerce.

Product (Informational) vs Marketing Content

Product content is informational and invisible. For eCommerce, it can be navigation, product specs.

Marketing content is what causes the sale. Like product descriptions, call to actions, product stories, banners, advertising.

How They Meet

Vague call to actions, product pages, home page, etc.

Dead Zones

Places where opportunities have been forgotten. Where good copy could be present.

Example: Emtpy States

There are empty states like an empty cart or a page with empty products. Web updates or tool tips. You should not treat your emtpy like an error message but instead take the opportunity to either showcase another brand, a promotion or something like that.

War Zones

These can be considered places like products page. Where you want to be informational about the product but also really push the sale. Which one should be prioritized and how can we make peace?

Example: Product Pages

We need to use these to make pages, but they must also have a lot of information for users to be confortable. We don’t want to distract users from what the product actually is and how it can be used by how it’s going to change their lives and why they should buy it now. Not sure if this is actually a war zone, but I feel like it might be.

Content Strategies

You really need to either find peace between informational and marketing content, or choose one that will be pushed more than over. It is important to know what you want, have a structured planning process and you need to choose who is in charge of the project.

Make Something Out of Nothing

Even with something that is purely informational, you can turn it into a hybrid with marketing with the right process. The content and product aren’t what is important when working with strategy, but find the common ground. If there is something unmovable then a choice must be made.

An example from Twitter, is how they integrate marketing content in their release notes.

eCommerce Work

Crowdfunding as a Native Advertising Channel

Another post about a talk at RDV_MARKETING from the guys from Alexandre Boucherot from ulule.com. Ulule is a crowdfunding platform that has been available to Canadians for about a year.

Types of Crowfunding

There are three types. The first is the standard type like Kickstarter, Users give you money in exchange for perks. The next offers equity. That means that users get a cut of your profits. The last is where users lend you money for your products which you will need to pay back.

Why Use Crowfunding

Crowdsourcing allows you to create or expand your current community. It isn’t because crowdsourcing expands your reach that it create a community. It is because it allows user to get a more behind the scenes look at product development.

It is also a great way to test interest in your product. If there is no interest in your product, it just won’t get funding. For example, test new products that wouldn’t be created unless there was a extremely high demand like a product developed in the lab that will only be launched if there are enough pre-orders. It’s also a great way to get feedback from early adopters fast.

Advertising Using Crowdfunding

As a brand, you can also sponsor projects that make sense. In a similar way as the previous post about influencers, it’s possible to take advantage of high engagement of a project’s investors to reach a new group of peoples.

For example, the National Bank of project has a profile of Ulule where they showcase the type of projects they like to invest in. Heineken and Nissan have also allied with Ulule to find entrepreneur-influencers.

FYI, this presentation was super crappy. Not only was the color scheme really hard to read on the PowerPoint, but it sounded much more like a sales pitch for their platform. I really hope they fire the designer who did the PowerPoint template. Who in their right mind thinks that blue writing on an orange background is aesthetically pleasing.

eCommerce Work

How to Be Better at Influencer Marketing

As part of the conference, Infopresse is promoting on of their paid training. This particular one focuses on Influencer Marketing. Hopefully, it’s good but it sounds like it will be just a long talk about how to get people (influencers) to promote your brand on Instagram.

Why Focus on Influencer Marketing Strategies

First and foremost, Quebec is behind compared to the rest of North America in adoption Influencer Marketing strategies. In other words, it’s going to trend soon. This matters a lot for agencies that want to sell it, but trending marketing strategies are not really always good for actual businesses.

A good reason to go forward with influencer marketing is that the reach of businesses on many social networks is getting smaller and smaller. I’m pretty sure everyone has heard comments from SMB owners about their crappy Facebook posts no longer reaching everyone who has liked their business.

If you have enough data about your target audience, influencer marketing can be a way to target a specific sub-section of your potential customers. If you know 50% of your female customers who like pizza follow a specific Instagrammer, it might be a good idea to reach out to him and see what partnership possibilities exist. It might even end up costing you less than standard digital advertising.

Lastly, many people will watch YouTube reviews or read independent blog posts when making purchase decisions.

Why You Should Pay Influencers

This is pretty obvious.

  • Reach
  • Knowledge of their audience’s content preferences
  • Guaranteed engagement

How to Choose Influencers

First, it’s important to remember their audience. No point in partnering with a swimsuit Instragrammer to sell your bikinis if her audience is mainly pervy males. While the trainer offered like a gajillion different criterias, they all boiled into two points.

Influencer’s Credibility & History

Is the influencer credible? Is she respected by her peers? Does it fit your branding? Did they work with your competitors? Have they shared racist posts?

You should always ask for their history and call people who have worked with them before. You should also make sure they are professional and will send you a report after the campaign.

Influencer’s Audience & Engagement

Does it match your demographics? Who listens and engages with their posts? Are they real followers and engagement? What social media do they use? Does it fit with your branding and marketing strategy?

Types of Influencers

Bloggers, Vloggers, Instagrammers and Tweeters.

How to Find Influencers

There are paid platforms to help you find them are ultra expensive, guarantee nothing and remove some of the personal relationships that need to be built between the brand’s employees and the influencer. The best way to do it is manually!

Some Extra Tips

  • Be aware of frauds who will not produce what you want but take your money or products anyways
  • Don’t neglect medium and small influencers, they sometimes influence bigger ones and tend to be more authentic
  • Authenticity is not always crucial. Blatant product placement can work
  • Develop programs with an influencer with medium and long term goals. It’s better than just doing a 1 time thing. Might also end up being cheaper!
  • Always mesure your results at a macro and micro scale on both a quantitative (sales, traffic, etc) and qualitative (branding, quality, beauty) way.
  • Use influencers to educate audience about your product, compare your services or drive sales from their audience.

Ethical Implications

Does the influencer need to disclose your brand is using him? There have been cases where celebrities have gotten in trouble for not disclosing their association with a brand. I personally do not see a problem with this because I come from a link building background and this already seems a lot cleaner.

eCommerce Work

Tips to Better Penetrate New Markets

I’m currently attending the RDV_MARKETING where Jamie Hebert, Spotify’s Head of Marketing is talking. For those who don’t listen to music, Spotify was introduced into the Canadian market in 2014 and is a music streaming service.

His talk addresses three issues with moving a service into a new market:

  • Expanding audience once early adopters have been saturated
  • Moving from content to context
  • Adapting the service for the new audience

Moving Beyond Early Adopters

The first step he believes that any brand should do before trying to bring their services to a new country is to learn from others. For example, Target failed tremendously when trying to penetrate the Canadian market. On the other hand, GoPro has been extremely successful in making their product a internationally known brand that is accessible to more than just adrenaline junkies. Another good example would be Starbucks Canada. They began by testing the Canadian palette and what type of coffee do Canadians drink. The result was the True North Blend.

Moving from Content to Context

When users began starting using Spotify, they began by looking for specific artists or music styles. However, as they get used to the service, they begin looking for music that fits the time of day and events of their day. Instead of looking for specific songs, a user might look for a playlist that can accompany their run or commute.

They strongly believe that all content should be personalized. This is why they created Spotify Running. They noticed that many users were creating playlists for running, but multiple users do not have the luxury or knowledge to curate such a playlist. That’s why they create the service to add a layer of contextual intelligence to their content.

Adapting the service for the new market

They built a dedicated team for not only marketing in Canada but also an editorial team that builds playlists for the Canadian audience and a team to deal with independent labels and ensure Canadian have accept to local independent music.

Other than building a dedicated Canadian team, Spotify is trying to make a platform where they can showcase great Canadian talent. An example of this type of initiatve is the Spotify Sessions such as their show in Montreal with Coeur de Pirate. A weird fact is that only in Canada is that in our country these shows are not in Spotify offices! In fact, they also partner with local artists to showcase brands and help them get air play by showing the data to radio stations.

Contextuality also plays a part in adapting the service. Using a data-driven approach, they use DIB system (Data, Insights, Beliefs) when planning all marketing campaigns. They looked at the most played songs along a Toronto bus route area. Afterwards, they create a playlist for the specific bus route and looked to see the results. I’m guessing they were good as they repeated the same campaign across multiple other Canadian cities.

Lastly, Spotify creates local partnerships with many Canadian branches of big businesses. This helps increase the reach and engagement in the market. Spotify partners with local radio stations to extend radio shows into Spotify playlists.

PHP WordPress

How to Customize WordPress Sidebars

If you haven’t noticed! I’ve not only migrated my domain to t.omlinson.com, but I’ve also created a child theme based off of the Redwood WordPress theme. One particular element I needed to add was different WordPress sidebars based on the category page.

Old Way of Customizing Your Sidebars

In the past, I used to buy HTML themes and convert them into WordPress themes. This avoided some of the bloat found within premium themes and required a much smaller investment. During that era, this is how I would ensure different pages could support different sidebars.

I would create a PHP file called “wordpress-sidebar.php.” Inside, I’d insert the customization that I wanted. I’d usually not use widgets because it wasn’t something I was comfortable with at the time. Afterwards, I’d just add an if statement to call on the file I just created wherever I needed to.

The code would look something like this.

<?php 
 
//if you wanted a custom sidebar for your wordpress category archive page
//you could use in_category() if you wanted to target a post within a category
 
if(is_category("wordpress"){ 
 
      //actually not sure if TEMPLATEPATH is necessary, leave a comment if you know!
 
      include(TEMPLATEPATH . '/wordpress-sidebar.php');
 
      // the else would call the default sidebar, you could use elseif to create a chain if you wanted
 
} else {
 
      // this is a command to get the default sidebar in WordPress
      // it is identical to using include 
 
      get_sidebar();
}
?>

Pretty simple, but it’s the old and wrong way to do it.

New & Better Way to Create Different WordPress Sidebars

You begin by entering into your theme or child theme’s “functions.php” file. You’ll want to add code similar to this one:

<?php 
 
// Basic was of registering new WordPress sidebars
 
if ( function_exists ('register_sidebar')) { 
    register_sidebar ('wordpress_sidebar'); 
 
    // More advanced way of adding an alternative sidebar allow you to control some of the style and CSS
    // elements. You could also use a function called register_sidebars()
    //  to create multiple WordPress sidebars but the function is not recommended. 
 
    register_sidebar( array(
        'name' => __( 'Work Sidebar', $theme_slug), //name that appears in your widget area
        'id' => 'work', //id to call your sidebar this is only variable you must specify
        'description' => __( 'Widgets in this area will be shown on all posts and pages.',  $theme_slug ),
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget'  => '</li>',
	'before_title'  => '<h2 class="widgettitle">',
	'after_title'   => '</h2>',
    ) );
 
// Be sure to replace $theme_slug with your theme's slug! 
 
} 
?>

This will allow you to modify your sidebar using the regular widget section. Next step if similar to the previous way of adding WordPress sidebars, create a file based on the id of your newly registered sidebar. In this case, the file would be named “sidebar-work.php”.

You’ll make whatever modifications you need in that new file and make sure that your dynamic_sidebar(); function refers to your new sidebar by name. If you don’t make changes to that function, your widgets will not show up.

Now, whenever you use the get_sidebar(); function, you can call the work sidebar by doing get_sidebar(‘work’);.

If you need additional help, you should definitely do one of these three things:

  1. Read the WordPress Codex page about customizing your sidebar.
  2. Search the WordPress Development Stack Exchange.
  3. Comment below and I’ll do my best to help you out.
PHP WordPress

Modifying the WordPress Template Hierarchy to Handle Parent Categories

This is essentially plagiarism of a great post by Drew Jaynes. It took me a while to discover his post when trying to figure out how to modify the WordPress template hierarchy so I decided to share it again. Hopefully one of these pages will start to rank better.

Here’s his code with a tiny amount of additional comments:

 
//this code should be pasted into your function.php file
 
function new_subcategory_hierarchy() {  
 
    $category = get_queried_object();
 
    $parent_id = $category->category_parent;
 
    $templates = array();
 
    // preserves the classic WordPress template hierarchy for parent categories
    // or else it create a new path for sub-categories
    if ( $parent_id == 0 ) {
        // Use default values from get_category_template()
        $templates[] = "category-{$category->slug}.php";
        $templates[] = "category-{$category->term_id}.php";
        $templates[] = 'category.php';      
    } else {
        // Create replacement $templates array 
        $parent = get_category( $parent_id );
 
        // Current first
        $templates[] = "category-{$category->slug}.php";
        $templates[] = "category-{$category->term_id}.php";
 
        // Parent second
        $templates[] = "category-{$parent->slug}.php";
        $templates[] = "category-{$parent->term_id}.php";
        $templates[] = 'category.php';  
    }
    return locate_template( $templates );
}
 
add_filter( 'category_template', 'new_subcategory_hierarchy' );

Personally, I find the WordPress Template Hierarchy pretty good. Other than it’s issue with dealing with sub-categories, I’ve never really had a problem with its flow. In fact, I could have easily just copy pasted a template file for each sub-category based on its parent.