Push notifications packages for Unity projects

The way that we are using apps are changing. When apps were first introduced, we always needed to open an app to check for any updates. With the introduction of push notifications you got an update from apps when they happened, as well as when they were opened.  This allowed you to check your update but meant you needed to open the app to respond. Now, app developers are going one step further. You are now able to respond to your update via the notification. Depending on the app will determine what functionality they have implemented to allow you to respond.  This is seen more within devices running Android Lollipop and iOS 8+.

Having a push service within your app, although may not be an essential day one release feature, however it will allow you to engage with your users in another way. And the more ways you keep in contact with your users, notifying them of important updates without having them directly open the app, the more likely they are to continue using your app.

Push Services for Unity projects

Here are a list of push notification services that provide Unity packages ready to be incorporated into your Unity projects.

Your thoughts

  • What’s your experiences with the above services?
  • Are you using other push notification services in your Unity made apps?
  • What’s your opinion on their service?

Using Google Sheets to update your app content

As I mentioned in my post about ways to store content in your mobile apps, using external tools like Google Sheets can be used to manage your game data.

Why would you do this?

  1. If your app’s content will benefit from live adjustments such as in games like MMOs where the day-to-day changes in player behaviour effect the story and gameplay.
  2. If your app has a lot of content it may be a good idea to store this data in something external but still accessible to the app.  This means that the size of the app you submit will be as small as possible.
  3. If you use an online spreadsheet like Google Sheets to manage your app’s data, the work can be shared between team members because it’s accessible to everyone.  But access can also be restricted to specific individuals.
  4. Using the Google Sheets app and web app also allows you to update content for your apps even when you’re not connected to the internet.
  5. Having data stored in a simple, everyday system like a spreadsheet means that even non-technical people aiding you on your project are able to carry out updates.
  6. Lastly, and probably most important, you are able to update the app’s data to players without re-submitting to the app stores.

So these are all great reasons why you should store your data in an online spreadsheet like Google Sheets.  But what are some of the issues to consider?

Things to keep in mind

  • You need to get that data into the game per session. With a large amount of data this could mean long syncing times.  You need to wary of this as long loading or data sync times may put some users off and may give up using your app.
  • The structure you use to store the data needs to be efficient to ensure the speed of the app isn’t compromised at runtime.  Even after the data has been synced and the app loaded it’s important to maintain a fast speed.
  • Easy to get incorrect data fed into game if you have no safeguards in place.  Ensure people always check what they update before it’s committed.
  • Unless you set up a robust security system you may find your data isn’t completely private.  Those with the knowledge of Google Sheets may be able to access your app’s content.

You are the only person who can decide if the pros outweigh the cons.  If you have a small enough number of users you could always store the content on Google Sheets first.  Then if your app gains popularity consider switching to a more secure way to manage your content or set up scripts to ensure your documents can only be accessed by certain people.

How do you connect your Unity project with Google Sheets?

You can connect your project either by writing your own module to connect to the Google API or buy one of the solutions already made within the Unity Asset Store, like the asset Google Sheets For Unity.

From my experience, Google Sheets for Unity was well documented, the developer was easy to get hold of and extremely helpful. Integration took less than 15 minutes and adapting the code to pull in different data types only took an additional 20 minutes. The code is well written and I would recommend this asset to anyone wanting to use Google Sheets to hold their app content.

What are B2C apps?

Thousands of apps are uploaded to the App Store and Google Play every day. The audience that your app is aimed at will determine whether it is a B2B or a B2C app.

What is B2C?

B2C stands for business to consumer. A business sells products or provides services directly to the end user. These are usually individuals who are everyday people.

When you produce an app where the customer is the consumer this is a B2C app.

What are B2B apps?

Thousands of apps are uploaded to the App Store and Google Play every day. The audience that your app is aimed at will determine whether it is a B2B or a B2C app.

What is B2B?

B2B stands for business to business. One business sells products or provides services to other businesses or organisations.

When you produce an app where the customer is a business or an organisation this is a B2B app.

If you want to know more about B2B apps listen to the ABP’s podcast episode on Opportunities in B2B and Partnerships.

11 tips from Women Techmakers

On Monday evening I attended an event held by Google in conjunction with Women Techmakers celebrating International Women’s Day.

The event was a series of talks about current technical advances in AI, VR, game development and a panel of experiences female developers across different technical areas.

There was a lot of great information shared on the night. This is a summary of the tips I think were important to share:

  • Join Adas’s list – a women only forum for women broadly working in technology and digital where they can ask for advice, share jobs, announce projects they’re working on, find expert speakers and get together at industry events.
  • When speaking in public, if you feel like you’re getting to emotional take a breath to calm yourself or take a sip of water
  • Confidence is a muscle, exercise it and yours will get better and stronger
  • When you’re new to a tech role try and achieve quick wins on projects to show your skills early on
  • Develop your skills to become a T-shaped professional
  • 300 Seconds gives pitching advice to women
  • Drive your own career by creating a one or two year plan
  • Work in growing areas
  • Work with smart people
  • Work on projects that you learn on
  • Take risks

7 popular ad plugins for Unity projects

Inserting ad networks is the easiest way to monetise your mobile project.  There are a number of different ad networks available. Which you choose to integrate into your project will depend on which is currently got the highest eCPMs and what type of ads the service supports.  The current types of ads available are banners, interstitials (full screen) and videos.

As the popularity of the Unity3D engine keeps growing more ad companies are realising the need to create not only SDKs that can be used for iOS and Android  but also for Unity projects.

These are the some of the most popular ad networks that support Unity projects.

Storing content within Unity made mobile apps

All apps will be made up some form of content. This may be images, text or a mixture of the two. Your app could rely directly on the content that is being stored or it could be used simply for translations.  Either way how you store it within your app will need to be considered as using a method that is inappropriate may impact on the quality and performance of your app leading to negative user experience and can affect the revenue generated.

So what ways can you store data within an app developed using Unity?

C# and .NET data structures

The most common methods are:

  • Databases (there are many types of databases to use, use one that you are familiar with)
  • XML serialization and deserialization
  • Data structures such as lists and arrays

Unity data structures

PlayerPrefs storing single values within Unity using a key/value pair style data structure.

Asset Store plugins

The Unity Asset Store also provides useful, quick to implement plugins like Google Sheets For Unity (GSFU) which creates a game object that once add to your scene and set up connects to a Google Doc sheet  document and reads data from these sheets. When the sheets are updated the changes are reflected in the project. Very handy as these changes won’t require a new submission to the app stores to modify content.

The data structure you decide to use will depend on a lot of factors. These will be specific to your project so you need to consider how secure you need all the content to be, whether the data needs to be dynamically accessed when the app is being used and the file size restrictions of your app for your chosen app store.

So think carefully about which data structure that will most benefit your project, bear in mind it may not be a simple task so you may have a learning curve.

Analytics packages for Unity projects

What is Analytics?

Analytics packages are plugins for your Unity projects that are either made by third party companies or Unity Technologies.

Analytics allows the developer to gather statistics on the user’s progress through the app. This means we can improve designs, the user’s journey and cater more closely to what the user actually wants rather than what we think they do.

Most systems have basic and custom events options to help you obtain the best information. Basic events are tracked as standard when you set up the SDK in your project. Custom events are those scripted by the developer to capture data that may be specific to that app. If you’re not very technical, just using the basic analytics events should give you a good amount of data to analyse to begin with so you don’t need to worry about any custom events. However, you could always hire a contract developer to integrate custom events for you.

The basic events that are tracked will depend on the system you choose to add.

When should you add analytics to your project?

I would suggest that you integrate analytics within the first version of your app.  This way you have at least captured the basic analytics data from day one. You can always add custom events in a later update.

What’s currently available?

Here’s a short list of the analytics packages available to add to your Unity project.

  1. GameAnalytics – free
  2. Google Analytics – free
  3. Flurry Analytics – free
  4. Unity Analytics – free
  5. Prime31 – $40+
  6. Parse – free
  7. Game Sparks – free

Which one do I pick?

I have been using GameAnalytics within my apps and have found the integration process extremely fast and easy to understand even for someone with no previous experience. But there is no right or wrong solution to use. It’s all about preference, how much you’re willing to spend and how much time you have to learn the integration process.  For beginners developing cross platform apps, I would recommend trying to use a tool where the code used to add in the basic events doesn’t change for each platform.