ylechelle / OpenUDID

[OpenUDID IS NOW DEPRECATED] Open source initiative for a universal and persistent UDID solution for iOS
OpenUDID.org
2.09k stars 435 forks source link

A few questions #30

Closed Adcommunal closed 12 years ago

Adcommunal commented 12 years ago

Hi,

I represent an ad network and for the last few days I have been looking for ways using which we can track iOS app installs. openUDID seems to be the solution we were looking for but the problem is that I don't understand it fully. I googled a lot before posting here on how to use it, how it works, what's the technique etc etc. but couldn't find anything. I know HTML, javascript and a little about android programming but don't have iOS experience at all.

Is there a tutorial or description of the system? I am looking for answers to the following questions:

How can we get unique ID from a user's browser? Where is that unique ID stored? as in when the same user installs the app and your code runs, where does it look for comparison? What are the information that openUDID fetches from the device to create a fingerprint/UDID?

Sorry to pose these question here and starting a new topic but I couldn't find this info on github or anywhere else. Thanks in advance for the help!

ylechelle commented 12 years ago

Hi,

No worries. It's okay to ask. I'll be drafting a workflow document that explains how it works (inner workings of OpenUDID for non-programmers).

Note that OpenUDID for iOS has nothing to do with the browser or HTML. It's a native piece of code that serves a unique and persistent identifier to the native app that includes it. It is a strict attempt at replacing the original UDID provided by a formally public iOS API. OpenUDID does not use fingerprinting, cookies, etc...

OpenUDID may be used with advertising networks that support it, and permits installs tracking by simply comparing the unique identifiers at the click level and the unique identifiers are the installation level (where the installed unique identifiers are a subset of the clicked unique identifiers).

Hope this helps,

Yann

Adcommunal commented 12 years ago

Thank you so much for the quick response! I really appreciate it. After posting here I found this link (http://www.veracode.com/blog/2012/04/a-brief-field-guide-to-post-udid-unique-ids-on-ios/) that really helped me get a better understanding of openUDID.

We want to implement this system on our network ASAP because we already have app developers waiting for us. As per my understanding of openUDID, this is what happens:

User installs app (that has openUDID) -> openUDID code runs -> looks for already present openUDID on the user's device's PasteBoards -> If it finds an openUDID it sends it over to the ad networks (i guess?), if it doesn't find one then it produces a new openUDID and sets it on the PasteBoard.

Have I got that part right?

All this happens in the native app. But what about the part when the user clicks on the ad when browsing a publisher's page on their safari browser? How is that webpage going to access PasteBoard and do the same process as the native app?

Adcommunal commented 12 years ago

We really want to be the 18th company using your system :)

ylechelle commented 12 years ago

openUDID only generates the value (a unique/persistent value) or picks it up from an array of pasteboards if previously generated on the device.

OpenUDID does NOT send anything nor does it work for typical HTML/browser ads.

OpenUDID is a strict replacement to the iOS API called "deviceIdentifier".

Please refer to alternative tracking techniques for HTML/Safari tracking.

Adcommunal commented 12 years ago

So how do all those ad networks who use your system track app installs coming from their publishers' website?

"Please refer to alternative tracking techniques for HTML/Safari tracking"

Does that mean safari cannot access the pasteboards on the device or has this never been tried? I mean to say that if it is possible to access pasteboards via safari then your algorithm for creating openUDID can be used in JavaScript, isn't it achievable?

ylechelle commented 12 years ago

So how do all those ad networks who use your system track app installs coming from their publishers' website?

Not all of those networks propose web/banner-based advertising.

"Please refer to alternative tracking techniques for HTML/Safari tracking"

Typically, these networks will let you install a piece of code that takes care of the tracking. If they support OpenUDID, that means they most likely integrated it inside their code.

Does that mean safari cannot access the pasteboards on the device or has this never been tried? I mean to say that if it is possible to access pasteboards via safari then your algorithm for creating openUDID can be used in JavaScript, isn't it achievable?

Correct. Safari has no programmatic access to the pasteboard.

Adcommunal commented 12 years ago

From what I understand of UIPasteboards in iPhones, its a place where any native application can write and read data. Isn't it similar to the "clipboards" where the copy-paste data is stored? I am certain that Safari can access that. What about using that clip-board to store openUDID? I know the data inside will be altered when user uses copy-paste for different purposes so obviously this won't work every time. BUT, the chances of user using copy-paste, during the process of them clicking on the ad -> going to apple store -> installing the app, are very rare. So it might work! ..Just a thought :)

ylechelle commented 12 years ago

Sorry to say, it's not that simple (hundreds of man/hours have been spent on this already, and reviewed by hundreds of developers...).

1/ must use a different type of pasteboard 2/ any native app can certainly tap into any pasteboard 3/ but an HTML page or a Javascript cannot directly tap into that pasteboard, even the plain text one, and even on the Safari desktop (except if you use Flash, which of course doesn't exist on iOS)

Adcommunal commented 12 years ago

You are awesome man. Thanks for the quick responses.

OK, so openUDID only works with native apps. We have got publishers who can host our ads in their native app, so we can definitely use openUDID. You mentioned in your 2nd comment that you will be drafting a work-flow document, I am looking forward to that, looks very interesting. Moreover, where can I find directions for using openUDID? is it hard to implement? Any help in this regard will be greatly appreciated.