Posts

Key Elements of a Digital Marketing Agency Proposal

What elements a client expects to see in a agency proposal for a campaign aimed at promoting a certain product? Find out the essential elements here.

You will get a better idea about questions should be answered by the proposal, an ideal structure to adopt and some details that you might want to outline.

Top engagement drivers: how to get viral on Facebook

 

How to boost Facebook organic reach

Page Insights, among other things, help to identify what is the most engaging content for your audience. Some content gets viral, while other doesn’t get noticed at all.

Every content is a meme: some memes survive, going viral or being the source of new memes, while other doesn’t get noticed at all and disappear.

In this sense, are not only a memetic machine, with their constant production or reproduction of memes, but also a memetic cemetery (despite some memes of the past can always come back to life, under any circumstance).

This analysis is neither exhaustive nor definitive but tries to offer an overview over factors that affect the viral reach of Facebook posts, either on pages or profiles.

Results are summarised in the above scheme that is the outcome of frequent observations through different Facebook pages.

Why do we post?

The scheme starts from publisher’s intentions, either posting as an individual or for an organisation/brand.

Drivers of our publishing activity could be divided into three main, groups:

  1. Individualism – it tells how we feel or how we want to represent ourselves to the world (or, at least, our audience)
  2. Altruism – it is probably the most valuable content because it is aimed at creating/sharing value with the audience
  3. Opinion – this can be the outcome of either an individual attitude or a wish to start/join a conversation and affect the public opinion

Most of what we post contains elements of any of the above factors.

Content focus: individual vs. general

While Individualism can be categorised as material embedding a personal element and focusing on the poster (e.g. a selfie), the other two categories (Altruism and Opinion) relate to the external environment (e.g. tech, politics, sport, arts, science, culture in general, etc.).

Unless talking about VIP’s (including social stars, even in very narrow fields) or well-known brands that despite talking about themselves have a strong influence on the external environment, general content has more chances to get viral than the individual.

Engagement factors

The expected consequent actions (reactions) made by our audience, will increase the reach of our content: this is the viral effect, an enormous benefit because it does not cost anything, differently than promoted posts. Quality has value.

To get a high viral reach, it is important to engage people that are social stars, since their actions on your posts usually are more effective regarding reach, but, in general, every little helps.

  • Individualist content might be shared because of Empathy
  • Altruist content can be multiplied when it is perceived as Useful
  • Opinions tend to encourage Participation (either with a positive or negative feedback)

The actions that we expect from this are likes for an individualist content, share for a useful altruist content and comment for an opinion that drives participation.

How to categorise Facebook posts: some examples

We can try to attribute each content we see on Facebook to one of the following three categories and imagine what can be the expected reaction.

  • Individualism: selfies, feelings, travel, self-made content, etc.
  • Altruism: pets, recipes, reviews, guides, invitations, etc.
  • Opinion: politics, violence, VIPs, activism, etc.

Some content stays in between two or even all three categories. For example, a video clip of a song can be posted to represent a personal feeling (individualism) and at the same time to help other people discover that particular content (altruism) and express an opinion that reflects the lyrics (opinion).

Support for a political leader/movement or complaints towards a brand/company’s customer services can be categorised as opinions and can have a follow up made of supporting (or detracting) comments – and relative comment-likes and comment-tags.

A selfie is an individualist content, while an is (or, at least, try to be) an act of altruism that hopefully is perceived as useful and then multiplied by being liked and shared.

Affinity to your average audience increases engagement

Everyone has a different personality and Facebook knows that. Thinking of Lookalike audiences, we have to post with our audience in mind, more than content.

Knowing our audience enables to build an ideal average that should be our main content driver. The affinity of our content to our audience’s expectations is a core virality factor.

A Facebook Page with a very generic audience tends to have fewer occasions to gets its content viral due to high engagement-rate, while as opposite, content posted on a Page whose audience is very narrow and specialised can get viral with a high engagement-rate.

All factors count

Often many pages publish great content too generic and informative: its engagement-rate (and consequently its organic reach) will be very low.

Some content is too cold (for example a link to a technical guide) or too personal (for example a personal status about facts of little interest for the audience) or too introvert (something that nobody or very few people can understand or care of).

To get viral on Facebook, content need to be a mix of all factors proposed in the scheme [ individualism + altruism + opinion ] paying attention to audience’s closeness (including language and jargon) and possibly enriching text with hashtags if the content is about places, brands or trending topics.

Write your content (make it original), try to disseminate value – a strong factor, usually appreciated by your audience – and don’t forget to express your point of view because Facebook is a conversational platform after all.

Something missing: the dark side of analytics

Not all content is shared publicly. Therefore, its virality cannot be adequately measured. Often, good content is also multiplied by private messages (e.g. Facebook, Whatsapp, etc.), channels that cannot be tracked but still can increase reach, engagement, leads, conversions.

In fact, many of us are not willing to publicly share or comment anything, but it doesn’t mean that we are not interested in debating about with our best friend through private messages. We are not aware of what happen behind the wall unless we don’t start to track and read everyone’s private messages, but such amazing advanced tools apparently are available only to very few organisations/governments..

So don’t stick to what’s measurable, ignoring the dark side of analytics. What’s behind a “direct” source can be the outcome of your efforts.

The infographic is made mainly for Facebook, but can be useful also for content marketing in general and other social media platforms, in particular, Google+ and Twitter.

Feel free to download and share Facebook Engagement Factors (PDF)

Google Tag Manager

Event Tracking Automation for Google Tag Manager: downloads, outbound links, email, podcasts

Update: with GTM v2 many things changed. You can have a look at a comprehensive article by Simo Ahava on how to setup event tracking on Google Tag Manager.


Google Tag Manager

Are you using Google Tag Manager? Great. There’s a way to automate the process of attributing GA Events to ALL your outbound links, downloads, email addresses, even podcasts and phone numbers with no effort, no further scripting needed on your code.

Here I will explain how to do it. A huge credit goes to Ryan @ Blastam that not long ago has written this interesting article with guidelines to automate the process on Google Analytics.

Step 0: GTM IN PLACE + JQUERY!

Open a GTM account and install the code immediately after the opening <body> tag of your website (just in case…)

Be sure to have jQuery JavaScript library working on your site (most CMS already have it, check HTML if you are not sure, it does not have to be the last version).

If jQuery is not installed… don’t worry, we can still do it (see Step 3).

 

Step 1: RULES

Create the general All Pages rule if not already present

url matches RegEx .*

Create another rule that I call Activate Outbound

event equals outbound

Add a rule to tell when GTM has to flash a Tag

Add a rule to tell when GTM has to flash a Tag

Step 2: MACROS

Create the following three  JavaScript Variable:

Name: CategoryGlobal Variable Name: cat
Name: Action; Global Variable Name: act
Name: Label; Global Variable Name: lab

Step 3: TAGS

Create two tags, one for the event tracking and another one for the magic script

Event tracking will be as follow:

GA Event Tracking on Google Tag Manager

GA Event Tracking on Google Tag Manager

(remember to add your GA account code)

The Firing Rule will be Activate Outbound (the one set in Step 1)

Now let’s add the following Script on a new Custom HTML Tag

ONLY if the jQuery library is not on loaded on your site add the following line BEFORE the main code:

<script src=”//code.jquery.com/jquery-1.7.2.js”></script>

If jQuery was already present on your pages then ignore the above code and proceed just adding what follows:

<script type="text/javascript">
if (typeof jQuery != 'undefined') {
 jQuery(document).ready(function($) {
 var filetypes = /.(zip|exe|dmg|pdf|doc.*|xls.*|ppt.*|mp3|txt|rar|wma|mov|avi|wmv|flv|wav)$/i;
 var baseHref = '';
 if (jQuery('base').attr('href') != undefined) baseHref = jQuery('base').attr('href');

 jQuery('a').on('click', function(event) {
 var el = jQuery(this);
 var track = true;
 var href = (typeof(el.attr('href')) != 'undefined' ) ? el.attr('href') :"";
 var isThisDomain = href.match(document.domain.split('.').reverse()[1] + '.' + document.domain.split('.').reverse()[0]);
 if (!href.match(/^javascript:/i)) {
 var elEv = []; elEv.value=0, elEv.non_i=false;
 if (href.match(/^mailto:/i)) {
 cat = "email";
 act = "click";
 lab = href.replace(/^mailto:/i, '');
 elEv.loc = href;
 }
 else if (href.match(filetypes)) {
 var extension = (/[.]/.exec(href)) ? /[^.]+$/.exec(href) : undefined;
 cat = "download";
 act = "click-" + extension[0];
 lab = href.replace(/ /g,"-");
 elEv.loc = baseHref + href;
 }
 else if (href.match(/^https?:/i) && !isThisDomain) {
 cat = "outbound";
 act = "click";
 lab = href.replace(/^https?:///i, '');
 elEv.non_i = true;
 elEv.loc = href;
 }
 else if (href.match(/^tel:/i)) {
 cat = "telephone";
 act = "click";
 lab = href.replace(/^tel:/i, '');
 elEv.loc = href;
 }
 else track = false;

 if (track) {
 dataLayer.push({'event':'trackoutbound'});

 if ( el.attr('target') == undefined || el.attr('target').toLowerCase() != '_blank') {
 setTimeout(function() { location.href = elEv.loc; }, 400);
 return false;
 }
 }
 }
 });
 });
}
</script>
 

Step 4: SAVE AND PUBLISH!

Always save after each step taken and at the end Save a new container version and Publish – you can even preview and debug it to check if all tags are firing on the right place (or after the right event).

Is it working?

To check the implementation just go on your website, click on an external link or email or pdf download and at the same time on another browser window check your Google Analytics Real-Time reports on the Events section. You should see, after a few seconds, your event correctly appearing. Later, Events will be properly recorded also under GA Content section and you can create any kind of report/advanced segment/goal with them.

 

Monitor real-time events on GA

Monitor real-time events on GA

Important: to make it work you need jQuery library to be loaded before the above mentioned scripts. So if you don’t have it, download, load on your server and call in the header section. Or you can still avoid this implementation and manually tag each single link/download the old way.

A note: you can change name of variables, rules, tags and macro, but consider to adapt the whole implementation accordingly.

Why it is useful

For example you can measure how many downloads of a pdf enrolment form or clicks to an external website that does not have multi-domain tracking.

The good point of such implementation is that you don’t need to hardcode anything on your pages/posts: it magically does the job for you. It’s been tested on WordPress but it should work on all CMS.

Find out more about GTM…

Update: October 2013

New system to automate tracking all links and form buttons through GTM has been launched. In my view it’s a bit more complex than the above solution, and it needs more work to distinguish between different elements (e.g. a pdf from an outbound link), but it’s the new standard. Detailed post by Lunametrics here or by Justin Cutroni here.

How to track each Google country search engine on Universal Analytics

Google Universal Analytics

Have you tested the Universal Analytics by Google? If you haven’t (yet) just create a new free GA profile and you will now have the option to choose between the old and the new route – which not surprisingly is still in beta.

You will not see big differences on the User Interface, but some changes are in the Admin section and are related to the wider flexibility in terms of customisation that such new system allows, including multi-platform tracking. I am not going to list the new features, you can find them here and you can even watch a brief showcasing video at the end of this post.

I just want to focus on an interesting finding that happened by chance (let’s say so…) Among the other things that differentiate it from “traditional” GA, you can set up as much search engines as you want. There’s already  a list with the main search engine available – it obviously includes also all Google search engines and they will appear, as usual, under one single voice “google”.

Let’s say that your friend has just launched the new Google enemy (!) and you want to treat it as organic rather than a classic referral: you just have to add it using the following simple form located on:

Admin – Account – Tracking Info – Organic Search sources – Add Search Engine

How to add a search engine on Universal Analytics

How to add a search engine on Universal Analytics

Now, despite Google is already in the predefined UA list, why not configuring a few single country search engines, just to test? Of course, your site should be indexed there and you should run some test (and wait a bit for statistics to show up in reports). Don’t be impatient: just sow your seeds as follows and wait…

 

Track each single Google search engine on UA

Tracking each single Google search engine on UA

Now that you have set up all accounts and waited for data on the Sources reports, have a look at this!

Metrics divided by country
What you find on Universal Analytics: not just one single “google” anymore

Interesting, isn’t it?

Now, why don’t you get a bit deeper trying to track also visits from single Google bits like Images or Maps? I haven’t tested it fully yet, but you can try either using a domain like images.google.com or just google.com and another word on the optional path field, just like this:

How to set up Google country engines on Universal Analytics

How to set up Google maps and images engines on Universal Analytics

This system is still far from tracking local searches as it should, but if you will be able to distinguish between pure organic and maps, you can certainly enrich your reports with meaningful metrics. And what about finding out data only for images? Such data are highly relevant for photobloggers, but also for news/magazines/blogzines/etc.

Unfortunately you cannot upload all Google “search products” in bulk so if your plan is to add them all… good luck! Differently, why not adding just a few relevant for your business? All the others will still appear under the same old “google” category so you are not going to miss anything.

A solution for Not-Provided keywords …or at least a little cure?

A final consideration to add concerns the sadly famous “not provided” keywords affair: I’ve added two different GA tracking codes onto the same site – ok it’s not the best practice suggested but this way it still works and allows checking differences between two different ways of measuring things.

Starting from October 2011, Google has increased encrypting search queries so you end up by not knowing anymore about 30% (or more) of search queries that brought visits to your site. Official reason is privacy, such as protecting users logged in with their Google account – it might be for privacy but also for a future possible strategy to sell relevant, precious information for SEO and marketing people.
There are some solutions to understand what’s hidden behind the “not provided” variable, here’s a popular hack proposed by Dan Baker on eConsultancy. I’ve tested it, it’s very helpful but unfortunately not resolutive.

In my recent test, the “old” GA shows about 30% of not-provided keywords (it’s more or less the recent standard that wiped the smile off SEO-people’s faces), whilst (apparently good news) UA shows just 5% of not-provided on average. On a website, for a local search engine set up on the admin panel as shown above, I still haven’t seen any “not-provided” kw! Is that just my (wrong) impression or a subtle Google strategy to move people from the “old” GA to UA?

Update: that was my wrong impression: few data don’t bring good assumptions. In fact the problem of not-provided kw’s remains unsolved (it would have been too easy/revolutionary)

Now, if you (still) haven’t heard of UA, this video gives an idea of its capabilities.

Or if you fancy caffeine…