如何在没有 UDID 的情况下跟踪 iOS5 上的下载

发布于 2024-12-09 00:52:47 字数 682 浏览 1 评论 0原文

谁知道如何在没有 UDID 的情况下跟踪 iOS 应用程序下载(通过网络广告)?

我认为这是不可能的,特别是如果用户从网站转到 AppStore。但一家名为 WDA 的公司似乎使这成为可能。

http://www.lovefortech.com/2011/09/17/developers-track-ads-on-ios-and-android-devices-without-udid-with-apptracker/

http://wda.us/press/track-app-downloads-from-web-ads-without-udid.php

我有一些想法,但我不确定哪个是最好的办法。

1) Cookie:iOS应用程序无法访问Safari中的cookie。 2)共享本地存储:是否有任何共享存储可以由Safari写入并由本机iOS应用程序读取?

Anyone who knows how to track iOS app downloads (through web ads) without UDID?

I have thought it becomes impossible especially if the user comes from website to AppStore. But a company called WDA seems to make it possible.

http://www.lovefortech.com/2011/09/17/developers-track-ads-on-ios-and-android-devices-without-udid-with-apptracker/

http://wda.us/press/track-app-downloads-from-web-ads-without-udid.php

I have some ideas but I'm not sure which is the best way.

1) Cookie: iOS apps cannot access the cookie in Safari.
2) Shared Local Strage: Is there any shared storage which can be written by Safari and read by native iOS app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫九 2024-12-16 00:52:47

我面临着类似的问题。以下是我提出的解决方案 - 我自己即将实施第二个解决方案。

第一个解决方案:

编辑:正如 John Ballinger 在下面的评论中指出的那样,UIDevice-with-UniqueIdentifier-for-iOS-5 的作者 Gekitz 将其许可证更改为 MIT :) 谢谢约翰!

如果您只需要可靠的 UDID 替代品,请尝试,并请注意其许可证。您还可以在 GitHub 上搜索其他解决方案。

第二个解决方案:

更新此解决方案:我放弃了这个想法,因为太多开发人员告诉我这会违反 HIG。

更加灵活,允许跟踪您的附属机构的安装活动(例如,通过分配每个附属机构您可以在安装应用程序后检查特定的“UDID”值,并将“UDID”发送到您的服务器)。

SO 用户:如果以下任何一项可能违反 HIG 并实际上导致申请被拒绝(尤其是步骤 5、6 和 7),请告知我们。

  1. 准备一个指向执行脚本的页面的链接,该脚本会留下
    cookie 的值是唯一的(例如,由您的服务器生成的“UDID”)。
  2. 用户在 Mobile Safari 中点击该链接。脚本存储 cookie 和
    然后使用您的应用程序重定向到 iTunes 页面(例如
    http://itunes.apple.com/us/app/skype/id304878510? mt=8&uo=4)。
  3. App Store 应用程序启动并显示包含您的应用程序的页面。
  4. 用户安装应用程序并启动它。
  5. 第一次启动时:启动后,您会显示一条警报,要求用户激活应用程序(只需一个按钮就足够了,例如“激活”)。
    • 注意:您需要确保当应用程序进入后台并恢复时警报仍然可见。另外,你需要有
  6. 用户点击“激活”,您的应用程序将退出/暂停,并且 iOS
    打开 Safari 并转到页面(例如应用程序中硬编码的链接),
    它读取 cookie 值(我们的“UDID”)并启动您的应用程序
    使用 URL 方案传递“UDID”值。

    • 注意:您需要允许 Safari 打开该链接(可能需要一些额外的编码,不确定);
    • 我相信某些带有 EULA 的页面(例如)必须呈现给用户,并且有一个允许继续的按钮,因此用户体验对用户来说是清晰的(即,应用程序不会留下打开 Safari 的体验,并且在第二次 Safari 后)辞职并打开您的应用程序)。
  7. 应用程序启动/恢复,存储“UDID”并解锁
    应用程序允许显示主 UI 等。
  8. 现在您可以在向您生成事件时使用存储的“UDID”
    您可以稍后通过共享链接(在我的例子中分布在时事通讯中的
  9. 应用程序的 URL 方案链接)来更新/删除您的“UDID”,这将打开您的应用程序并传递新值。

注意:您需要涵盖许多边缘情况,例如使用(或不使用)URL 方案或推送通知等启动/恢复应用程序。PS

出去一段时间,但稍后会检查您的反馈。谢谢!

I'm facing a similar problem. Below are my proposed solutions - myself I am about to implement the second one.

First solution:

EDIT: as John Ballinger points out in his comment below, gekitz, author of UIDevice-with-UniqueIdentifier-for-iOS-5 changes its license to MIT :) Thanks John!

If you just need a reliable UDID replacement, try this and please mind its license. You can also search for other solutions on GitHub.

Second solution:

Update to this solution: I've dropped the idea as too many devs are telling me it will violate HIG.

Much more flexible, allows tracking installation campaigns with your affiliates (e.g. by assigning every affiliate a specific "UDID" value you can later check after application is installed and that "UDID" is sent to your servers).

SO users: please let us know if any of below may violate HIG and, in effect, result in a rejected application (especially steps 5, 6 and 7).

  1. Prepare a link to a page that executes a script that leaves a
    cookie which value is unique (e.g. "UDID" generated by your server).
  2. User taps that link in Mobile Safari. Script stores cookie and
    then redirects to iTunes page with your app (e.g.
    http://itunes.apple.com/us/app/skype/id304878510?mt=8&uo=4).
  3. App Store app is launched and shows a page with your application.
  4. User installs the app and launches it.
  5. On 1st startup: after the splash you show an alert asking user to activate the app (just one button is enough, e.g. 'Activate').
    • Note: you'll need to make sure the alert is still visible when app is put into background and resumed. Also, you need to have
  6. User taps 'Activate', your application is quit/suspended and iOS
    opens Safari and goes to page (e.g. link hardcoded in your app),
    which reads the cookie value (our "UDID") and launches your app
    using URL scheme passing that "UDID" value.

    • Note: you need to allow Safari open that link (may require some additional coding, not sure);
    • I believe some page with EULA (for example) must be presented to the user and a button allowing to proceed, so UX is clear to the user (i.e. there is no experience that app leaves to open safari and after a second safari resigns and opens you app).
  7. Application starts/resumes, stores the "UDID" and unlocks
    application allowing to show main UI etc.
  8. Now you can use stored "UDID" when generating events to you
    statistics server etc.
  9. You can later update/remove your "UDID" by sharing links (app's URL-scheme links distributed in a newsletter in my case) that will open your app and pass new value.

NOTE: you'll need to cover many edge cases, like starting/resuming app with (or without) URL-scheme or Push Notification etc.

P.S. Going out for a while, but will check your feedback later. Thanks!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文