Can we use IDFA if we are not serving ads - ios

We are creating an iOS SDK which will be used by multiple apps, we want to capture users with their unique device id. So if a user is using multiple apps on his device where our SDK is used we want to track that.
Can we use IDFA for that instead of creating a new uuid in each partner app? Also, we are not serving any adds or planning to serve in the near future.

No, that is not a valid use of the IDFA. This is covered in your Developer Program License Agreement:
3.3.12 You and Your Applications (and any third party with whom You have contracted to serve advertising) may use the Advertising Identifier, and any information obtained through the use of the Advertising Identifier, only for the purpose of serving advertising.
...
In addition, You may request to use the Ad Network APIs to track application advertising conversion events. If You are granted permission to use the Ad Network APIs, You agree not to use such APIs, or any information obtained through the use of the Ad Network APIs, for any purpose other than verifying ad validation information as part of an advertising conversion event.
If you were to use the IDFA then there would be a risk of rejection for any apps using your SDK.

Related

Get data with firebase

I am making a kids app on iOS. When I released it, I had a problem with advertising because of the IDFA fence, and I had to remove it from the application. I also use Firebase / analytics. Will I have the same problems as with advertising through a data collection, or can firebase / analytics be used in children's applications?
As per the apple new guidelines for Kids category, you are allowed to use third-party analytics with limited permissions in kid's application.
In limited cases, third-party analytics may be permitted provided that the services do not collect or transmit the IDFA or any identifiable information about children (such as name, date of birth, email address), their location, or their devices.
Yes, you can customize your app requirements following Apple's guidelines more strictly.
Go through this in detail - https://developer.apple.com/app-store/review/guidelines/#kids-category

Can iOS applications be targeted to certain users in the App Store?

I've written an enterprise iPhone app for the field workers in our company, and the powers-that-be are considering offering it to some of our client companies as a freebie for their field workers to use. I assume that Apple would not allow enterprise distribution to users who are not company employees, so I would have to place it on the App Store.
However, we would like to restrict the user base to approved users or companies, so I would like to avoid making it available to just anyone. The app does communicate with our servers, which makes it something of a risk, in my opinion, of hacking; we'd certainly like to avoid that.
I'm wondering if there is a way to restrict App Store downloads only to certain users or companies? Or is there an alternative method to prevent just anyone from downloading and using the app?
Posting as answer, as per the OP...
For your case, you probably want to look at Business-to-Business distribution: https://developer.apple.com/programs/volume/b2b/
You could use the new "DeviceCheck APIs" that is release in iOS11
Using the DeviceCheck APIs, in combination with server-to-server APIs,
you can set and query two bits of data per device, while maintaining
user privacy. You might use this data to identify devices that have
already taken advantage of a promotional offer that you provide, or to
flag a device that you've determined to be fraudulent. The DeviceCheck
APIs also let you verify that the token you receive comes from an
authentic Apple device on which your app has been downloaded.
https://developer.apple.com/documentation/devicecheck

Using Google analytics IDFA, Which Advertising Identifier option to choose at the time of submission to App Store?

I am developing app in which i have added Google analytics. I have enabled IDFA to get information related to user's gender/age.
At the time of App submission there are options to select -
Does this app use the Advertising Identifier(IDFA)?
But options for that:
Serve advertising within the app
Attribute this app installation to a previously serve advertisement
Attribute an action taken within this app to a previously served advertisement
I am not sure where my app belongs to.
I am not serving any ads in my app. I have added this just to get user's gender/age information.
Can anyone please give me advice on this?
Thanks in advance.
As per Apple support Team -
Section 3.3.12 of the Program License Agreement states that usage of the Advertising Identifier is limited only for advertising purposes.
"You and Your Applications (and any third party with whom you have contracted to serve advertising) may use the Advertising Identifier, and any information obtained through the use of the Advertising Identifier, only for the purpose of serving advertising."
In Short, I can not enable IDFA to collect user's information.

How to identify iOS device across multiple apps?

As you have understood from the question's title, I would like to know, how to identify iOS device across multiple apps. Advertising identifier and identifier for vendor is not an option for me, as apps may not have AdSupport framework included, and they may not have similar vendors. MAC address of the device is also deprecated. Any working solution on this? Thanks in advance!
This functionality is explicitly disallowed by Apple. Any workaround you come up with will violate Apple's stated goal of preventing it (so you would obviously risk appstore rejection even if it "works"). You are not allowed to track devices. You are only allowed to track the vendor ID and advertising ID. Apple has steadily removed every other tool because those are the ones they intend you to use (and their limitations are intentional).
What you are allowed to do is track users by issuing them login credentials and having them log into your server. This usually works fine if the user actually wants the functionality you're providing by tracking them (for example, users don't mind logging into Facebook or Twitter). If you are tracking users or devices to achieve a goal the users don't actually want (such as targeted advertising that the user can't control, or attempts at digital rights management tied to devices), you're unlikely to find a supported or permitted solution.

Using a one-time password to enable iOS app

I am creating an iPhone app that will be free with the purchase of a set of headphones. The idea at this point is that a passcode will be included with the headphones that will let the user enable the app which is a DSP app with filter settings specifically for the headphones. The passcode only needs to be entered once and then the app will be permanently enabled. I assume that I will have to use my own server to check the passcode and return an authorization to the device. Does anyone have any advice on how to implement this functionality?
You could easily/quickly implement this feature using one of the PaaS (Platform as a Service) providers out there. Parse, StackMob, Azure, etc. They provide the database in the cloud and the REST API to access it, and you simply make a read on the password table to see if the entry exists (using the provider API). These services are very inexpensive and you could use the free tier until you get meaningful volume.
However, note my previous comment, that this would not be approved as an app for violating the App Store Guidelines.
Apps that arbitrarily restrict which users may use the App, such as by
location or carrier, may be rejected
Apps that unlock or enable additional features or functionality with
mechanisms other than the App Store will be rejected

Resources