Geo Blocking

How to control access to content using geographic restrictions

Written by George Reese

Last published at: October 29th, 2022

There are a number of places in the Staff Portal as well as the Creator Portal where content owners and festival staff can control access to online content based on a visitor's physical location.

For creators, they can control online access to their projects in the Geo Blocking section under Film Extras.

Festival staff can configure geographic restrictions to online screening blocks, live streams, and creator selections all under the “Access” tab of the event or content being restricted.

The interface is the same in both environments. The following example shows a creator denying access to viewers in the country of Andorra:

Most geo blocking needs are as simple as this example. This article, however, dives into the full set of SparqFest geo-blocking functionality.

When to Use Geo Blocking

Geo blocking is generally a bad idea and the rule is: don't do it unless you absolute need to do it. Many creators, however, are contractually obligated to geo-block by their distributors or must geo-block to preserve premiere status at prestigious events. Thus, even though we at SparqFest do not like geo blocking, we recognize that it is an absolutely necessary part of this business.

SparqFest geo-blocking is designed to address such concerns.

How It Works

As anyone who has used a VPN to watch Netflix content that is otherwise restricted to them, circumventing geo blocking is something any motivated individual with some technical knowledge can do. Our approach is designed to minimize false positives. In other words, we'd rather accidentally grant access to someone who should be denied access than accidentally deny access to someone who should be granted it.

We use a multi-vendor IP address-based location algorithm. 

We pay for two separate IP address databases that are updated in real time. When a visitor comes to our site, we perform a lookup with one of those vendors to map the visitor to a physical location. When the individual tries to access geo blocked content, we check that location against the geographic restrictions. If those restrictions don't match the visitor's location, we grant the visitor access. If they do match, we perform a second lookup against our other vendor. If there is still a match, access is denied. If the second vendor does not match, we allow the access.

Why would the vendors disagree? IP address mapping is more hocus pocus than based on any actual correlation. There's no real tie between an IP address and a physical location. Instead, these database vendors are constantly monitoring what companies own which IP blocks and that's how the physical mapping is made. IP addresses get bought and sold all the time. Sometimes one vendor is quicker than another at registering these changes.

Another challenge is the use of VPNs. I can VPN back into my home from anywhere in the world. Geo blocking in this instance would treat me as if I were at home even though I am halfway around the world.

An alternative approach would be to use location services on customer devices. The customer, however, must grant us access to their location which is a huge privacy ask for little return to the visitor. Our focus is thus based on IP address mapping.

Geo Blocking Rules

The geographic restrictions for an online event or selection are the sum of individual geo blocking rules configured for it. You have three rule options:

  • Require
  • Deny
  • Allow

You can apply them at one of three levels:

  • To an entire continent or super-region (e.g. the EU)
  • To an entire nation
  • To a state or province

In the video at the start of this article, we applied a “deny” rule to the country of “Andorra”. As you might expect, that means that everyone can access the content except people in Andorra.

The flip side of a “deny” rule is the “require” rule. Let's say I had configured the content above for “Require” + “Country” + “Andorra”. That would mean that no one in the world can watch the selection EXCEPT people in Andorra.

As you start making more complex rules, you may find yourself needing to make exceptions. Let's say I want to deny access to everyone in Canada except people in the province of Quebec. To do this, I would set up two rules:

  • “Deny” + “Country” + “Canada”
  • “Allow” + “State/Province” + “Quebec”

The “allow” rule thus enables me to create exceptions to a larger “deny” or “require” rule. An example paired with a “require” rule might be:

  • “Require” + “Country” + “United States”
  • “Allow” + “State/Province” + “Quebec”

This combination allows everyone in the United States to watch the show as well as everyone in Quebec. 

Allow rules rule them all

When you set an allow rule, it overrides all the other rules you create except for “lower level” denies. A “lower level” deny would be something like:

  • “Require” + “Continent” + “Europe”
  • “Allow” + “Country” + “Canada”
  • “Deny” + “State/Province” + “Quebec”

In this case, the denial to Quebec would overshadow the allow to Canada.

 

Note that your rules can target multiple regions. For example, I can craft the rule:

  • “Require” + “Country” + “United States, Canada”

This rule will restrict access such that only Canadian and US viewers can watch the content.

The Audience Experience

We provide plain language descriptions for all geo blocking rules online with the restricted content. This approach lets viewers know exactly why they won't be able to watch certain content.

The following example is an online screening block in which the screening block as a whole is not available in Russia or Belarus. In addition, one of the selections can be seen only in Delaware:

A viewer from Russia or Belrus would not even have the option to watch this screening block. A viewer who is not from Delaware, Russia, or Belarus, on the other hand, can watch the screening block; however, the video player will skip the second selection and move on to the third for what viewer. Viewers from Delaware can watch the screening block in its entirety.