Category Archives: seo

  • 0
Best VPNs with most IP addresses

Best VPNs with most IP addresses

Category : seo

Best VPNs with most IP addresses

It is not uncommon, particularly with large US based companies, for VPN providers to boast large numbers of IP addresses. What this generally means is that they have lots of servers in lots of different countries. While some of these figures can certainly be very impressive (StrongVPN for example boasts over 80 thousand IP addresses), the question is: why would you want this? Well, having lots of IP addresses to choose from does offer a number of advantages:

  • Privacy is increased… to certain extent. Regularly connecting to the internet from different IP addresses does make your online activity more difficult to trace, and therefore improves your anonymity. However, any serious investigation will quickly trace any IP’s used back to your VPN provider, so how anonymous you remain depends on how willing and able your provider is to hand over details linking you to the IP under investigation. The only companies that can realistically guarantee no details will be handed over are those who keep no logs, and therefore have nothing to hand over even when legally required to do so (or even have their servers seized). It is therefore much more important to choose a ’no logs’ service than one with many IP addresses, if maintaining your online privacy is a concern (as it is to most VPN users)
  • Access geo-locked services – if your VPN company has servers in many different countries then you can access geo-locked services such as Hulu, iPlayer and Pandora through those servers. However while this may be useful to some, most people only want to access services in one or two countries (for example the USA and UK for English speakers, or  thier native country when abroad), so having servers in 50 or countries is of limited use. Of course, having servers in more countries does mean that servers are available in less popular countries, but if this is what you are looking for, then it may be better to use smaller local VPN’s than large international ones.
  • Bypass restrictions on bulk emails – having multiple IP addresses is a means of bypassing bandwidth limits (and IP filters) on bulk email. While there may be legitimate reasons for doing this, we will leave it at stating that we strongly disapprove of spam.

To be honest, we feel that having servers in large numbers of countries, and having large numbers of IP addresses, is really a marketing gimmick. We also wonder whether US providers’ fondness for them has anything to do with disguising their poor reputation for keeping and handing over client’s activities (but this is just idle speculation). For most people, the important thing is to ensure your chosen provider has IPs (servers) in the counties you actually want to access the internet from and, if security is a concern, that it keeps no logs. All that said, here our list of VPN providers with the most IP addresses (that we have so far reviewed).


Note that pricing below reflects the plan than gives access to the most IP addresses. Cheaper plans may be available.

Rank Provider StartingPrice Review Link


  $6.67/mo 9.8
Visit Site


  $11.52/mo 9.7
Visit Site


  $10.00/mo 9.5
Visit Site


  $10.95/mo 9.3
Visit Site


  $8.32/mo 9.2
Visit Site

Take a look below to see slightly more detailed views about each provider.

Editor’s Choice

Winner – VyprVPN

Positives: fast, 160-bit and 256-bit OpenVPN encryption (Pro only), Android app, iOS app, 7 day money back guarantee, up to 3 simultaneous connections, no usage logs

Negatives: not much, price on high end

Run by global internet consortium Golden Frog, VyprVPN is a great choice for users looking for many IPs, especially as it runs its own data centers, which is not something any other VPN boasts, and therefore has excellent speeds.

This also means they run their own networks, and have more IP addresses than any other VPN.

It keeps no usage logs (although it does keep some connection logs), and allows P2P downloading. Encryption is rock-solid at 160-bit to 256-bit OpenVPN, and the fact that you can connect up to 2 devices at once (or 3 for the premier package) is really good. Note that these comments only refer to the slightly pricey (our only real criticism) Pro plan, and that the PPTP only basic version should be avoided.

Try Out the Best VPN Today!

» Visit VyprVPN

3 day free trial

2. Hide My Ass

Positives: 40,000+ IP addresses with 340 servers in 53 countries, great VPN client, lots of cool freebies

Negatives: keeps logs, could be faster, P2P: no

With 340 servers in 53 countries resulting in over 40,000 IP addresses, Hide My Ass beats ever other VPN provider on this list in terms of the number of countries it covers. What we like about Hide My Ass is the number of free tools it makes available, such a web proxy service, a real-time list of free public proxies, disposable email, and an anonymous upload service. The real problem we have with Hide My Ass is that as a UK provider it is subject to the EU wide Data Retention Directive (rigorously enforced in the UK), and has a history of compromising its customer’s confidentiality, famously leading to the arrest of a LulzSec hacking group member who, used its services.

» Visit Hide My Ass

3. IPVanish

Positives: 3500+ IP addresses with over 90 servers in 20 countries, fast (with amazing upload speeds), nice VPN client

Negatives: ‘No logs’ policy is a joke, P2P: no

This US based company maintains over 90 servers in 42 countries, for a total of over 3500 possible IP addresses. Unfortunately our initial enthusiasm for this polished and fast (with fantastic upload speeds) ‘no logs’ service was more than a little diminished when we received a letter within 48 hours of registering, threatening disconnection if we did not cease copyright infringement via our BitTorrent client. We think this makes a mockery of the claimed ‘no logs’ policy, causing us to remove our original recommendation.

» Visit IPVanish

4. ibVPN

Positives:620 IP addresses with 58 servers in 15 countries, very cheap, p2P: yes

Negatives: Very slow especially when used to download torrents, no logs policy is no good enough

ibVPN’s Ultimate ($10.95 per month) service boasts 58 servers in 15 countries, with 620 dynamic IP. However as with IPVanish above, an initially positive impression was fairly quickly ruined in longer term use. This time the problem was that despite great speed test results during the review period, in actual use we found them regularly so slow that we abandoned the service before our contract time was over. We also missed the fact that while ibVPN has a ‘no logs’ policy, it does retain far too much information for our liking for 7 days, which we think is just not good enough.

» Visit ibVPN

5. ExpressVPN

Positives: between 84 – 336 IP addresses in 78 countries, nice VPN client

Negatives: keeps logs, P2P: no

Another US based VPN provider, ExpressVPN offers its users ‘hundreds of servers’ based in 78 countries. We contacted ExpressVPN’s customer support (which provided a fast and helpful response), and they told us that each server location has about 2 to 8 IPs. Putting on our thinking caps, we reckon that comes to between 84 and 336 IP addresses in total. In other regards we found the service fine, with decent but not exceptional speed results, and an easy to use VPN client.

» Visit ExpressVPN


If a large number of IP addresses are important to you, then all of these companies can provide them by the bag load. We are however dubious about the utility of so many IPs, and place much greater value on providers having a robust no logs policy, which none of the above has (in fact most have no such policy at all). We therefore do not actually recommend any of the providers in this list VPNs with most IP addresses.

And here’s the summary once more:


Note that pricing below reflects the plan than gives access to the most IP addresses. Cheaper plans may be available.

Rank Provider StartingPrice Review Link


  $6.67/mo 9.8
Visit Site


  $11.52/mo 9.7
Visit Site


  $10.00/mo 9.5
Visit Site


  $10.95/mo 9.3
Visit Site


  $8.32/mo 9.2
Visit Site

Published 2013-04-09

 Written by Pete Zaborszky

Source taken from

  • -
Promote business with email marketing

Promote business with email marketing

Category : seo , social

Promote business with email marketing

Using Email Lists is going to be one of the most efficient as well as one of the least expensive ways for you to market your business. In fact, email marketing has been proven to bring in a higher ROI than any other current marketing method. Think about it for a minute. Almost everyone, and that includes people who are part of the business world as well as those who are not, has an email account and uses that account to send and receive emails in order to connect with other people. When you as a business decide to use Email Lists so you can send out marketing emails in order to connect with your audience, you’re choosing one of the absolute best ways to relay your message about who you are and what you have to offer.

Create a Custom Business List

Choose basic industry (SIC Codes) and location, or further your list by selecting employee size, geographic location or any combination of the many selections available. For custom orders please fill out the quote form first to ensure we can fulfill your order.

Fields Included: Business Name, Contact Name, Contact Title*, Email Address, Mailing Address, Phone Number, Fax Number*, Sales Volume*, and number of employees*.

* Provide when available.

Create a Custom Consumer List

Get the most for your money. Our high quality opt-in consumer leads are effective and fresh. Listguy is committed to providing high quality leads to help effictivly grow your business. Target your custom consumer list by location, age, gender, or specialty interest such as investor, college students, business opportunity seekers, payday loan leads, etc.Fields Included: Name, Gender, City, State, Zip Code, Opt-In Website, IP and Email Address. *Phone numbers, gender, and date of birth available upon request.

The Value of Email Lists

Email Lists have a lot of value when it comes to marketing a business. And it doesn’t even matter what type of business you’re in because we’ve done everything in our power to make sure that there’s an Email List for everyone. The value of using Email Lists should never be underrated because it is not only one of the best marketing methods available for use today, you’re going to receive the positive results you’re looking for with minimal effort.

The costs associated with sending out emails so you can gather more business is also minimal, making email marketing still one of the most effective marketing methods you can use today. Give us a call if you have any questions about how valuable (our) Email Lists are.

Are Email Lists Old School?

Well, maybe. And that’s because email was one of the first communication tools that people could use to connect with people all over the world (we’re talking about instant communication here). When the ability to email was first made available to the everyday person, people were amazed at this new method of communicating with others. Although people are now used to the concept of using email, it is still just as popular today as it was when it was first made available, making it a great tool when it comes to marketing one’s business. In fact, email marketing is still the most cost-effective method when it comes to marketing, making it the most preferred marketing method utilized today.

Although the search is on for other avenues of marketing, email marketing currently shows no signs of slowing down. Studies even show that the amount spent on using emails to market one’s business is expected to grow exponentially until at least the year 2016.

Proper Email Etiquette

When it comes time to start composing your marketing campaign be sure that you keep in mind the importance of using proper email etiquette.

Don’t send out too many emails. Although people who are on your Email Marketing List want you to hear from you, they don’t want to hear from every day or even every week. Every 2 weeks or so is recommended if you don’t want anyone to opt out of receiving your marketing emails.
On that note, your email should include an option for people to unsubscribe if they want to. Not only because it’s the right thing to do, it’s the law. That means if someone wants to unsubscribe you’ll need to make sure that you unsubscribe them as soon as possible. (We here at ListGuy are law-abiding citizens so we want to make sure you are, too!)
Personalizing your emails will not only make them appear more professional, people like it when they are made to feel special vs. feeling like they’re just another one of your many subscribers. Also, use someone’s actual name that works within the company so they can see that the email came from a real person.
How to Write an Effective Email

Writing an email that will stand out and grab your prospective customers attention is crucial. And guess what? It’s not that difficult to accomplish, so yay! In fact, there’s really only two basic steps. The first step involves writing an email that is simply making your message personal, which is easy enough to do. Simply write the email so it sounds like it’s coming from a real person (which it is, right? I mean is a fake person going to write your emails for you?). The second step requires you to focus on one thing and one thing only, which makes it very easy for the recipient to see and understand your intended message clearly, whatever it may be.

Oh, we forgot to mention how important the subject line is when it comes time to send out your marketing message. Since the subject line is the first thing that people see when they are deciding which emails are worth looking at, we think it’s a really good idea to give you a few tips so your recipients will actually open your email and read it!

Avoid using any spammy type of words (i.e. urgent, free, call now, order now, etc.) because these words cause many people to instantly delete the message.
Include your company or brand name so people know instantly who the message is from and accordingly will be much more likely to open and read it.
Keep it short and to the point.
Create a Custom List for Your Type of Business

Wouldn’t it be great if you could create your very own Email Lists? Luckily for you ListGuy allows you to do just that. All you have to do is gather all of your research information together so you can start thinking about what kind of Email Lists you want to create. Are you interested in marketing to a certain age group? Or maybe to those who are working in a particular industry? Or maybe you’re trying to reach out to people over the age of 40 who live on the east coast.

All you have to do is let us know what type of Email List you want and we will make it for you. So simple!

How to Grab Your Readers Attention

Creating an email marketing campaign can be quite the challenge. You want to be sure that you’re including all the necessary information that your readers need to know while also making sure that your message is written in a way that is appealing so as to keep their interest. Don’t go on and on and on and on and on and on about any one thing in particular, and instead try to provide your information in a way that gives the reader everything they need to know in short and to-the-point blocks of information.

We highly recommend adding a few links that will take them to other pertinent information that you have available on the internet, such as a YouTube video, or a webinar, or whatever you think is going to help them make the decision to buy or not to buy, which is the ultimate goal. Before you create a new marketing campaign, be sure to ask yourself as you’re writing out the email ‘what kind of value am I providing for my audience’?

Boost Your Email Delivery Chances

We were quite surprised to read that nearly 20% of marketing emails never actually end up reaching the intended recipient. That’s a lot! Since we think this is completely unacceptable we decided that it would be a god idea to give you some helpful tips to make sure that every single one of your marketing emails reaches its intended target.

Avoid using any words that can be called spam.
Be sure to use an SMTP server to send the emails out.
Make sure that the recipient can see who the email is from so they don’t automatically delete it.
A Few (Really Interesting!) Email Statistics
A whopping 92% of people who you use the internet have an email account, with nearly 70% checking their email account on a daily basis.
Someone sends an email every 0.00000035 seconds, which means that nearly 250 billion emails are sent out each and every day.
A little over $13 billion dollars were spent on email marketing in the US in 2009, which relates to a $583 billion dollar ROI. Wow!
Following the Email Lists ‘Rules’

Be sure not to send out too many emails in a short period of time. People on the receiving end don’t want to be overwhelmed with too many emails (from the same sender). In fact, receiving too many emails from the same sender is the #1 reason for people unsubscribing to any particular Email List that they once found interesting enough to opt in so they could receive more interesting information. You could even be reported as a spammer if you send out too many emails to the people on your Email Lists. So follow the rules and play nice and you’re sure to reap the rewards.

Permission is Key

Our Email Lists include people that have given their permission to be on an Email List, which means that they expect to receive emails from those who are marketing what their business has to sell.

Place Your Order Today!

All you have to do is contact us by using our Request a Free Quote button or by calling our toll-free number. One of our friendly sales representatives will assist you in placing your order. Super Fast and Super Simple! So what are you waiting for?

Get The Results You Want

ListGuy aims to help you get the results you want from your marketing campaign by presenting you with a number of top-quality Lists at truly affordable prices. We fully understand how important it is to make sure that our clients are 100% satisfied so they will come back to us when they need a new List. Call us now for more information.


Design your emails so they are mobile-friendly! Studies show that people are more and more using their mobile instruments to check their emails. Nearly 1 in 5 people were checking their emails using a mobile device in 2011, with 2012 already seeing 1 in 4 people using their mobile devices to check their emails. Since nearly 1/3 of all email marketing companies haven’t taken the step to make their marketing emails mobile-friendly yet this is the perfect time for you to make your marketing emails ready for mobile users.

We Make it Super Simple!

All you have to do is choose the List that’s right for your business, and then contact us!

Email Marketing Databases

Email Marketing Databases are priceless. They contain a list of all of your customers (potential and current), which is the lifeblood of any business. Since Forrester Research states that people are expected to be spending nearly 2.5 billion (yes, that’s right, billions with a b) on email marketing by the year 2016, up from the mere 1.5 billion that was spent in 2011, we highly recommend using emails to market your business. Give us a call so we can answer any questions you have about email marketing.

We’re offering a few tips that will help you clean up your database so it’s sure to be ready once you start sending out your marketing campaigns.

Divide your email addresses into sections, such as by the date they joined or the type of products they’re interested in purchasing. This way when you want more information or need to reach out to a certain demographic the various segments are already there. Then all you have to do is create a marketing message for any particular demographic and then choose who this particular marketing message will be sent out to.
Send your customers a survey so you can find out what it is exactly that they want from you/your emails as well as how often they would like to receive them. They will feel appreciated that their input really matters, and you’ll be given them exactly what they want. Win-Win!
Find out who is not responding to your marketing emails so you can then send them an email (hopefully they’ll respond to your email asking why they’re not responding to your other emails) either asking what it is that you can do so they will respond, or an email informing them that they’re going to be removed from your database because they’re not responding to your marketing emails.

Content taken from

  • -

What should be the length of meta description

Category : seo

What should be the length of meta description

What should be the length of meta description











Yet another post about meta descriptions, I hear you think. Still, this is one of the issues that we often get support questions about after doing asite review. The thing is that everyone gets the idea, but little of us actually take the time to write a proper meta description for your article of page. Where to start? What’s right and wrong? In this post, I will try to explain our approach towards meta descriptions.

First, lets be clear about the function of a meta description for your page. Its main purpose is to get the visitor in Google to click your link. In other words, meta descriptions are for generating clickthroughs from search engines. For SEO, it holds little value. I’m not saying NO value, as a meta description can influence bounce rate, for instance if it doesn’t match the text on your page. More on that later.

Characteristics of a good meta description

I think every article on meta descriptions will tell you some of these, but I combined all that made sense to me and came up with this list.

  1. It should be around 130 to 155 characters. There is no ‘this number is right’ in this. It depends on what Google adds to your search result and how much they want to show. Google might for instance add the date to an article and that will reduce the number of characters. Joost wrote about going back to 10 blue links. Bearing that in mind, rule of thumbs is that 130 characters is usually fine. Lately, we have even seen meta descriptions that contain over 250 characters.
  2. It should be actionable, in an active voice. Of course it should. If you consider the meta description the invitation to the page, you can’t just make it “A mixed metaphor describing a non-existent, yet implicitly high level of qualification.” That’s a dull description. I’ll explain using some examples later.
  3. It should include a call-to-action. “Hello, we have this and this new product and you want it. Find out more!” This overlaps the active voice, but I wanted to emphasize it. It’s your sales text, where your product is the page that is linked, not the product on that page. Invitations likeLearn more, Get it now, Try for free come to mind.
  4. It could contain structured content. If you have a product for f.i. the tech-savvy, focussing on technical specs of the product could be a good idea. Manufacturer, SKU, price, things like that. If the visitor is specifically looking for that product, chances are  you don’t have to convince him. Things like price will trigger the click. Note that you could of course use rich snippets for this as well.
  5. It should match the content. This is important. Google will find the meta descriptions that trick the visitor into clicking and might penalize the site that created the meta description. Next to that, it will probably increase bounce rate and is a bad idea just for that. You want the meta description to match the content on the page.
  6. It should contain the focus keyword. If the search keyword matches text in the meta description, Google will be more inclined to use that meta description and bold it in the search results. That will make the link more related already.
  7. The meta description should be unique. If your meta description is duplicate, user experience in Google will be less. Although page titles might vary, all pages seem the same as all descriptions are the same. If you intentionally want / need / are enticed to create a duplicate meta description, you’d better leave the meta description empty and have Google pick a snippet from the page containing the keyword used in search.
    Visit Google Webmaster Tools > HTML Improvements or use Screaming Frog SEO Spider to check for duplicate meta descriptions.

Examples of a good meta description

In the preparation for this post, I have checked some of the various articles that mention meta descriptions. I found a lot of wisdom, but almost no examples. I think actual examples will make it easier for you to construct a proper meta description for yourself. Taking the 6 bullet points above in account, let’s go over some examples.

The right length

This meta description has the right length

Personally, I like my meta descriptions like this. Dated and two lines of text.

Over 250 characters

Over 250 characters

Note that the actual meta description inserted in that page was only 76 characters and Google probably decided not to use it for that reason.

In an active voice

Meta description in an active voice

Get WordPress SEO Premium. Nuf said.

Including a call-to-action

Including a call-to-action

There’s two, actually. ‘Learn more now’ and the site link ‘Buy Now $ 399.00’. Both entice that click.

Including structured content

Including structured content

8 MP Camera, that’s what I wanted to know. I don’t need that sales text here, I just want that phone.

Containing the focus keyword

Including the focus keyword and variations

And variations. Note that Google highlights Academy Awards as well when searching for Oscars. This will make your search result stand out even more.

Where to start, I have so many pages?

Feel like changing all the meta descriptions after reading this? That might be a burden, with all the pages you have. And where would you find the time for that? Google actually answers this:

If you don’t have time to create a description for every single page, try to prioritize your content: At the very least, create a description for the critical URLs like your home page and popular pages.

Simply take it from there. And be sure to optimize all new meta descriptions from now on.

Troubleshooting meta descriptions

I’m sure you can come up with more, but I came up with two main issues:

  1. My meta description isn’t showing. Google probably made something up for you, as they feel the meta description you created isn’t representing the content of the page, or is duplicate, for instance. Another issue might be that Google prefers the DMOZ description of your site / page. Simply add <meta name="robots" content="NOODP"> to your<head> section. Or check the option in WordPress SEO > Titles & Metas, of course. I’m not sure if Yahoo! Directory (noydir in the robots meta tag) still has a role in this.
  2. I want to use another description for social sharing. Do you have WordPress SEO? In that case check the social tab in the box on Edit Pages. If not, add OpenGraph tags or Twitter Cards to your website and use any description you want.

Content taken from

  • -

Best Practices for Games on Facebook

Category : seo , social

Best Practices for Games on Facebook



Building games on Facebook typically involves developing an app for Facebook Canvas. A Canvas app is simply a web application loaded into an iframe and presented from within domain, appearing to players as if the game is served from

In this document we will discuss some best practices to enable you to build seamless and immersive play experiences on Canvas, including:

  1. Authentication
  2. Sharing
  3. Invites
  4. Monetization
  5. Canvas Performance

If you’ve never built a game for Facebook Canvas, please see our Canvas Games Tutorial, which will walk you through the basics of setting up and configuring your web game on Facebook.


Streamline your login implementation

Players on Canvas are guaranteed to be logged into Facebook. However, you’ll need to ask players to grant permissions to your game before you can use any of their information, or even know who they are. While there are a number of ways to do this, the preferred option is to use the JavaScript SDK to check for authorization using the FB.getLoginStatus method, and if necessary to request authorization using the FB.login method.

Remember that, until the callback you passed to FB.getLoginStatus has fired, you can’t make calls to methods that require an access token to be available (such as FB.api), so be sure to put those calls either in the callback or in code that runs only after the callback is complete.

You should treat our Facebook Login Best Practices as a checklist for your implementation. It will help you achieve a high-quality, trustable login experience across all of our supported platforms.

For an overview of login-related topics, please see our guide to Login for Games on Facebook.

Make your login flow more appealing

By using the JavaScript SDK to build a client-side login experience, you gain some extra control over what happens when the login dialog appears. By loading some simple game graphics in the Canvas iframe before launching the dialog, you can give players a taste of the game before they log in, helping them to make a more informed decision about granting permissions to your game.

Magic Kitchen, showing some gameplay assets behind the login dialog

Provide context when re-asking for permissions

If a player doesn’t grant a requested permission on login, or you’re asking for more permissions than when they last logged in, ask for them again in a way that helps them understand why they should grant them to your game.

Friend Smash explaining why the game is better with friends

For example, in Friend Smash, the game needs access to the user_friends permission in order to show one of the player’s friends as a ‘smash’ challenger. If the player hasn’t granted user_friends, the game gently reminds them that their experience will be better if they grant the permission. This gives players better context on the permission request and allows them to grant it when better informed about its benefit.

  • Login Overview

Use the same app ID on mobile and

If your game exists on mobile platforms as well as on Facebook, make sure to use the same Facebook App ID on each platform. When a player grants permissions to your app on one platform, they won’t have to grant any extra permissions to play that app on other platforms.

Additionally, by using the same app ID for your mobile game, players on App Center will see a ‘Send To Mobile’ button beside the ‘Play Game’ button, which will send a notification directly to their mobile device prompting them to install your game on that device.

Data from our partners shows that players who play the same game on both web and mobile are consistently more highly engaged than players who play on a single device.

Provide a continuous experience

When a player logs in to a game using their Facebook account, they often expect that their game state is maintained when they log in next time. If it makes sense to provide a continuous experience in your game, you can use Facebook data to assist in providing this experience.

By logging in with Facebook, your players are providing you with a consistent ID that you can then use to persist their experience for future game sessions. Further, this ID is consistent across mobile and web, so you can use this to synchronize their experience across platforms.

Display prominent social context

When a player grants permissions to your game, you can get information about the player and their friends who play your game, and use that to provide a social context within the game, which helps players feel more engaged.

Some apps do this by providing a friends’ progress bar UI in the game. Others display a scoreboard positioning the player amongst their friends.

The friend bar in Dragon City

Adding social context to your game makes players feel more connected.

Prioritize your localizations using Insights

By looking at Insights for your game, you get detailed demographic information about your players and their locales. Keep an eye on this information regularly, and make sure that your game’s content is localized for the most prominent locales.

Demographic information about player languages is available in Insights


Define sharable moments

As players make progress in your game, they’ll often want to share this progress with their friends. When designing your game, make sure to define moments in the gameplay that will encourage sharing. These moments might be a new high score, a level completion, or unlocking new inventory items.

Ensure that players can share these moments easily when they occur, by presenting a share button along with the announcement in-game. The more interesting these sharable moments are, the more likely they are to attract new players from your players’ friends.

The native share dialog, as seen in a browser

Create explicit Open Graph stories

Open Graph stories allow players to describe their actions in your game in a structured way. However, not all stories are created equal. Actions that happen without the player taking extra steps to share are considered implicit actions, and the stories they create get limited distribution.

When a player takes extra steps to share their actions, you can mark them as explicit, indicating that the player made a conscious choice to share them. Stories created by explicit actions create carry more weight due to the increased intent behind their creation, so they get much more distribution than stories from implicit actions.

While implicit actions can be published for things like leveling up and gaining new powerups, explicit actions should be published at key sharable moments.

By building an integrated sharing experience, you can make it easy for players to share moments within your game. However, not all players will give your game permission to write Open Graph actions on their behalf. By catering for these players with an alternative sharing flow, you can maximize virality.

  • Explicitly shared Open Graph stories

Offer multiple ways to share

With the Share Dialog on Android, iOS and Canvas, you can provide an alternative two-step sharing mechanism to players who don’t grant write permissions to your game. When a player reaches a moment that they want to share, you can check the permissions they’ve granted, and ifpublish_actions hasn’t been granted, show them a button that launches the native dialog. The Native Share Dialog supports both Open Graph stories and link-based feed posts.

A sharable moment in Candy Crush Saga
  • Native Share Dialog

Show engaging content

When a player chooses to share their content, this gives your game a chance to gain new audiences. Shared content is often the first thing that players’ friends see from your game.

Make sure that your content is enticing in the context of a player’s friend who’s never seen your game before. If you have rich in-game characters, be sure to add these to your images, and don’t reuse imagery for multiple objects.

Open Graph stories in Criminal Case


Make invites and requests easy

Invites and requests sent by your players to their friends are an important acquisition and retention channel. Make sure that it’s easy for players to invite their non-playing friends to play the game, and to request assistance or items from playing friends in order to keep them engaged.

Many games do this by adding a friend bar to provide social context along with a consistent request / invite interface. Other games prompt players to invite their friends to help when they run low on lives or resources. Choose an approach which best suits your game.

Asking for lives via requests in Candy Crush Saga

Build a custom multi-friend selector

When players send requests & invites, they’ll usually want to target these to specific people. Facebook provides a simple dialog that allows players to filter and select the specific friends they want to target, but you can create your own custom filters based on sets of friend UIDs to help players select subsets of their friends quickly and efficiently. Those filters can be based on in-game context, for example friends who played recently, or friends who’ve reached a certain level.

You may find it preferable to build your own custom multi friend selector that matches the look & feel of your game. In this case, you should always have provide players with the ability to search for friends by name, or by filters. Finally, to ensure policy compliance, you should never force players to select all friends when using a multi friend selector.

  • Multi-friend selector

Enable frictionless requests

By using frictionless requests, players can opt to not be prompted when sending repeat requests to friends. This cuts down the requests flow by a click, and is easy to enabled. Frictionless requests are especially useful in games that rely on requests for progress, such as turn-based games.

Frictionless requests in Candy Crush Saga

Use App-to-User notifications efficiently

You can use App Notifications to alert groups of players or individual players about events inside your game that require their attention. For example, App Notifications could be used to warn a player that their base is under attack, or inform them that a new item or level pack is available in the game.

App Notifications from War Of Mercenaries and Criminal Case

While this is a powerful re-engagement channel, it requires careful use in order to keep from being spam-throttled. Facebook enforces a minimum threshold for clicks on notifications sent, and if your game drops below this threshold, you will be unable to send further notifications. This threshold can be seen in the insights for your app.

App Notifications click-through Rate graph in Insights

To avoid dropping below the threshold, start by sending notifications to your most engaged players only, and send a small number of notifications at first to measure the clickthrough rate. Use player locale information to send notifications to players during their most engaged hours. Once your clickthrough rate is maintained above threshold, you can start to expand your audience.

  • App Notifications


Optimize your store

The price of your items in your in-game store plays a big part in converting players to payers, so make sure to choose price points that are sensible and appealing to players.

When showing multiple package prices, make sure to highlight the best-value item, and show players the saving they make by choosing this item.

Price points in Criminal Case

Localize pricing

With Local Currency Payments, it’s possible to do granular localized pricing. Use demographic targeting to localize prices for your most popular regions.

By supporting pricing in local currency, you can simplify the purchase experience, giving you more flexibility, and giving your players a way to make purchases in games using their local currency.

You can find in-depth documentation here:

  • Local Currency Payments Overview
  • Payments Tutorial

Sales & Events

Run sale events to help convert players into payers. These work well when linked to seasonal holidays. You can also run extra value weekends where in-game currency goes further than usual, enticing players to purchase and spend in-game currency in larger amounts.

Payer Promotions

Payer Promotions help you get players to pay more in your game. Facebook sponsors this feature, enabling you to offer certain people a discount on your game’s virtual currency, such as $3 of value for free.

Offer Daily Rewards

Rewarding players for logging in on consecutive days is a great way to increase retention but also helps monetization as players get a sense of the benefit of having more coins/currency within the game.

Daily rewards in Slots Craze

Canvas Performance

Design for a fluid Canvas size

Facebook supports Fluid Canvas, to allow a developer to use as much of the Canvas page real estate as possible while maintaining the Facebook Chrome (header) and right sidebar (ticker). With this feature, developers can increase the dimensions of their game and provide a full-screen-like experience. One major benefit of this approach is that the Facebook Dialogs (Feed, Requests, etc.) can appear seamlessly without the jarring user experience that can occur when using Full Screen mode.

Fluid Canvas is not currently supported for Unity games. If your game cannot support variable height and width due to image asset restrictions or game balance (e.g. a 2D side scroller), consider using a background color or image that fills the entire Canvas space while centering your game.

Handle Dialogs and Popups over Flash games

If your game uses Adobe Flash, Facebook will hide all Flash when dialogs and popups are triggered. This is to ensure that the Facebook DOM elements always have a higher z-index than other content. You can gracefully handle this by specifying a callback function for when Flash content gets hidden, and passing it to the hideFlashCallback parameter in the FB.init method on the JavaScript SDK.

When this function gets called, you may want to pause gameplay and display a placeholder graphic instead of the Flash content. For more details read our guide on Handling Dialogs and Menu Popups.

The setURLHandler method in the JavaScript SDK allows a developer to assign a callback method which will be executed whenever a player clicks a link that would direct them back to the current Canvas URL. For example, consider a player is currently playing “My Great Facebook Game” on Canvas when they notice a Request notification from their friend asking for help in “My Great Facebook Game”. Normally clicking this request would reload the page and reset the player’s current state.

If the developer implemented setURLHandler their callback method would be called, passing in the target URL as a parameter. This could then be used to transition the current game into a state to process the request. In the example above rather then reloading the page, the game could immediately prompt the player to assist their friend, a quick and seamless user experience.

function onURLHandler(data) {


Optimise performance with static resources

In order to improve the performance of your Canvas page, Facebook attempts to automatically determine which static resources are important to your game’s load time, and fetches them to the browser before contacting your server to get the contents of the iframe. Currently, it does this for Microsoft Internet Explorer versions 8-9 and Google Chrome, although we expect to add more browsers in the future.

Facebook’s automatic systems will provide a modest performance improvement, but you may be able to further improve page load times by explicitly specifying which resources should be prefetched. For best results, we recommend that you specify the largest static resources that are related to the execution of your app (CSS, JS, and SWF files).

To see what resources are being prefetched, you can retrieve the staticresources connection on the Graph API Application object. You can also find this information on the HTML source of the canvas page, although the Graph API method returns much more information.

To influence what is prefetched, you can include the Javascript SDK and call these methods on each page load: FB.Canvas.Prefetcher.addStaticResource and FB.Canvas.Prefetcher.setCollectionMode.

It’s important that your static resources have the appropriate HTTP headers, otherwise Facebook will ignore them. See FB.Canvas.Prefetcher.addStaticResource for details.

Finally, you can measure the page load performance using FB.Canvas.setDoneLoading. This data will be available in the Insights tool.

Source taken from facebook

  • -

Facebook Game Development Checklist

Category : seo , social

Facebook Game Development Checklist


Games on Facebook Checklist


The following checklist is a comprehensive guide and overview of all recommended best practices for games on You can use this checklist to get started with building a game or to improve an already existing game.


Use App Center. App Center is the central place for over one billion people on Facebook to find and discover games.
Implement Facebook Login. Getting a mobile player connected to Facebook is a proven method to increase engagement within a game. Plan your game around requesting read permissions at login and write permissions when a person actually needs them.
Use Fluid Canvas to allow users to expand the size of your game based on the user’s browser dimensions.


Open Graph helps people tell stories about, for example, their progress and achievements within a game they use. It provides developers with the opportunity to deeply integrate their app into the core Facebook experience, which enables distribution and growth. Make sure to define meaningful actions and objects to model core user interactions in your game.
Enabling players to share high quality stories directly from your game is vital to help your game grow organically. If done right, this channel can turn into one of the most important drivers of distribution and organic installs for your game.
The Graph API for Achievements allows you to publish user achievements in your game. Achievements are added to a user’s timeline, and can also be surfaced to their friends through their news feed.
Use the Graph API for Scores to publish a score for each player. Stories will be generated and shown in news feed and on timeline when a user gets a new high score, or when they pass their friends’ scores. Make sure to display a leader board based on those scores within your game.
The Weekly Tournaments feature of the Scores API allows you to reset scores on a regular (for example, weekly) basis.
Requests are one of Facebook’s primary social channels, used for direct 1-to-1 communication between users. Requests on mobile are especially powerful as they generate a push notification through the Facebook app, and open directly into your game on either iOS or Android.
Invites are a major driver of growth and engagement for games. Players send Invites to friends to join them in a game, driving new installs. Make sure to display an invite bar which is populated with random profile pictures of a players’ friends that are not yet playing the game.
Gifts are a common use-case of the Request channel. Gifts are generally lightweight virtual goods (energy packs, vanity items) that can be used to re-engage players that haven’t visited in a while.
Frictionless Requests enable users to send Requests to specific friends from within an app without having to click on a pop-up confirmation dialog.
Building your own Multi-Friend Selector enables you to customize it to your app and the specific scenario so that the experience feels more consistent with the rest of your app and optimizes for selecting friends most relevant for your game.
Device Filtering for those mobile apps that are only supported on specific platforms. You may want to restrict sending User to User Requests only to users that have your supported devices.
Notifications are short free-form messages you can send to users to re-engage them. They are one of the most effectives ways to inform users of important events, invites from friends, or actions they need to take in your game.


Payer Promotions help you get players to pay more in your game. Facebook sponsors this feature, enabling you to offer certain people a discount on your game’s virtual currency, such as $3 of value for free.
Implement Virtual Currency and make it available to be purchased via the Facebook Payments API, which gives you a single function call to enable monetization via 80+ payment methods in over 50 countries. Your virtual currency is then used to purchase various types of virtual goods in your game.
Use Subscriptions to expand beyond one-time payments, with a new, recurring revenue stream from subscriptions. Entice new subscribers with a free trial and offer the renewal cycle that works for your game, whether that’s weekly, monthly, or another time period. Game developers offering subscriptions have grown incremental revenue and increased engagement in their games.
Enable direct In-App Redemption of Gift Cards. Through this direct in-app redemption, developers can utilize gift cards as a new payment option, taking advantage of incremental gifting opportunities and cash-based purchases.
Support payment with mobile. Mobile Price-points and the Shortcut API allows developers to create an optimized and efficient payment flow for users who wish to pay with their mobile phones, to increase revenue and improve conversion from this payment method.
Allow users to earn coins with offers. Facebook Payments enables users to earn in-app currency by completing engaging advertiser offers. By integrating this feature, developers gain access to an additional revenue channel targeted towards users who are not yet willing to pay for virtual currency.
Reward players who are playing your game regularly by, for example, giving away a series an increasing bonus on day 1, day 2, and so on.
Sales & events can be an effective means to increase revenue. Sales on premium currency can bring pull revenue forward without actually increasing overall payment volume, so be cautious of creating too many sales which encourage players to spend only during sale events. In addition, new content or new virtual items are quite effective at increasing revenue.


Associate your game to a Facebook Page. This will add a ‘Play Game’ and a ‘Visit App Page’ button to your page. Use the page to engage with players of your game, for example by posting updates, frequently asked questions and other engaging content. You can do this in the advanced tab of your app settings.
Both Page Post Ads and Sponsored Stories can appear both in news feed and on the right hand column, and are great ways to drive awareness and engagement to your app.
Use Desktop Ads, a great way to drive new users to your web app, website, or any other specific online destination.


Source taken from facebook

  • -

Game Development On Facebook

Category : seo , social

Game Development On Facebook


Game Requests give players a mechanism for inviting their friends to play a game. Requests are sent by a player to one or more specific friends, and always carry a call-to-action that the sender wants the recipient to complete. Recipients can choose to accept the request, or they can choose to ignore or decline it.

Requests are sent while the sender is in-game, and are surfaced to recipients in several places on Facebook. Requests are always private, and can only be seen by the recipient. While a single request can be sent to multiple recipients at once, the receiver of a request only ever sees details of the sender, and can never see either other recipients of the request, or other requests not sent to them.

Typically, games use Game Requests to attract new players, or to re-engage existing players. Requests can be sent in three scenarios:

  1. The recipient is a friend of the sender and has not authenticated the game. This scenario is useful for invites.
  2. The recipient is a friend of the sender and has authenticated the game before. This scenario is useful for turn-based notifications, gifting, and asking for help.
  3. The recipient has authenticated the game but is not a friend of the sender. This scenario is useful for match-making.

As of API 2.3 Game Requests will only be available to games. You can read the announcement here. Requests will remain available to all apps with API 2.2 until March 2017.

User Experience

This section illustrates how requests appear to both the sender and the recipient.

Send Experience

Game Requests are sent via the Game Request Dialog, which is invoked in-game via the Facebook SDK on iOS, Android and Canvas. Requests can contain a user-facing message as plain text, which is passed as a parameter when invoking the dialog, or they can contain specific information including in-game items and explicit calls to action.

Unless recipients are explicitly defined when the dialog is invoked, a multi-friend selector is shown allowing the sender to select friends to whom they want to send the request.

Game Request Dialog with no recipients specified on Canvas and iOS.

If your game interface has its own multi-friend selector, you can specify the recipients of the request as an additional parameter when invoking the dialog.

Game Request Dialog with a recipient specified, on Canvas and iOS.

In addition, you can specify multiple recipients at once, or suggest friends for the player to select as recipients.

Game Request Dialog with a multiple recipients specified on Canvas, and suggested on iOS.

Finally, on the Canvas version of the dialog, you can provide specific lists of recipients for the sender to pick from.

Game Request Dialog on Canvas with two lists of recipients specified.

You can add additional information to the request by specifying an action and an object. There are three possible actions, send, askfor, and turn. The send action maps to the gifting scenario and theaskfor action maps to the asking for help scenario. The turn action is for turn-based games. The objects used for the first two cases can be any in-game item. These scenarios are described underCommon Scenarios.

By adding an action and an object to a request, developers can bring game content out of the game and onto Facebook, giving new players increased context on the request when they receive it.

For example, instead of sending a generic request (“Anita sent you a request”), you can specify that the request is about asking for a life, or sending a bomb, and it will show up to the recipient with the additional context.

Sending a bomb to a friend in Friend Smash

Receive Experience

Requests will only surface on platforms where the game has been defined in the app dashboard as having a presence. So for example, if an app exists on iOS and Android, but has no Canvas presence, recipients will not see requests received via that app appear on the desktop web version of as notifications.

On the web, when a recipient receives a request they will receive a notification via the notification jewel on Additionally, the bookmark counter for the game in the left hand menu will be incremented.

Requests as they appear in the notification jewel and bookmark counter

Requests may also show up in the Home Reminders section in the upper right hand corner of the main news feed home. If an action and object are specified, they will be shown here as well.

Home reminder section showing requests with, and without, actions and objects.

In addition, the App Center – Activity page will list the request. If the recipient is on when the request is received, they will see a ‘beeper’ notification in the bottom left of their current page.

Requests listed in App Center and a notification beeper for a new incoming request.

Accept Experience

A player accepts a request by clicking on the notification item or beeper, or by clicking Accept on the request item in App Center.

On, accepting the request will take existing players to the Canvas Page URL of the game from which the request was sent. New players will be sent to the App Center page for that game.

On iOS and Android devices, if the player has the Facebook app installed and push notifications enabled, they will receive a push notification alerting them to the request. The push notification will open the Facebook app and will display the request inside the notification jewel in a similar way to on desktop.

Accepting the request will direct the recipient to the app on their device if installed or to the appropriate location (Apple App Store or Google Play) to download the app otherwise.

Game Requests stack and appear in chronological order, much like a traditional email inbox. Requests are not automatically deleted when recipients accept them. It is the developer’s responsibility to ensure that requests are deleted after being accepted and consumed. This is discussed in more detail in the implementation section of this guide.

Common Scenarios

Some of the common use cases for Game Requests are described in more detail below.


Game Requests can be sent to a player’s friends who haven’t previously authenticated the game. Requests therefore serve as a primary method for players to invite their friends to join them. For developers, Requests function as an important channel for organic game discovery and acquisition.

Game Request Dialog with a list of friends to invite.

To query Facebook for a player’s friends who are not yet using your app, use the Invitable Friends API. The information you receive from this API can be coupled with the Game Request Dialog to send invites.

Players are great product advocates, so game invites are a great mechanism to drive distribution and increase awareness for a new game.

Further information on using Game Requests for invites in your game can be found in the Best Practices section of this guide.

Turn-based games

Turn-based games can use requests to great effect as a notification mechanism. When one player completes a turn they can send a request to their opponent prompting them to take their turn. This helps to keep players engaged with the game.

Turn based game sending a `turn` request
Turn based game using `turn` request to notify a player it’s their turn.


Requests can be sent to any player that has already installed the game; the sender and recipient do not need to be friends. If a player wants to start a new game but none of their friends are active or available, the game can send a request to players who aren’t friends. As a developer, this lets you increase the pool of your app’s matchmaking system outside of the player’s social graph and works especially well for synchronous, real-time games.

Since requests from non-friends carry no social context, they are susceptible to higher decline rates and request blocking, so it is wise not to over-use Game Requests for this scenario.

Gifting and social trading

Gifts are typically lightweight virtual goods (energy packs, vanity items) that can be used to re-engage players who haven’t played your game in a while. Many games implement the feature such that players can easily accept pending gifts and send reciprocal gifts back to their friends. This creates a retention loop that encourages players to stay engaged in your game.

Pepper Panic Saga by King implements social gifting to keep players engaged.

For players, this provides an opportunity to assist friends and get things from each other to create a social experience among friends working together.

The bomb gift from our Friend Smash example in the User Experience section of this guide illustrates the ability to specify and show the gift in the request for the sender and the receiver.

Asking for help

When a player gets stuck in your game, they can use Game Requests to ask their friends for assistance by requesting specific items. Similar to gifting, this also creates an organic retention loop that encourages players to stay engaged in your game.

A player asking for help in Friend Smash


Game Requests are available for games on Canvas, iOS or Android. Requests appear on whatever combination of these platforms are supported by your game. For example, a player using the iOS version of your game could send a request to a player who plays on Canvas, and vice-versa. Hence, your implementation of requests should be platform-agnostic and should provide a consistent user experience, regardless of platform.

On all platforms, requests are sent via the Game Request Dialog, which is provided by the Facebook SDK for that platform. As described in the User Experience section, the dialog can be used to send a request directly to a specified recipient, or to display a multi-friend selector, allowing the sender to select multiple recipients for the request.

Configuring your app to send requests

Game Requests are only available to apps that are categorized as type Game. If your app is configured in any other category, it won’t be possible to launch the Game Requests Dialog.

In order for your app to send Game Requests, you need to configure the platforms that are supported. This will ensure that Game Requests can be delivered to recipients on all the platforms that your app supports.

Canvas Games

For Canvas games, configuration is simply a matter of adding Canvas as a supported platform in App Settings and providing your Secure Canvas URL. Once this is done, Game Requests sent to web recipients will appear in the recipients’ notifications on

iOS Games

If an iOS user receives a Game Request and doesn’t have your game installed, the notification will take them to the App Store to download your game. To ensure this works correctly, you need to supply an iPhone and/or iPad Store ID, and you need to ensure that both Single Sign On and Deep Linking are enabled for iOS under App Settings for your app.

Configuring your iOS platform settings to enable Game Requests.

While your game is under development, it’s common that you won’t have a Store ID that works. You can use any valid Store ID for testing, then change it to your live Store ID once you launch the game.

Android Games

When an Android user receives a Game Request and doesn’t have your game installed, the notification will take them to the Play Store to download your game. To ensure this works correctly, you need to supply a Google Play Package Name, and you need to ensure that both Single Sign On and Deep Linking are enabled for Android under App Settings for your app.

Configuring your Android platform settings to enable Game Requests.

While your game is under development, it’s common that you won’t have a package name that exists in the Play Store. You can use any valid package name for testing, then change it to your live package name once you launch the game.

Invoking the dialog

The Game Request Dialog is generated via the JavaScript, iOS or Android SDKs, Unity SDK, and by performing a browser redirect to a given URL. These examples assume the sender has already authenticated the app.

JavaScript SDK

Sending requests using the multi-friend selector provided by the Game Request Dialog:

    FB.ui({method: 'apprequests',
      message: 'YOUR_MESSAGE_HERE'
    }, function(response){

When the dialog is closed, the response object will contain the results of the send, including a requestid and an array of to recipients. For example:


By default, the sender is presented with a multi-friend selector allowing them to select a maximum of 50 recipients.

Note: Due to URL length restrictions, the maximum number of recipients is 25 in Internet Explorer 7 or 8 when using a non-iframe dialog.

Sending requests to a specific recipient:

    FB.ui({method: 'apprequests',
      message: 'YOUR_MESSAGE_HERE',
      to: 'USER_ID'
    }, function(response){

If the to field is specified, the sender will not be able to select additional recipients.

Sending requests to multiple specific recipients:

    FB.ui({method: 'apprequests',
      message: 'YOUR_MESSAGE_HERE',
    }, function(response){

Multiple recipients can be specified via a comma-separated list.

Note: There are restrictions on the maximum number of recipients you are able to specify via the ‘to’ field. Namely, fewer than 50 friends, and fewer than 26 friends on Internet Explorer 8 or below.

Sending requests to specific lists of friends:

    FB.ui({method: 'apprequests',
      message: 'Friend Smash Request!',
      filters: [{name:'GROUP_1_NAME', user_ids:['USER_ID','USER_ID','USER_ID']},{name:'GROUP_2_NAME', user_ids: ['USER_ID','USER_ID','USER_ID']}]
    }, function(response){

Sending requests explicitly stating an action and object:

FB.ui({method: 'apprequests',
  message: 'Take this bomb to blast your way to victory!',
  to: {user-ids}, 
  object_id: 'YOUR_OBJECT_ID'  // e.g. '191181717736427' 
}, function(response){

For turn based requests, do not specify an object_id.

FB.ui({method: 'apprequests',
  message: 'Just smashed you 78 times! It\'s your turn.',
  to: {user-ids},
}, function(response){

Alternatively, recipients can be divided into named lists, allowing the player to pick from logically-grouped friends based on their status in the game.

For more information, see the FB.ui reference documentation for the JavaScript SDK.


    FBSDKGameRequestContent *gameRequestContent = [[FBSDKGameRequestContent alloc] init];
  // Look at FBSDKGameRequestContent for futher optional properties
  gameRequestContent.message = @"YOUR_MESSAGE_HERE";
  gameRequestContent.title = @"OPTIONAL TITLE";

  // Assuming self implements <FBSDKGameRequestDialogDelegate>
  [FBSDKGameRequestDialog showWithContent:gameRequestContent delegate:self];

Sending requests explicitly stating an action and object using the iOS SDK:

FBSDKGameRequestContent *gameRequestContent = [[FBSDKGameRequestContent alloc] init];
  gameRequestContent.message = @"Take this bomb to blast your way to victory!"; = @[@"RECIPIENT_USER_ID"];
  gameRequestContent.objectID = @"YOUR_OBJECT_ID";

  // Assuming self implements <FBSDKGameRequestDialogDelegate>
  [FBSDKGameRequestDialog showWithContent:gameRequestContent delegate:self];

Android SDK

Sending a request via the Android SDK:

    GameRequestDialog requestDialog;
    CallbackManager callbackManager;

    public void onCreate(Bundle savedInstanceState) {

        callbackManager = CallbackManager.Factory.create();
        requestDialog = new GameRequestDialog(this);
        requestDialog.registerCallback(callbackManager, new FacebookCallback<GameRequestDialog.Result>() {
            public void onSuccess(GameRequestDialog.Result result) {
                String id = result.getId();

            public void onCancel() {}

            public void onError(FacebookException error) {}

    private void onClickRequestButton() {
        GameRequestContent content = new GameRequestContent.Builder()
                .setMessage("Come play this level with me")

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);  

Sending a request explicitly stating an action and object using the Android SDK:

private void onClickRequestButton() {
        GameRequestContent content = new GameRequestContent.Builder()
                .setMessage("Come play this level with me")

For more information, see the guide to Sending Requests using the Android SDK.

Unity SDK

Here is how requests are done in the Unity SDK. Check the FB.AppRequest documentation for more details.

// For 1:1 requests
public static void AppRequest(
string message,
string[] to,
string data = "",
string title = "",
FacebookDelegate callback = null)

// For 1:N requests
public static void AppRequest(
string message,
List<object> filters = null,
string[] excludeIds = null,
int? maxRecipients = null,
string data = "",
string title = "",
FacebookDelegate callback = null)

Dialog Parameters

The Game Request Dialog can be created with a number of additional parameters that determine its behavior. These parameters are described below.

Parameter Description Required
app_id Your app’s unique identifier. Yes
redirect_uri The URL to redirect to after a sender clicks a button on the dialog. Used for returning a sender to the game after sending a request. For security reasons, the redirect_uri specified must exist within the same root domain as the app’s Canvas page url. Yes when using the URL redirection method
to Either a user id,username or invite token, or a comma-separated list of user ids,usernames or invite tokens. These may or may not be a friend of the sender. If this is specified by the app, the sender will not have a choice of recipients. If not, the sender will see a multi-friend selector No
message A plain-text message to be sent as part of the request. This text will surface in the App Center view of the request, but not on the notification jewel Yes
action_type Used when defining additional context about the nature of the request.

Possible values are send, askfor, and turn

Yes ifobject_idhas been set
object_id The Open Graph object ID of the object being sent. Yes ifaction_typehas been set to send oraskfor
filters This controls the set of friends someone sees if a multi-friend selector is shown. If left empty, the multi-friend selector will display all of the user’s Facebook friends.

By specifying app_users, the multi-friend selector will only display friends who are existing users of the app. This should be used when using requests for matchmaking.

Alternatively, by specifying app_non_users, the sender will only see friends who have previously not authenticated the app. This should be used when using requests for inviting new users to the game.

An app can also suggest custom filters as dictionaries withname and user_ids keys, which respectively have values that are a string and a list of user ids. name is the name of the custom filter that will show in the selector. user_ids is the list of friends to include, in the order they are to appear.

Note: On the iOS and Android SDKs only the app_users andapp_non_users filters are supported, as singular values. Dictionaries of these values are not supported. In addition, this parameter can not be used together with suggestions, using the two in the same dialog will result with an error.

suggestions An array of user IDs that will be included in the dialog as the first suggested friends. Note: This parameter is available for mobile devices only and can not be used together withfilters. Using the two in the same dialog will result with an error. No
exclude_ids An array of user IDs that will be excluded from the dialog. If someone is excluded from the dialog, they will not appear in the multi-friend selector. Note: This parameter is not supported by the mobile SDKs and will be ignored. No
max_recipients An integer that specifies the maximum number of friends that can be chosen by the sender in the friend selector. This parameter is not supported on mobile devices. No
data Additional freeform data you may pass for tracking. This will be stored as part of the request objects created. The maximum length is 255 characters. No
title The title for the Dialog. Maximum length is 50 characters. No

Response Data

When a request has been sent via the Game Request Dialog, a response will be passed to the callback containing the following information:

Parameter Description
request The request object ID. To get the full request ID, concatenate this with a user ID from the to field: <request_object_id>_<user_id>
to An array of the recipient user IDs for the request that was created.

Creating objects for requests

To send an object and action as part of a request, you’ll need to create an Open Graph representation of an in-game item that can be sent in requests.

Open Graph objects for requests can be created in the same way as objects for custom Open Graph stories. You can even re-use the same objects that you use in your stories if you’d like. However, you cannot use instances of the standard open graph types and must use your own custom open graph type.

It is a requirement that objects sent via requests need to be app-owned, so they are public for everyone to see.

You will need to set up a custom Open Graph object type, and an instance of that type, for each type of object you would like to use in a request. For example, if you are sending a bomb and a life, you will set up an Open Graph object type for bomb and another one for life, and create an instance of type.

To create a custom Open Graph type, follow the instructions in the “Creating Object Types” documentation.

Here is the object type for the bomb example used elsewhere in this guide. The only required properties are og:type and og:title.

The Open Graph object type page for a bomb in Friend Smash.

Other properties (image, description etc.) of the object instance are not used in requests. The information shown in the request is based on the object type’s name.

The Object Brower tool is an easy and fast way to create object instances.

Creating an instance of a bomb object type using the Object Browser

Accepting a request

When a recipient accepts a request, either through the notification jewel, the beeper popup, or App Center they will be sent to the Canvas Page URL of the app that sent the request. This URL will contain an additional GET parameter: request_ids, which is a comma-delimited list of request IDs that the user is enacting:[app_name]/?request_ids=[REQUEST_IDs]

It’s important to note that requests are not automatically deleted when a recipient accepts them. This is the responsibility of your app. A common approach is that when your game is launched, read from the Graph API the list of outstanding requests for that user and delete each one after processing.

Reading requests

Each request sent has a unique Request Object ID. This ID represents the request itself. This Request Object ID can be concatenated with a recipient User ID to create a specific instance of the request. The represents one instantiation of the request, which was sent to a specific recipient.

For example, when sending a request, the response from the Game Request Dialog looks like the following:

    request: 'REQUEST_OBJECT_ID'
    to:[array of USER_IDs]

If you look up the Request Object ID via the Graph API, the response you receive will differ slightly, depending on the viewing context of the lookup, but the response will always represent the entire request object.

For example, if a query to<REQUEST_OBJECT_ID>?access_token=USER_ACCESS_TOKEN is made with the user access token of the recipient, you will see the following response:

  "application": {
    "name": "APP_DISPLAY_NAME", 
    "namespace": "APP_NAMESPACE", 
    "id": "APP_ID"
  "to": {
    "name": "RECIPIENT_FULL_NAME", 
  "from": {
    "name": "SENDER_FULL_NAME", 
    "id": "SENDER_USER_ID"
  "message": "ATTACHED_MESSAGE", 
  "created_time": "2014-01-17T16:39:00+0000"

Note that both the “to” and “from” fields are returned. However, if the same endpoint is called using the access token of the sender, Facebook will return the following:

  "application": {
    "name": "APP_DISPLAY_NAME", 
    "namespace": "APP_NAMESPACE", 
    "id": "APP_ID"
  "from": {
    "name": "SENDER_FULL_NAME", 
    "id": "SENDER_USER_ID"
  "message": "ATTACHED_MESSAGE", 
  "created_time": "2014-01-17T16:39:00+0000"

Note that the “to” field is now missing. The same response is returned if the call is made using an app access token, so:<REQUEST_OBJECT_ID>?access_token=APP_ACCESS_TOKEN will return:

  "application": {
    "name": "APP_DISPLAY_NAME", 
    "namespace": "APP_NAMESPACE", 
    "id": "APP_ID"
  "from": {
    "name": "SENDER_FULL_NAME", 
    "id": "SENDER_USER_ID"
  "message": "ATTACHED_MESSAGE", 
  "created_time": "2014-01-17T16:39:00+0000"

To get the full request that includes the recipient, you will need to append the recipient user ID following an underscore ‘_’ character. So for example:<REQUEST_OBJECT_ID>_<USER_ID>?access_token=APP_ACCESS_TOKEN


  "application": {
    "name": "APP_DISPLAY_NAME", 
    "namespace": "APP_NAMESPACE", 
    "id": "APP_ID"
  "to": {
    "name": "RECIPIENT_FULL_NAME", 
  "from": {
    "name": "SENDER_FULL_NAME", 
    "id": "SENDER_USER_ID"
  "message": "ATTACHED_MESSAGE", 
  "created_time": "2014-01-17T16:39:00+0000"

Reading all requests

In order to read all the requests for a recipient for you can query the graph as shown below using the recipient’s USER ACCESS TOKEN. This will return a list of request ids for that user in the app.


Deleting requests

As previously mentioned, Requests are not automatically deleted after they have been accepted by the recipient. It is the responsibility of the developer to delete the request after it has been accepted. Youmust delete requests on behalf of players once they have been accepted.

You can delete a request via the following methods:

Graph API

Issue an HTTP DELETE request to the concatenated request_id:

      access_token=[USER or APP ACCESS TOKEN]

JavaScript SDK

function deleteRequest(requestId) {
  FB.api(requestId, 'delete', function(response) {

Here is a full PHP sample that shows you how to concatenate the request_id and user_id in order to delete outstanding requests.

$config = array(
'appId' => 'YOUR_APP_ID',
'secret' => 'YOUR_APP_SECRET',
$facebook = new Facebook($config);

//Assuming the user has already authenticated the app
$user_id = $facebook->getUser();

//get the request ids from the query parameter
$request_ids = explode(',', $_REQUEST['request_ids']);

//build the full_request_id from request_id and user_id 
function build_full_request_id($request_id, $user_id) {
  return $request_id . '_' . $user_id; 

//for each request_id, build the full_request_id and delete request 
foreach ($request_ids as $request_id) {
  echo ("request_id=".$request_id."<br>");
  $full_request_id = build_full_request_id($request_id, $user_id);  
  echo ("full_request_id=".$full_request_id."<br>");

  try {
    $delete_success = $facebook->api("/$full_request_id",'DELETE');
    if ($delete_success) {
      echo "Successfully deleted " . $full_request_id;}
    else {
      echo "Delete failed".$full_request_id;
  } catch (FacebookApiException $e) {
    echo "error";

Rewarding the Sender

In efforts to incentive players to send requests, you can reward the sender based on certain actions the receiver performs as a result. For example, you can not reward players for simply sending requests, but if the receiver installs the game and reaches a certain level as a result of accepting the request, you are able to reward the sender. In order to do this, you will want to trace a request back to the sender to know who to reward. There are two ways to achieve this:

  1. Upon sending the request, store the request id returned in the response from the Game Request Dialog and match it upon receipt to reward the sender.
  2. Read all the requests for the receiver and reward the sender based on the ID in the “from” field.

Translating Requests

Requests can be translated and depending on the type of request, this is done by either Facebook or the developer. Please see the Translation Guide for Requests for details.

Tracking and Improving Performance

In order to improve the performance (Click Through Rate) of your request, you can track and compare how each request is doing through Insights. For each tab, there is the ability to show by action or by object.

Action/Object Performance for Game Requests in Insights

You can also implement your own custom data tracking using some of the information stored with the request in the graph, namely action_type and object.

If you want even greater control over tracking, you can embed additional information in the data field. Simply add the data parameter with a string value when invoking the Game Request Dialog.

FB.ui({method: 'apprequests',
  message: 'Take this bomb and blast your way to victory!',
  object_id: 'YOUR_OBJECT_ID',
  data: 'Friend Smash Custom Tracking 1'
}, function(response) {

The data field is always returned with the request information. In order to retrieve the action_typeand object fields in the request, you will need to explicitly ask for these fields in your query.

      "to": {
        "name": "RECIPIENT_NAME",
        "id": "RECIPIENT_USER_ID"
      "data": "Friend Smash Custom Tracking 1",
      "message": "Take this bomb and blast your way to victory!",
      "created_time": "2013-11-09T23:05:39+0000",
      "action_type": "send",
      "from": {
        "name": "SENDER_NAME",
        "id": "SENDER_USER_ID"
      "object": {
        "id": "YOUR_OBJECT_ID",
        "type": "YOUR_APP_NAMESPACE:bomb",
        "title": "Bomb",
        "updated_time": "2013-10-25T17:37:29+0000",
        "created_time": "2013-10-25T17:37:29+0000",
        "application": {
          "id": "YOUR_APP_ID",
          "name": "Friend Smash!",
          "url": ""
        "is_scraped": false
      "application": {
        "name": "Friend Smash!",
        "namespace": "YOUR_APP_NAMESPACE",
        "id": "YOUR_APP_ID"

If you do not need all the information in the object returned with the request, you can limit your call to return only the


For your own data tracking, it may also be helpful to know how the recipient of the request saw the request. For example, when the requests that have action and object are aggregated in the notifications, only the most recent object is explicitly detailed out, while the other requests are aggregated together (“…and other requests”).

This information can be extracted from the content URL parameter on the request. It will be passed in the format content=ACTION_TYPE:OBJECT_ID, where ACTION_TYPE and OBJECT_IDcorrespond to the action_type and object_id parameters set when invoking the Game Request Dialog.,235483369959425&ref=notif&app_request_typ=user_to_user&content=send:55728546344483&notif_t=app_request

Best Practices

The documentation above gives a basic technical overview of requests, and how to implement them into your product. Below are some common best practices that help to take full advantage of the requests channel.

Use Frictionless Requests

You can streamline the process of sending requests by implementing Frictionless Requests. Frictionless requests allow players to send requests to specific friends from within an app without having to click a pop-up confirmation each time.

Upon first send to a friend, the player can allow subsequent sends to be sent to the same friends, without prompting for permission each time. This works especially well for turn-based games, where players can send requests for subsequent turns to their opponent without taking additional.

Frictionless request toggle on the web dialog.

Frictionless requests are extremely easy to implement. On the web, simply include thefrictionlessRequests parameter in FB.init and set it to true, like this:

      appId  : APP_ID,
      oauth  : true,
      frictionlessRequests : true

On iOS, Frictionless requests are implemented via the FBFrictionlessRecipientCache class, which maintains a cache of friends that can receive frictionless requests. For an example implementation, please see the iOS Games Tutorial – Frictionless Requests. For a complete reference of the class and its use, please see iOS Reference – FBFrictionlessRecipientCache.

This is especially effective for Canvas, mobile web and iOS games as the request notifies the recipient across all of their devices, which creates a seamless cross platform experience. For more information on how requests work across platforms, read Building a Cross-Platform Game.

Frictionless requests only apply to requests, not invites. Once the friend installs the game, requests will be frictionless. The user_friends permission is also required.

Append data to a request

As mentioned in the Dialog Parameters section above, you are able to append up to 255 characters of additional data to send with the request. You can use this facility to either transfer additional information regarding the request, or append an identifier that you can use later to look up relevant information stored on your server.

As an example, in the Facebook sample game project Friend Smash, players take turns competing to ‘smash’ the highest number of friends possible. When one player sends a challenge to another, via a request, the data parameter is used to store the challenging player’s latest score. The game then extracts this value for the receiving player, and makes it the target score for the next game. This is fully documented in the Canvas Games Tutorial.

Create a custom multi-friend selector

By constructing your own multi-friend selector, you can customize the look and feel of the experience to make it consistent with the rest of your game. Additionally, you can optimize the flow with any additional information you may have to surface friends who are the most relevant to your game.

If your game is constructed in Flash or Unity on the web, you may want to create a native multi-friend selector instead of using Facebook’s web-based dialog. Similarly, creating a native flow on either iOS or Android will often be a smoother experience than the default Facebook implementation. For these reasons, the majority of top game developers on the Facebook platform choose to implement custom multi-friend selectors.

Custom multi-friend selector implemented in King’s Farm Heroes Saga.

For more information about how to construct a custom multi-friend selector, please see the dedicatedMulti-friend Selector documentation, and the Invitable Friends API.

Create prominent invite buttons

Make sure that the invite buttons are prominent within your interface. Players should never have to hunt to invite their friends. Most successful social games include an option to invite friends within their main screen, letting players invite their friends at will. Another common strategy is to maintain a friend bar that showcases a player’s friends and their current status in the game. That bar could be a leaderboard, neighbor list etc, and it generally should include a button to let a player invite their friends directly.

Prominent invites in Nordeus’ Top Eleven.

Filter invites

When building a custom multi-friend selector, or otherwise choosing who to send requests to, consider providing filters to help the player choose their desired recipients.

A common filter used when implementing invites using the Game Request Dialog is theapp_non_users filter. This filter prevents the Game Request Dialog from displaying people who have previously played your game. Other filters you may consider are players recently interacted with or players of similar games you control. For a full list of filters available, see the Game Request Dialog – Parameters reference doc.

Prompt appropriately

Prompt highly engaged players during low activity areas of the game (such as, when loading screens) and asking them to invite their friends. If players are enjoying the game, periodically prompt them to invite more friends, but be mindful to not interrupt their experience.

Create engaging mechanisms

Create engaging mechanisms for players when they visit their friends in game or interact with them directly. For example, if the game supports the concept of neighbors, grant bonus energy when players visit their neighbors’ environments. If a player’s base is attacked, let their friends help repair it. Players generally find value in helping their friends progress, and giving them opportunities to do so results in greater social experience and more people playing.

Optimize your requests

As mentioned in earlier sections, when players are able to see the contents of the requests, they are able to make a more informed decision about which requests they want to click on and when. This is a better user experience and you can optimize your requests by doing the following:

Specify the action and object

This will show the player what the contents of the request is before they click on it.

Make the object valuable to the player

Offer something that is valuable to the player that they can use to enhance their gameplay or social experience.

Segment players and offer requests in context

Evaluate your players and break them up into various groups that make sense for your game (e.g. new players, players that are doing crafting, players with lots of friends, engaged players, etc.). Think about what kinds of things would be useful to them at their level. Offer specific things to each group.

Track and optimize

Implement your own tracking and monitor to iterate and optimize.

You can also take a look at games in your genre for ideas on how others are using requests

Source taken from

  • -

Stunning facebook pages

Category : seo , social

Stunning facebook pages designs (And why they work)

One of the best things about Facebook Pages is the ability to have a customized landing tab. This piece of your fan page will be what new visitors to the fan page see, and it can help you increase conversions from your fan page in the form of additional likes.

How is a like on Facebook a conversion, you might ask? According to a recent study, the value of a Facebook fan is about $10 for a brand. And with the largest fan page topping out at 56 million “likes” (Facebook’s own, of course), you can do the math and see why gaining fans for your page is an important acquisition.

Examples Of Landing Tab Usage

The following are examples of Facebook landing tabs from celebrities, brands, and other fan pages that make the top Facebook pages based on number of fans.

There are a number of things you might want a Facebook visitor to do on your Facebook landing page.

Here are examples of beautifully designed landing pages organized by the primary conversion goal for the page.

Like Our Page

One of the top goals for a great landing tab is to get people to like your fan page. Here, Red Bull uses a combination of drawing attention to the Like button with the promise of unveiling hidden video content. It certainly has worked for them and their 24.6 million fans!

Rihanna’s fan page does the same, promising fans of the page exclusive content and fan missions. Once you like the page, you are greeted with a successfully completed mission, video premiere exclusive, and the ability to buy her latest album on iTunes.

This is the perfect way to combine conversion points of gaining new fans, getting them to share your page with their friends using the Post to Wall button, and directing them to purchase your products!

Of course, you don’t have to get fancy. Pringles makes you want to join the page simply to interact on their wall!

Talk about social proof in those status updates with the number of likes and comments, although the dates of the updates suggest they only interact on their wall sporadically.

Make A Purchase

Impulse buys are popular in grocery stores and retail stores alike, so why not on Facebook too? Victoria’s Secret has the perfect last minute gift right on their landing tab. You can buy a gift card for your Facebook friend, right on their page!

Once you’ve customized your gift card, you can have it sent to them via Facebook or Email. The beauty for Victoria’s Secret is that sending it through Facebook will post it on your recipient’s wall. So not only did they make a sale, but they’ll get some advertising on your friend’s personal profile too!

Visit Our Website

iTunes takes the familiarity of their store and puts it right on their Facebook landing tab with every link leading you back to their platform. They also keep some Facebook functionality in by letting you share songs from their top playlists to your Facebook profile.

So maybe if you don’t buy, you might share one of your favorite tunes with your friends and they’ll stop by to make a purchase!

Texas Hold’em Poker is the #2 most popular Facebook page with 54.3 million fans. Their green Play Now button leads you directly to their app where you can play poker on Facebook itself. The addiction factor from there is huge with the ability to play friends and get “collectibles.”

Experience Our Brand

You don’t always have to hide content in order to generate likes. Sometimes you just have to display your brand’s strong points. Coca-Cola highlights their Like button while showing how they help the environment and who wouldn’t fall for cute polar bear cubs? 36.4 million fans certainly have!

Walmart also takes the initiative to turn their landing tab for the holidays to show their charitable ways for nonprofits.

Source taken from

  • -

Enhance facebook page by adding apps

Category : seo

Enhance facebook page by adding apps

8 Facebook Apps to Enhance Your Facebook Page

social media toolsDo you want to add more function and flair to your Facebook page?

Would you like to add storefront, generate leadsor promote something special on a Facebook tab within your page?

In this article I’ll reveal Facebook applications that can help you easily add functionality to yourFacebook page.

How Do Facebook Apps Work?

Before we get started, let’s review how Facebook apps (also known as custom tabs on Facebook) pages work.

Custom tabs are installed manually on your Facebook page and show up underneath the cover photo. If you’re visiting a page that has more than four tabs, you can click the down arrow on the right side of the tab cover photos to reveal them all.

custom tabs under cover photo

Custom tabs appear under your cover photo.

There are four standard Facebook apps that come with every page—Photos, Events,Videos and Likes—and any other apps you add are created by a third-party developer (not Facebook).

Many of the apps are designed on the app website after you sign up, and then installed later onto your Facebook page when you’re ready.

Things You Should Know

There are a few important details about Facebook apps that will help with your design. The app width is 810 pixels. If you’re going to create graphics that go all the way across the tab, you’ll need to keep the graphic to that width to prevent scroll bars on your tab.

The graphic can be as long as you want it to be, but keep in mind that it should be shorter than around 500 pixels to appear “above the fold” on most computer screens.

You’ll probably also want to design a custom tab cover photo to draw attention to the tab. The dimensions of the tab cover photo are 111 pixels wide by 74 pixels tall.

Also note that some tabs will not appear on mobile devices. Some are “mobile-ready”; meaning they have a separate URL that they direct people on mobile devices to so they can see the content on that custom tab.

If you’ve been out there searching in the blogosphere, you may have come across Welcome Pages, where the content of your Facebook page could be “hidden” until the user clicks the Like button. That function no longer exists, but you can still hide the content of a Tab until someone clicks the Like button.

Hiding part of the content of your custom Tab is called “like-gating” or “fan-gating“, meaning that someone has to like your page (be your fan) before they can see the good content. This can work especially well for contests or sweepstakes on Facebook. By doing this, you can ensure that the person is a Fan before getting access to the contest entry form.

There are a lot of other apps available that provide a variety of features, like easily bringing in your Pinterest boards, running a contest or adding your blog posts.

These apps are more like a blank canvas, where you can do anything you can do on a website by either using custom templates to get you started or custom-designing something from scratch.

Without further ado, let’s dive into the top 8 apps (in alphabetical order) with some notes about each one.

#1: Heyo

Heyo is a drag-and-drop application that’s very easy to set up. You can insert a background photo or create a solid fill background and drop in videos, links, text or whatever else you can dream up for your custom tab. Plans start at $25/month with a free trial.


Social Media Examiner uses Heyo to promote its podcast.

#2: North Social

North Social is a little more expensive at $1.99/day, but you get all of the apps they offer at that price. You can use North Social as your one-stop-shop for all of your Facebook tab needs (including coupons and contests).

north social

Get all of the apps for one price so you can have a variety of customization.

#3: Pagemodo

Pagemodo is a very affordable app that starts at $6.25/month for three tabs on each page. The Pro version ($13.25/month) doesn’t include the Pagemodo branding and you can have an unlimited number of tabs on three different pages. Pagemodo has a lot of templates to choose from, or you can do something more custom.


Pagemodo has a lot of different pre-built templates if you don’t want to build your tab from scratch.

#4: ShortStack

ShortStack is a very versatile Facebook app that is built on “layers.” You can layer widgets on top of each other or use some of their pre-built templates and themes to create something that looks great. The nice thing about ShortStack is that it’s free for pages with fewer than 2000 fans—very nice as you ease into Facebook marketing.


Use some of the pre-built templates and themes to create a tab that looks professional.

#5: Static HTML – Thunderpenny

Static HTML – Thunderpenny is a free app with a few useful features. You can choose to pull a website right into the Facebook app. But be aware that most websites are larger than the 810-pixel maximum size, so you’ll have scroll bars showing.

You can also just upload a single image. This is a handy feature if you have designed a flyer or something else you want to showcase.


Code something in HTML, upload an image or import a website easily with Static HTML.

 #6: TabFoundry

TabFoundry is a very handy drag-and-drop free app. You can add background graphics or colors, add multimedia and use HTML if you prefer. If you want to unlock some of the features in the Premium plan, it’s just $9/month.


Use the editor to drag and drop the images you want into your custom tab.

#7: TabSite

TabSite is another multifaceted tab app where you can run contests, deals, bring in other social feeds and create a custom tab. There’s a free option for two tabs on one page (restrictions apply) or plans starting at an affordable $10/month.


TabSite specializes in contests and sweepstakes, but it also does more.

#8: Woobox

Woobox is a flexible Facebook app that has some free options for things like HTML Fangate, which is nice. The paid plans for contests and other features start at $1/month (yes that is correct—it’s for pages with 100 fans or fewer).

One nice function that’s available is the possibility to redirect right from an app. That way, you avoid having those scroll bars if your website is too wide.


Woobox has some free options for its HTML tab and other functions.


That brings us to the end of the 8 apps I would recommend. There are many others out there that may also be a good fit for your business. Just make sure youunderstand the pricing and the capabilities before signing up. Many apps have a free trial, which can help you make a more informed decision.

Ultimately, you should be using these Facebook apps to enhance the online experience of your customers or prospects. Always keep them in mind when you’re spending time (and maybe money) creating a custom app. What type of information would benefit them?

Source taken from

  • -

Benefits of using cookies in website

Category : seo

Benefits of using cookies in website

Benefits of using cookies in website











Cookies how they Benefit us

Our website uses cookies, as almost all websites do, to help provide you with the best experience we can. Cookies are small text files that are placed on your computer or mobile phone when you browse websites

cookies help us

Make our website work as you’d expect
Save you having to login every time you visit the site
Remember your settings during and between visits
Improve the speed/security of the site
Continuously improve our website for you
Make our marketing more efficient (ultimately helping us to offer the service we do at the price we do)
We do not use cookies to:

Collect any personally identifiable information (without your express permission)
Collect any sensitive information (without your express permission)
Pass data to advertising networks
Pass personally identifiable data to third parties
Pay sales commissions
You can learn more about all the cookies we use below

Granting us permission to use cookies
If the settings on your software that you are using to view this website (your browser) are adjusted to accept cookies we take this, and your continued use of our website, to mean that you are fine with this. Should you wish to remove or not use cookies from our site you can learn how to do this below, however doing so will likely mean that our site will not work as you would expect.

Our own cookies
We use cookies to make our website work including:

Determining if you are logged in or not
Remembering your search settings
There is no way to prevent these cookies being set other than to not use our site.

Third party functions
Our site, like most websites, includes functionality provided by third parties. A common example is an embedded YouTube video.

Disabling these cookies will likely break the functions offered by these third parties.

Anonymous Visitor Statistics Cookies
We use cookies to compile visitor statistics such as how many people have visited our website, what type of technology they are using (e.g. Mac or Windows which helps to identify when our site isn’t working as it should for particular technologies), how long they spend on the site, what page they look at etc. This helps us to continuously improve our website. These so called analytics programs also tell us if , on an anonymous basis, how people reached this site (e.g. from a search engine) and whether they have been here before helping us to put more money into developing our services for you instead of marketing spend.

Turning Cookies Off

You can usually switch cookies off by adjusting your browser settings to stop it from accepting cookies (Learn how here). Doing so however will likely limit the functionality of our’s and a large proportion of the world’s websites as cookies are a standard part of most modern websites

It may be that you concerns around cookies relate to so called “spyware”. Rather than switching off cookies in your browser you may find that anti-spyware software achieves the same objective by automatically deleting cookies considered to be invasive.

Source taken from

  • -

what is nofollow

Category : seo

What is nofollow

What You Need To Know About Rel Nofollow Links



What Is Rel Nofollow?
Adding the html attribute rel=”nofollow” to a link effectively stops a link becoming a vote for another page, as far as Google and some other search engines are concerned.. This means the link does not count as a vote or recommendation nor does it pass page rank nor does it pass topical relevance.
For instance, most blog comments, user generated or automated links on social media profiles, forums, sites like Squidoo, Youtube and the higher quality directories are nofollow links in 2013/14, because manipulative user generated links can reduce reputation or ‘linking equity’, and perhaps, the overall trust Google has in your site. I go into all that below.
Losing trust, as far as Google is concerned, is a very bad thing.
Using the html attribute on an external (outbound) link tells Google you don’t vouch for this other web page enough to help it’s search rankings. If you are worried about who you link to (typically called backlinks), and in some cases, you should be, using the attribute ‘insulates’ you against loss of reputation, if that other site is involving you in it’s link scheme.
Google Advice on Paid Links and ADVERTORIALS
Google  wants all non editorial links like PAID ADVERTISING LINKS, ADVERTORIALS, AFFILIATE LINKS and NATIVE ADVERTISING marked up with the attribute relnofollow, to separate these links from freely given, editorially approved backlink.

<a href=”” rel=”nofollow”>Hobo</a>
RelNoFollow is an elemental microformat, one of several microformat open standards. By adding rel=”nofollow” to a hyperlink, a page indicates that the destination of that hyperlink should not be afforded any additional weight or ranking by user agents which perform link analysis upon web pages (e.g. search engines). Typical use cases include links created by 3rd party commenters on blogs, or links the author wishes to point to, but avoid endorsing.

Like it or loathe it – the attribute is here to stay, and seo professionals are beginning to come round to the fact that paid links without the attribute can be VERY RISKY in 2013. Of course, with the attribute, paid links do not have anywhere near the same benefit when it comes to better search engine rankings for your own site.
There are a lot of people who argue about the attribute, when to use it, where to use it, if it can be used to sculpt link equity, how it affects Google PR and even exactly how Google sees a nofollowed link. There’s been observations and arguments ad nauseum that nofollow links pass PR and that you cannot sculpt page rank because you cannot see it, or that Google’s advice, like in most cases, is misleading or inaccurate. As usual, there’s valid arguments on both sides when it comes to Google.
I think nofollow is as Google says – effectively a non-link when it comes to ranking your site. In simple terms, you can think on links with rel=nofollow to not having any great weight towards your search rankings, and equally, to not put your website at risk (and that includes when dealing with a disavow file list and reconsideration request).
Relnofollow can be a ‘complicated’ construct, depending on who you are listening to.

“Nofollow” provides a way for webmasters to tell search engines “Don’t follow links on this page” or “Don’t follow this specific link.”
How does Google handle nofollowed links?
We are told Google ignores links with the attribute on them, which allows you to link to a site and not share your website reputation with the recipient of your link. On the whole – this seems to the case.
In general, we don’t follow them. This means that Google does not transfer PageRank or anchor text across these links. Essentially, using nofollow causes us to drop the target links from our overall graph of the web. However, the target pages may still appear in our index if other sites link to them without using nofollow, or if the URLs are submitted to Google in a Sitemap. Also, it’s important to note that other search engines may handle nofollow in slightly different ways.
What are Google’s policies and some specific examples of nofollow usage?
Google presents us with some cases when to consider using the attribute on OUTBOUND links:
Untrusted content: If you can’t or don’t want to vouch for the content of pages you link to from your site — for example, untrusted user comments or guestbook entries — you should nofollow those links. This can discourage spammers from targeting your site, and will help keep your site from inadvertently passing PageRank to bad neighborhoods on the web. In particular, comment spammers may decide not to target a specific content management system or blog service if they can see that untrusted links in that service are nofollowed. If you want to recognize and reward trustworthy contributors, you could decide to automatically or manually remove the nofollow attribute on links posted by members or users who have consistently made high-quality contributions over time.
Paid links: A site’s ranking in Google search results is partly based on analysis of those sites that link to it. In order to prevent paid links from influencing search results and negatively impacting users, we urge webmasters use nofollow on such links. Search engine guidelines require machine-readable disclosure of paid links in the same way that consumers online and offline appreciate disclosure of paid relationships (for example, a full-page newspaper ad may be headed by the word “Advertisement”).
Google is serious about this stuff. If you let your website become a free for all links farm – a link scheme –  Google will not trust the links from your website (at least). You need to decide if you care about such things, but as I said at the outset of this article, TRUST is very important if thinking about SEO.
Should I use the attribute on internal links?
Google eventually offered seo advice concerning internal Pagerank sculpting with relnofollow:

Nofollowing your internals can affect your ranking in Google, but it’s a 2nd order effect. My analogy is: suppose you’ve got$100. Would you rather work on getting $300, or would you spend your time planning how to spend your $100 more wisely. Spending the $100 more wisely is a matter of good site architecture (and nofollowing/sculpting PageRank if you want). But most people would benefit more from looking at how to get to the $300 level.

Questions arise if you start thinking about it too much:
Should you nofollow unimportant internal pages or nofollow external links in an effort to consolidate the Pagerank you have already accrued?
Or should you spend your time getting other quality links pointing to your site to increase the PR you have to start off with (how you get Pagerank).
The long term best impact strategy here is simply to earn more Pagerank, or you’ll find it a slow rise above the core issues of your current predicament, whatever that may be, and I think the same can be said of the question of maximising page strength by PR sculpting.
In truth you need to do both, maximise what page strength you have by whatever method you use to manipulate PR and on-site relevance, and linkbuild to add conviction to your attempt at making a particular page relevant and give it a shot at those first page rankings. As far as Pagerank goes, this practice is pretty much pointless.

You can certainly control PR on a granular level (page by page in this case) – that is, which page gets available real  Google PR. It’s easy to follow, that some seo professionals think, if that’s the case, you can sculpt Pagerank, and channel page rank to important pages in a site.

For instance – adding the attribute to your contact page, or disclaimer, or privacy policy.

Should I use rel=”nofollow” on internal links to a login page?

Paraphrasing Google:
Yes, it’s ok to do this
Yes, it can have a ‘second order effect’ (cryptic as usual)

Clarification From Matt Cutts in 2009
Google’s Matt Cutts attempted to clarify PR Sculpting using Nofollow after the hullabaloo surrounding his comments at a SEO conference.
I’d long fell out of love with PR sculpting internal pages using the attribute as the results were not worth it for me on the sites I worked on (some are quite large) –  a few years back I posted this about PR sculpting:
I’ve been playing about with rel=’nofollow’ on this site for 4 months, and in all honesty, in future, I won’t be relying on nofollow to sculpt unimportant pages out of any possible link graph, just optimising those pages better, or leaving them out altogether, like I used to do in 1999. It can be a useful tool in a site redevelopment, but from here on in, I’ll be keeping nofollow for bad neighbourhoods and, pending further testing, on top level blog pages..
In June 2008 I also posted this about Nofollow and PR Sculpting:
I tested it, and as far as I am concerned, on a 300 page site at least, any visible benefit is microscopic.
In my limited tests ( I wasn’t using black hat or brute force methods) Matt Cutts was telling the truth – it’s very much a second order effect, if not less.
Sometimes I wonder if people even ever needed to hear about Google PR nevermind the “science” of PR sculpting in the first place.
Anybody who reads this blog knows I test things for myself because frankly I’m just like everybody else – I don’t know the lot, nobody does, but if you’re relying on here-say and other people’s unpublished experiments without testing yourself, you’re always going to be in the dark.
In theory PR sculpting sounds cool, in practice, it is very disappointing. Some people think it works, and perhaps on their sites it might – who knows. I remember one SEO saying at the turn of a year it worked and showing the benefits of it in terms of Google traffic. I checked my sites over the same time and recognised a slight increase in Google traffic over the same period – without any sculpting. But you never know, do you?
What do you think?
Hard Core SEO go here
Page Rank Sculpting Discussions Around The Net
Joost de Valk has a terrific article on PR Sculpting, as does Dan Thies on using links with the attribute to sculpt pagerank, and the Mad Hat pitches in on the FUD of Nofollow being a red-flag if you’re trying to maximise the visibility of page in Google. Michael Martinez has an interesting take too.
I’ve used the attribute on internal links to sculpt and concentrate internal PR and from what I’ve seen the results *might* be promising, though very minimal, and not a long term substitute for an intelligent site architecture to begin with and certainly no seo magic bullet, although you have to be careful.
I should point out I never use rel=”nofollow” to prevent the indexing of a page – merely to control which pages any particular page shares it’s link equity with, if you are Googlebot anyway.
It *appears* that the first link you nofollow on a page *might* also nofollow any other link to the same url on that page, although nofollowing the home page link high up in code (when you have another link to the home lower on the page) seems to be treated differently by Google, Yahoo and MSN. I wonder if a ‘Contact’ page is too?
Do Not Rel Nofollow EVERY Outbound Link On Your Site

And he’s right. One of my clients was linking out to real and trusted sites from pages on his site and added rel=nofollow to the links because he thought this was helping his site. This is unnecessary.
There’s no reason to put the attribute on editorially approved links.
in my experience, if you write a blog post and use the attribute on all links on your blog for no other reason that to conserve Pagerank, or even think linking out to irrelevant sites will hurt your site, you’re misinformed at best.
Google doesn’t penalise you for linking to irrelevant sites if both pages in question are relevant to each other.
Use nofollow only if you don’t want to vouch for the page you’re linking to, for fear of losing reputation. I often surmise Google might be taking in the quality or accuracy of your outbound links in some minor way to measure the strength of your trust, so don’t miss out because you are effectively not linking to anybody.
Also consider, the link you make might be the link that helps another REAL site get traffic from Google and satisfy Google’s users – that’s not a bad thing for anybody.
I have little reason for the attribute these days outside of user generated comments and affiliate links. I don’t use it to sculpt pagerank, and I don’t use it in any arena where editorial moderation is in play.
I only use it for sites that don’t deserve the link to be search engine friendly and in 99% of the cases if I don’t have any reason to trust a site, I won’t make the link a link at all.
Pet hate – web sites where every outbound link is nofollowed.
Can Nofollow Links Pointing TO My site Hurt MY SITE?

Should I add rel=”nofollow” to links that are included with my widget?
Do let me know your thoughts in the comments below. I edit this post every year or so with the latest information….
NOTE – You do not need to employ the attribute to mark all links on a page as ‘untrusted’. You can also use robots meta tags or X-Robots-Tag HTTP header to control how Google treats ALL the links on a page. You can still block actual pages using robotstxt (or xrobots or meta tags) or block outbound links via redirect scripts if you are worried about losing trust and reputation in Google.
If you have paid links on your site – I’d be careful in 2015.


Source taken from

Fatal error: Call to undefined function weblizar_navigation() in /home/websolutionsdone/public_html/wp-content/themes/ielts-career/category.php on line 23