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 是 Adobe Indesign 的 Javascript 扩展。所以流程是:
- 发送 Porky.io 您需要的客户数据(例如 links 的 utm)
- Porky.io 从您提供的模板生成 PDF 以及您提供的客户数据
- 监听来自 Porky 的新文件保存
- 对文件进行处理(例如通过电子邮件将其发送给客户)
我认为您需要 运行 云中某处(例如在 Azure 上)的 Windows 实例以 运行 Indesign 与 Porky.io。除非你想依赖你的笔记本电脑。
我的项目还不够大,无法保证设置它。 . .但如果我需要使我当前的解决方案更加健壮,这是一个不错的选择。
我有一个 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 动作几个小时了。非常感谢任何帮助。
您可以使用...
获取文档的完整 urlvar 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 是 Adobe Indesign 的 Javascript 扩展。所以流程是:
- 发送 Porky.io 您需要的客户数据(例如 links 的 utm)
- Porky.io 从您提供的模板生成 PDF 以及您提供的客户数据
- 监听来自 Porky 的新文件保存
- 对文件进行处理(例如通过电子邮件将其发送给客户)
我认为您需要 运行 云中某处(例如在 Azure 上)的 Windows 实例以 运行 Indesign 与 Porky.io。除非你想依赖你的笔记本电脑。
我的项目还不够大,无法保证设置它。 . .但如果我需要使我当前的解决方案更加健壮,这是一个不错的选择。