Acrobat Javascript:将 UTM 参数从 URL 传递到 PDF 按钮

Acrobat Javascript: passing a UTM parameter from URL into a PDF button

我有一个 PDF,其中有一个字段名称为 ctaButton 的按钮。

ctaButton 当前有一个 url 指向 https://mywebsite.com

我想在我的 https://mywebsite.com/hosted.pdf 服务器上托管 PDF。

当我向某人发送 link 到 PDF 时,我想附加一个 UTM_term 参数 ?utm_term=customer1 然后让 PDF 读取此参数并更新 ctaButton url 到 https://mywebsite.com/?utm_term=customer1.

为了实现这一点,我已经在 Acrobat 中处理 Javascript 动作几个小时了。非常感谢任何帮助。

您可以使用...

获取文档的完整 url
var myURL = this.url;

"this" 在 Acrobat 中 JavaScript 是文档上下文。

我做了几个小时的研究并得出了这个结论 – Javascript 在 Acrobat 中就像在 1985 年尝试编写代码并且浏览器不会执行你想出的任何代码。

所以我使用了这个解决方法:

  • 当我将 PDF 发送给某人时,我将其作为 link 和 base64 encoded stringified JSON 包含一堆跟踪的包 data 但重要的是,要访问的文件的名称以及 utm 特定于收件人的参数
  • link 命中提取编码的服务器处理程序 (NodeJS) JSON 包,并使用包中的数据提供 HTML 重定向页面指向正确的 PDF 文件
  • 重要的是,HTML页面还将JSON包保存到 浏览器的 localStorage 。 . .这在随后派上用场 步骤
  • PDF 文件在浏览器中打开(不必,可以在 桌面)和号召性用语 link 有一个 link 获取请求 处理程序
  • get 请求处理程序提供另一个重定向页面
  • 第二个重定向页面访问浏览器的本地存储,看起来 对于我为该用户设置的 utm 参数,然后重定向到 销售页面,附有漂亮的 utm 参数

总而言之,您没有将 utm 参数添加到 PDF 中的号召性用语 link 中(因为这会使世界变得太容易居住),而是您执行了所有这些操作杂技(没有双关语意)在过程中(即当用户打开电子邮件以通过 [=82 提取文件时)在 link 点击(通过 JSON 保存在 localStorage 中的字符串)中附加 utm 参数=],然后当用户点击 PDF 中的号召性用语时)。

如有任何问题或说明,请在评论中告诉我,我会尽力解决。

注意事项

  • 仅当用户在所有步骤中使用相同的浏览器时才有效(即,如果 Susan 在 Safari 中打开电子邮件,保存 PDF,然后单击 PDF 中的号召性用语,link 在 Chrome,utm参数不会传).
  • 假设浏览器是现代的并且有 localStorage

更新:我遇到了另一个解决方案。这有点复杂。下图。

Porky.io 是 Adob​​e Indesign 的 Javascript 扩展。所以流程是:

  1. 发送 Porky.io 您需要的客户数据(例如 links 的 utm)
  2. Porky.io 从您提供的模板生成 PDF 以及您提供的客户数据
  3. 监听来自 Porky 的新文件保存
  4. 对文件进行处理(例如通过电子邮件将其发送给客户)

我认为您需要 运行 云中某处(例如在 Azure 上)的 Windows 实例以 运行 Indesign 与 Porky.io。除非你想依赖你的笔记本电脑。

我的项目还不够大,无法保证设置它。 . .但如果我需要使我当前的解决方案更加健壮,这是一个不错的选择。