Follow

Children's Online Privacy Protection Act

Summary: This article covers specific information regarding the Children's Online Privacy Protection Act (COPPA) as well as steps and guidelines to making sure your game or app adheres to such requirements. 

The Apmetrix SDK allows you to select or disable specific information in your app in order to comply with COPPA guidelines if your game or app is subject to such.

For more information on what is COPPA and whether or not your game or app is subject to such limited information collection you can read more about it here.

Overview of SDK Functions

The primary goal of COPPA is to control the information that is collected from young children online.  While COPPA outlines some specific limitations, they also allow each developer/publisher some control on what they collect, so long as they disclose they are collecting it. 

For basic COPPA Compliance you will need to pass into our Init function the NO_GEO_LOOKUP, which prevents the device from doing a long/lat lookup, and also prevents it from sending our servers any location data.

The rest of the following flags are optional based on your level of compliance and disclosure (we recommend you read and understand COPPA before making your decisions).

We offer 4 levels of safety in the form of FLAGS which you pass into our Init function.

NO_GEO_LOOKUP

Enabling this flag will cause the SDK to NOT collect latitude/longitude information.

NO_IP_LOOKUP

Enabling this flag will cause the SDK to NOT collect the devices IP Address and also prevents the server from looking up information based on a users IP address.

NO_UDID

Enabling this flag will cause the SDK not NOT send in the OpenUDID. 

CHILD_SAFE

Enabling this flag will cause the SDK to NOT collect the following; OpenUDID, IDFA (iOS) Android ID (Android), Latitude/Longitude and IP Address.

Below we'll discuss the specifics to each platform

.

iOS (XCode) SDK

Initialize Session 

Function Call:

[Apmetrix initWithDataset:(int)appDataset andVersion:(NSString *)appVersion andUnifier:(NSString *)appUnifier 
andPermissions:(int)permissions];

Where Permissions can be set to the following:

NO_GEO_LOOKUP

Enabling this flag will cause the SDK to NOT collect latitude/longitude information.

NO_IP_LOOKUP

Enabling this flag will cause the SDK to NOT collect the devices IP Address and also prevents the server from looking up information based on a users IP address.

NO_UDID

Enabling this flag will cause the SDK not NOT send in the OpenUDID. 

CHILD_SAFE

Enabling this flag will cause the SDK to NOT collect the following; OpenUDID, IDFA (iOS) Android ID (Android), Latitude/Longitude and IP Address.

Note 1: The appDataset and appUnifier can be found in the dashboard under Tasks->Administration->Accounts and expanding Datasets, then select your Dataset.

Note 2: If needing to initialize the session with non-default permissions you can select from any combination of the following options. If more than one option is desired the options can be “OR’d” together using the “|” character:

 (0) Apmetrix_SUCCESS

Successful operation.

 (101) Apmetrix_WARNING_IGNORED_SESSION_ALREADY_OPEN

Function call was ignored because a session was already open.

 (201) Apmetrix_ERROR_INVALID_ARGUMENTS

Operation could not be completed because the parameters passed were incorrect.

 (202) Apmetrix_ERROR_APP_CONFIG

Operation could not be completed because there was a device configuration issue (i.e. missing manifest permissions, device parameters disabled, etc.).  Check the log files to see the specific.

 (203) Apmetrix_ERROR_EVENT_DROPPED

Operation could not be completed due to a database or server error causing internal buffers to reach their maximum capacity.  Check the log files for information on the specific error.

 (204 Apmetrix_ERROR_FAILED

Operation could not be completed because of some other error.  Check the log files for information on the specific error.

Android (Java) SDK

Initialize Session 

Function Call:

Apmetrix.init(Activity activity, int appDataset, String appVersion, String appUnifier, int permissions);

or with Google Cloud Messaging

Apmetrix.init(Activity activity, int appDataset, String appVersion, String appUnifier, int permissions, 
String gcmSenderId);

 Where permissions can be set to one or more of the following:

Apmetrix.NO_GEO_LOOKUP

Enabling this flag will cause the SDK to NOT collect latitude/longitude information.

Apmetrix.NO_IP_LOOKUP

Enabling this flag will cause the SDK to NOT collect the devices IP Address and also prevents the server from looking up information based on a users IP address.

Apmetrix.NO_UDID

Enabling this flag will cause the SDK not NOT send in the OpenUDID. 

Apmetrix.CHILD_SAFE

Enabling this flag will cause the SDK to NOT collect the following; OpenUDID, IDFA (iOS) Android ID (Android), Latitude/Longitude and IP Address.

Note 1: The appDataset and appUnifier can be found in the dashboard under Tasks->Administration->Accounts and expanding Datasets, then select your Dataset.

Note 2: If needing to initialize the session with non-default permissions you can select from any combination of the following options. If more than one option is desired the options can be “OR’d” together using the “|” character:

This method returns an "int" value to indicate the status of the function call and will equal one of the following:

 (0) Apmetrix.SUCCESS

Successful operation.

 (101) Apmetrix.WARNING_IGNORED_SESSION_ALREADY_OPEN

Function call was ignored because a session was already open.

 (201) Apmetrix.ERROR_INVALID_ARGUMENTS

Operation could not be completed because the parameters passed were incorrect.

 (202) Apmetrix.ERROR_APP_CONFIG

Operation could not be completed because there was a device configuration issue (i.e. missing manifest permissions, device parameters disabled, etc.).  Check the log files to see the specific.

 (203) Apmetrix.ERROR_EVENT_DROPPED

Operation could not be completed due to a database or server error causing internal buffers to reach their maximum capacity.  Check the log files for information on the specific error.

 (204) Apmetrix.ERROR_FAILED

Operation could not be completed because of some other error.  Check the log files for information on the specific error.

 

Flash (ActionScript 3) SDK

Initialize Session 

Function Call:

Apmetrix.setTracking(trackingPermissions:int);

Where trackingPermissions can be set to the following:

Apmetrix.NO_GEO_LOOKUP

Enabling this flag will cause the SDK to NOT collect latitude/longitude information.

Apmetrix.NO_IP_LOOKUP

Enabling this flag will cause the SDK to NOT collect the devices IP Address and also prevents the server from looking up information based on a users IP address.

Apmetrix.NO_UDID

Enabling this flag will cause the SDK not NOT send in the OpenUDID. 

Apmetrix.CHILD_SAFE

Enabling this flag will cause the SDK to NOT collect the following; OpenUDID, IDFA (iOS) Android ID (Android), Latitude/Longitude and IP Address.

Note 1: The appDataset and appUnifier can be found in the dashboard under Tasks->Administration->Accounts and expanding Datasets, then select your Dataset.

Note 2: If needing to initialize the session with non-default permissions you can select from any combination of the following options. If more than one option is desired the options can be “OR’d” together using the “|” character:

Apmetrix setTracking(Apmetrix.CHILD_SAFE_PERMISSION);

 This method returns an "int" value to indicate the status of the function call and will equal one of the following:

Apmetrix.SUCCESS

Successful operation.

Apmetrix.WARNING_IGNORED_SESSION_ALREADY_OPEN

Function call was ignored because a session was already open.

Apmetrix.ERROR_INVALID_ARGUMENTS

Operation could not be completed because the parameters passed were incorrect.

Apmetrix.ERROR_APP_CONFIG

Operation could not be completed because there was a device configuration issue (i.e. missing manifest permissions, device parameters disabled, etc.).  Check the log files to see the specific.

Apmetrix.ERROR_EVENT_DROPPED

Operation could not be completed due to a database or server error causing internal buffers to reach their maximum capacity.  Check the log files for information on the specific error.

Apmetrix.ERROR_FAILED

Operation could not be completed because of some other error.  Check the log files for information on the specific error.

 

Unity SDK/Wrapper

Initialize Session 

Function Call:

wrapper.GetComponent<Apmetrix>().init(int appDataset, String appVersion, String appUnifier, int permissions);

EXAMPLE:

wrapper.GetComponent<Apmetrix>().init(10000, "1.0.0", "12345678901234567890123456789012", ApmetrixStatic.CHILD_SAFE);

Note 1: The appDataset and appUnifier can be found in the dashboard under Tasks->Administration->Accounts and expanding Datasets, then select your Dataset.

Note 2: If needing to initialize the session with non-default permissions you can select from any combination of the following options. If more than one option is desired the options can be “OR’d” together using the “|” character:

ApmetrixStatic.NO_GEO_LOOKUP

Enabling this flag will cause the SDK to NOT collect latitude/longitude information.

ApmetrixStatic.NO_IP_LOOKUP

Enabling this flag will cause the SDK to NOT collect the devices IP Address and also prevents the server from looking up information based on a users IP address.

ApmetrixStatic.NO_UDID

Enabling this flag will cause the SDK not NOT send in the OpenUDID. 

ApmetrixStatic.CHILD_SAFE

Enabling this flag will cause the SDK to NOT collect the following; OpenUDID, IDFA (iOS) Android ID (Android), Latitude/Longitude and IP Address.

 

This method returns the following integer values:

(0) ApmetrixStatic.RETURN_STATUS.SUCCESS

Successful operation.

(101) ApmetrixStatic.RETURN_STATUS.WARNING_IGNORED_SESSION_ALREADY_OPEN

Function call was ignored because a session was already open.

(201) ApmetrixStatic.RETURN_STATUS.ERROR_INVALID_ARGUMENTS

Operation could not be completed because the parameters passed were incorrect.

(202) ApmetrixStatic.RETURN_STATUS.ERROR_APP_CONFIG

Operation could not be completed because there was a device configuration issue (i.e. missing manifest permissions, device parameters disabled, etc.).  Check the log files to see the specific.

(203) ApmetrixStatic.RETURN_STATUS.ERROR_EVENT_DROPPED

Operation could not be completed due to a database or server error causing internal buffers to reach their maximum capacity.  Check the log files for information on the specific error.

(204) ApmetrixStatic.RETURN_STATUS.ERROR_FAILED

Operation could not be completed because of some other error.  Check the log files for information on the specific error.

 

 

C# SDK/DLL

Initialize Session 

Function Call:

 Initialize Session

ApmetrixInterface.init(int appDataset, String appVersion, String appUnifier, int permissions);

EXAMPLE:

ApmetrixInterface .init(12345, "1.0", "12345678901234567890123456789012",(int)ApmetrixInterface.PERMISSION.NO_UDID);

Note 1: The appDataset and appUnifier can be found in the dashboard under Tasks->Administration->Accounts and expanding Datasets, then select your Dataset.

Note 2: If needing to initialize the session with non-default permissions you can select from any combination of the following options.  If more than one option is desired the options can be “OR’d” together using the “|” character:

ApmetrixInterface.PERMISSION.NO_GEO_LOOKUP

Enabling this flag will cause the SDK to NOT collect latitude/longitude information.

ApmetrixInterface.PERMISSION.NO_IP_LOOKUP

Enabling this flag will cause the SDK to NOT collect the devices IP Address and also prevents the server from looking up information based on a users IP address.

ApmetrixInterface.PERMISSION.NO_UDID

Enabling this flag will cause the SDK not NOT send in the OpenUDID. 

ApmetrixInterface.PERMISSION.CHILD_SAFE

Enabling this flag will cause the SDK to NOT collect the following; OpenUDID, IDFA (iOS) Android ID (Android), Latitude/Longitude and IP Address.

 

This method returns the following integer values:

(0) ApmetrixInterface.RETURN_STATUS.SUCCESS

Successful operation.

(101) ApmetrixInterface.RETURN_STATUS.WARNING_IGNORED_SESSION_ALREADY_OPEN

Function call was ignored because a session was already open.

(201) ApmetrixInterface.RETURN_STATUS.ERROR_INVALID_ARGUMENTS

Operation could not be completed because the parameters passed were incorrect.

(202) ApmetrixInterface.RETURN_STATUS.ERROR_APP_CONFIG

Operation could not be completed because there was a device configuration issue (i.e. missing manifest permissions, device parameters disabled, etc.).  Check the log files to see the specific.

(203) ApmetrixInterface.RETURN_STATUS.ERROR_EVENT_DROPPED

Operation could not be completed due to a database or server error causing internal buffers to reach their maximum capacity.  Check the log files for information on the specific error.

(204) ApmetrixInterface.RETURN_STATUS.ERROR_FAILED

Operation could not be completed because of some other error.  Check the log files for information on the specific error.

 

Have more questions? Submit a request