Has Facebook Removed the Option To Bid For 3 second views?

Just noticed this in Power Editor but previously, the default bid method was for 3 sec views while a 10 sec view bid option was also provided.


The benefits of bidding for a 10 sec view are obviously related to higher retention rates. In a previous post, I have also written about whether you should promote a video post for views or engagement. If you were to bid by engagement, your 3 second costs are again likely to be higher than a views campaign with 3 sec bids. 

This is a welcome change from Facebook as it would now try to auto-optimize and show ads to users likely to watch 10 secs. However, the cost increases might be significant once Facebook starts moving most of brand/pages content to the Explore tab [as announced last week].



How To Setup GA Event Value Currency Exchange In GTM

Here's a scenario we had on a non-ecommerce website. A user could notify a dealer by adding items to a wishlist [basket] and sending the list to the dealer. We already had a dataLayer push for the event value. As usual, posted this in GTM Forum and Simo Ahava helped [with this one too!]. This blog post is a breakdown of the discussion thread.

The challenge was to convert the values to a common currency as otherwise, a particular store with a weaker currency might show a much higher Google Analytics event value but this would not be valid.

What we needed?

A method to identify the store and then convert the value to a master currency.

How did we go about it?

The landing page had a query string variable for 'country'.  We used this to create a URL based variable where the query field was used to pick up the value for 'country'.

URL Based Variable for query string.JPG

How to do the currency conversion?

function() {
  var market = {{Market}};
  var value = {{value}};
  switch (market) {
    case 'ca': 
      return value * 1.41;
    case 'mx':
      return value / 0.27;

  return value;

What does this JavaScript do?

Since Simo provided this script, I pasted it [as in] in GTM to pick up the value of the market and convert it to a master currency. I read up about the switch function in JS and it appears to be like an IF/ELSE based execution, So, if there's a case where market = 'ca', it should convert the value obtained initially in the dataLayer, multiply the value by 1.41 and then override the value for the event with the newly multiplied value. IF not , it will check for the next case [IF market = 'mx']


Limitations about the event value method?

In passing the event value, the decimal values are automatically stripped off and only the whole number gets passed to Google Analytics.

Can the Lookup table method work?

So, I tried creating a Lookup table where input = ca and output equals {{value}} * 1.41 but as Simo pointed out that the Lookup table cannot execute arithmetic inside out, only have a static output value. 

Hope this tip helped.

Link to Google Tag Manager Product Forum Thread: https://productforums.google.com/forum/#!topic/tag-manager/9jlsGFmgW9Y;context-place=mydiscussions

How to Solve Facebook Link Clicks VS Google Analytics Sessions Discrepancy

If you've ever worked with a nobjective: Traffic campaigns in Facebook, then you must have noticed the wide discrepancy between Facebook Link Clicks and your sessions in Google Analytics. Here's the search result for this topic: https://www.google.ae/search?q=facebook+link+clicks+vs+google+analytics+sessions&dcr=0&source=lnms&sa=X&ved=0ahUKEwiO7b6X9_rWAhVIuBoKHS7XDs8Q_AUICSgA&biw=1517&bih=681&dpr=0.9

Clicks and sessions metrics are different in the sense that Facebook would count a link click when the link is clicked on while GA would count it as a session when the GA tag loads. Even after factoring the difference in definition, multiple clicks from one person, closing site before page loads or failure of JS load on the website , the difference was usually very high with clicks being 2-3X number of sessions.

There are two solutions to address this:

A. Run conversion based campaign where the conversion event is a PageView. This will optimize the ads for this PageView from Facebook pixel. This cool idea was detailed in a post [at least when I stumbled upon it] by Vernon Johnson on 3Q Digital's blog. I really liked this approach as it added a layer of accountability for the ad [show ad to users who are likely to view the page]. 


B. Run objective: traffic campaigns and optimize ad sets for landing page views. This is a relatively new feature in Facebook ads. 

The default option is link clicks [we'll deliver your ads to the right people to help you get the most link clicks from your ad to a destination]. Right under it, we have landing page views [we'll deliver your ads to people who are more likely to click on your ad's link AND load the landing page]. The second part is crucial. click and load the page. I think Facebook brought this bidding option to help address Facebook link clicks vs (Google) Analytics discrepancy. I'm currently running a traffic based campaign with this setting and the variance between these two metrics is very narrow - at least from early results. 

If you haven't tested this feature yet, give it a try and then compare the data from both platforms. Hopefully, this will help in your campaigns as well. 

Do you think there's a better option to reduce this discrepancy? Let me know via comments. 


How to add UTM parameters via Google Tag Manager

This post is based on a recent "situation" I had where the utm values we attached to a referrer link were not getting passed when the site loaded.

Background: Site 1 has a referrer link to Site 2. The link to site 2 is an anchor tagged link [that should automatically scroll/anchor down to the section that we want to link to].

The original UTM tagged link was: www.site2.com/folder1/page1#anchortag?utm_source=site-1&utm_medium=referrer&utm_campaign=campaign-name

The UTM values from this link were not showing up in Google Analytics Real-Time. My first reaction was to remove the UTM and work with this limitation [at least while a solution is figured out]. Headed down to GTM forum, posted about it and sure enough, Simo Ahava helped [again] here. The correct syntax for the UTM should have the anchor tag after the UTMs. So: www.siteB.com/folder1/page1?utm_source=site-1&utm_medium=referrer&utm_campaign=campaign-name#anchortag

So, what if we didn't have access to Site1's HTML code but wanted to add UTM values via Google Tag Manager. 

Trigger: First, we need a trigger that listens for a referrer where it contains the link from Site 1. The Referrer variable does exactly that and here, we can have a referrer equals, a regex or one of the one ones. In this example [from my own blog], have used the referrer trigger where the referrer link was [http://analyticslog.com/blog/should-you-promote-a-facebook-video-post-for-views-or-engagement-cpv-vs-cpe-bidding]

GTM REferrer Variable.JPG

Tag: We have two options here as we can use the campaign fields OR use the location field.

Method#1 / Campaign field: In this method, we can create a GA settings variable with the fields, campaignName / campaignSource / campaignMedium fields being hard coded values for this example. 

GA pageview variable UTM value.JPG

Once the tag is created, it just needs to be associated with the trigger. Here's the traffic in GA Real-Time.

utm values.JPG


Method#2: Location field.

I had to ask Simo for more details on this one. The location field is the Page URL, we only add the UTM values to the Page URL value. This is how the GA variable looks. Location field is the UTM tagged link.

GA pageview variable UTM value Location Method.JPG

and here's the traffic in GA Real-Time with source 'test-location-field'

GA pageview variable UTM value Location Method.JPG

Both methods do the exact same task but method #1 [campaign fields] is easier to spot when going through Google Analytics variables in GTM.


Here's a link to the Google Tag Manager product forum thread for the same topic: https://productforums.google.com/forum/?utm_medium=email&utm_source=footer#!msg/tag-manager/v7U7L0MEqQ0/JcG6YEO9AAAJ

Happy tagging!





Should you promote a Facebook video post for views or engagement?

There's a pretty good chance that you landed on this blog post via search. I hope this post helps you think through your options.

Let's get down to business - you have a video post and are considering whether to promote it by bidding for Cost Per View [CPV] or Cost Per Engagement [CPE]? Which one would be more beneficial?

TL;DR - It's contextual and depends on what's the full picture.

Full answer - Read on.

Before we (...I) talk about these bidding models, let's quickly recap on what these bid types will do:

A CPV bidding will show your content to users who are more likely to watch the content. By watching the content, it means 3 second views [or higher]. The default bid is for 3 second views. This can be changed to 10 second views [likely to get higher video retention rate metrics]. 

A CPE bidding will show your content to users who are more likely to like, comment or share your content. 

Facebook engagement bidding.JPG

So far, so good. So, if you were to promote a video post for engagement, would the Cost Per Engagement data include likes, comments and shares only? Nope! It includes 3 second views. I've answered this in more detail in another blog post, titled difference in engagement rate between Facebook ads and Facebook Insights. In Facebook Ads, for a video post, the vast majority of engagements will be made up of 3 second views. 

Ok, now that we know what's the data behind the numbers, we'll also need to rethink of the objective behind the content? If the purpose is to drive engagement, then an engagement bidding is a better solution while a CPV bidding might be a better solution if the content doesn't share too much info for users to engage [e.g. teaser content].

The full value of content: Here's where you'll need to pull up your Ad Manager data , switch the columns to video engagement to see the quartile distribution of views, add columns [post engagements, objective] and download the data.

Facebook ads custom columns video engagement.JPG

Now all you need to do is load up a pivot the data in Excel, create calculated metrics for:

  • 25% retention rate [25% completed views / 3 sec views]
  • 50% retention rate [50% completed views / 3 sec views]
  • 75% retention rate [75% completed views / 3 sec views]
  • 100% retention rate [100% completed views / 3 sec views]
  • Cost Per 25% completed views
  • Cost per 50% completed views
  • Cost per 75% completed views
  • Cost per 100% completed views as columns
  • Cost Per Engagement 

with your objective [engagement vs views] in rows.

What you will you most probably find? 

Putting all the above calculated metrics as columns should show you a clearer picture on what's the full value of your promotion. You'll most definitely see lower CPV and CPEs for view based bidding [even CPEs as engagements includes 3 sec views]. The CPE method should bring up higher retention rates [across the 25%-100% quartiles] because with this bidding, it is being shown to users more likely to engage and by that definition, spend more time with the content.

So, if a video post promoted by engagement bidding has a:

  • 2X higher CPV [3 sec] compared to video posts promoted by CPV bidding
  • 3X higher 75% retention rate [and you'd want users to stay as long as possible]
  • And generating a sizable chunk of likes, comments and shares and the true Cost Per Like, Comment and Share [not CPE, which is inclusive of 3 sec views] comes to only 1.5X

You're getting better value out of the CPE bidding. In the end, it comes down to what you want to achieve. As long as you understand the data behind the high level numbers and what's driving it [CPV, CPE], you'll be in a better position to choose between these two bid types. 

Did you find this post helpful? Did you try this exercise on your ad manager data and found some interesting results? Please share via comments. 

P.S. You can apply the same method to Instagram as well. Just breakdown your data by platform and you now both, Facebook and Instagram data.

How To Generate Word Cloud From Search Terms Report In Power BI

There's lots of features being added in Power BI and custom visuals are one cool area to check. 

The data we're gonna use for Power BI is from Google Merchandise Store's Google Analytics>Behavior>Search terms report [Jan 01, 2017-Sep 19, 2017].

Download the Excel/CSV version and load the file in Power BI [or connect to GA API].

Once in, head to Visualizations > ... > Search from store > Type in 'word cloud'.


Load your Search term as the Category and Total Unique Searches under values.

You should now see the keyword cloud loaded with the size of the keyword representing the number of searches. Hover over any of the keyword to view the total unique searches as a data label.