如何在不使用UDID的情况下跟踪iOS5上的下载记录

8

有没有人知道如何在不使用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应用程序读取的共享存储?


1
你找到解决问题的方法了吗?不介意分享一下吗? - matm
1个回答

8
我面临着类似的问题。以下是我提出的解决方案 - 我自己将要实施第二个。
第一种解决方案: 如果你只需要一个可靠的UDID替代方案,请尝试这个链接,请注意它的许可证。你也可以在GitHub上搜索其他解决方案。
第二种解决方案: 更加灵活,允许跟踪安装活动与你的合作伙伴(例如通过为每个合作伙伴分配特定的“UDID”值,您可以在应用程序安装后检查该“UDID”是否发送到您的服务器)。请注意,如果以下任何步骤违反了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页面(例如),并提供允许继续的按钮,以便用户明确了解UX(即没有应用程序留下打开safari并在一秒后safari放弃并打开您的应用程序的体验)。
  7. 应用程序启动/恢复,存储“UDID”并解锁应用程序,允许显示主UI等。
  8. 现在,您可以在生成事件时使用存储的“UDID”发送到统计服务器等。
  9. 您稍后可以通过共享链接(在我的情况下,是分发在新闻通讯中的应用程序URL-scheme链接)来更新/删除您的“UDID”。

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

P.S. 我将离开一会儿,但稍后会检查您的反馈。谢谢!


我也考虑过这个想法 - 它应该可行; 我唯一的问题是用户体验可能不是很好。 - Wex
非常感谢。如果我们采用您的第一个想法,Safari(在iOS中)能够访问MAC地址吗?(如果不能,则第一个想法是不可能的。) - nss
很高兴能够帮忙,但是如果你打算采用我的第二个解决方案,我想提醒你,我自己放弃了那个想法——因为有太多的开发人员告诉我,这种方法可能会违反苹果对移动 HIG 的解释。 - matm
1
嘿,我注意到选项1的许可证现在已更改为MIT,所以选项1看起来非常不错。 - John Ballinger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接