了解智能脚本函数 只要按照营销人员要求进行设置,智能脚本就能提供精准的网页到应用归因。如果开发者需要进行其他更改,可以自定义脚本。阅读下文,了解智能脚本中的不同属性和函数,并参考对应示例。
设置日志级别 如有必要,请使用 setLogLevel 函数,在浏览器控制台中设置日志级别。请在调用 createLink 函数前调用该函数。参数为 debug、warn、error 或 none。默认日志级别值为 debug。
AdjustSmartScript.setLogLevel('warn')创建链接 使用 createLink 函数,创建带有指定映射对象属性的 Adjust 链接。
const mapping = { /* mapping object properties */ }
AdjustSmartScript.createLink(mapping)创建富信息链接 等待 waitForEnrichedLink 函数使用指定的映射对象属性创建 Adjust 链接。该链接已经附加了能被异步读取的参数,例如 Facebook Pixel ID。
const mapping = { /* mapping object properties */ }
AdjustSmartScript.waitForEnrichedLink(mapping) // Waits for the Facebook Pixel ID to be resolved
.then(function (enrichedLink) {
// The enriched link has been created
// If the Facebook Pixel ID is found, the link includes it
// You can use the enriched link in your website CTA
})
.catch(function (error) {
// An error occurred and the enriched link was not created
// Check the browser console for more details
});获取脚本版本 使用 getVersion 函数检查智能脚本版本。
AdjustSmartScript.getVersion()您必须向 createLink 方法传递 mapping 对象。请务必在 mapping 对象中定义以下属性。
defaultLinkToken (string)
:在无可用链接识别码或未提供渠道配置的情况下使用的链接识别码。
*** ** * ** ***
campaign (object)
:包含推广活动信息的对象。
adgroup (object)
:包含广告组信息的对象。
creative (object)
:包含素材信息的对象。
campaign、adgroup和creative 对象必须包含以下属性:
in (string | string[])
:字符串或字符串数组,作为推广活动、广告组或素材名称的 URL 搜索字符串查询键。:如果传递数组,脚本会在 GET 参数中查找名称,并将所有存在的名称传递至 transform 函数。否则,脚本会以第一个不为空的值作为推广活动、广告组或素材的名称。
您还可以选择提供以下属性:
transform (function)
:调用值为 in 的函数,返回的字符串值是推广活动、广告组或素材的最终名称。如果 transform 未返回字符串,或返回错误,脚本会以第一个不为空的值作为推广活动、广告组或素材的名称。
defaultValue (string)
:在 transform 函数未找到 in 值时使用。
*** ** * ** ***
如果您已经采用了深度链接,那么请务必在 mapping 对象中定义以下参数。
domain (string):品牌化域名。:如果您尚未采用深度链接,则可以选择自定义品牌化域名。如果未指定域名,则会创建 app.adjust.com 链接。
*** ** * ** ***
iosAppSchema (string):iOS 应用 Scheme。
*** ** * ** ***
androidAppSchema (string):Android 应用 Scheme。
*** ** * ** ***
如果您已经采用了深度链接,就可以选择指定下列参数。
iosDeeplinkPath (string):iOS 深度链接路径。
*** ** * ** ***
androidDeeplinkPath (string):Android 深度链接路径。
*** ** * ** ***
您可以选择在 mapping 对象中定义以下属性。
inputUrl (string):移动网页落地页 URL。如果未提供值,脚本会使用 window.location.href 值作为当前页面 URL。
*** ** * ** ***
label (object`)
您可以使用该参数发送自定义数据。请查看帮助中心文档,了解更多详情。
*** ** * ** ***
networks (object)
:包含渠道信息的键值对象。
networks 对象必须包含至少一个代表渠道名称的键。受支持的键如下:
该值必须是包含以下属性的对象:
linkToken (string)
:键中定义的渠道的链接识别码。
*** ** * ** ***
customParameters (object)
:包含自定义参数信息的对象。
customParameters 对象必须包含以下属性:
in (string | string[])
:字符串或字符串数组,作为自定义名称的 URL 搜索字符串查询键。:如果传递数组,脚本会在 GET 参数中查找名称,并将所有存在的名称传递至 transform 函数。否则,脚本会以第一个不为空的值作为自定义名称。
out (string)
:一个字符串,指定要写入 Adjust 链接的自定义参数名称。
您还可以选择提供以下属性:
transform (function)
:调用值为 in 的函数,返回的字符串值是最终自定义名称。如果 transform 未返回字符串,或返回错误,脚本就会以第一个不为空的值作为自定义名称。
defaultValue (string)
:在 transform 函数未找到 in 值时使用。
全部展开
const mapping = {
inputUrl: "https://www.landing.com?campaign_name=Summer2024&ad_group=SomeGroup",
defaultLinkToken: "abcd123",
campaign: { in: "campaign_name" },
adgroup: { in: "ad_group" },
creative: { in: "element" }
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://app.adjust.com/abcd123?campaign=Summer2024&adgroup=SomeGroup
const mapping = {
defaultLinkToken: "abcd1234",
networks: {
meta: { linkToken: 'efgh5678'},
google_ads: { linkToken: 'ijkl9012' }
},
campaign: { in: "c" },
adgroup: { in: "a" },
creative: { in: "cr" }
}
const link1 = AdjustSmartScript.createLink({
...mapping,
inputUrl: "https://www.landing.com?c=Summer2024&a=SomeGroup&cr=banner&gclid=CLICK_ID"
});
console.log(link1)
// expected output: https://app.adjust.com/ijkl9012?gclid=CLICK_ID&campaign=Summer2024&adgroup=SomeGroup&creative=banner
const link2 = AdjustSmartScript.createLink({
...mapping,
inputUrl: "https://www.landing.com?c=Winter2025&a=AnotherGroup&cr=image&fbclid=FB_CLICK_ID"
});
console.log(link2)
// expected output: https://app.adjust.com/efgh5678?fbclid=FB_CLICK_ID&campaign=Winter2025&adgroup=AnotherGroup&creative=image
使用 "transform" 和 "defaultValue" 属性改写 Adjust 链接中的值
const mapping = {
inputUrl: "https://www.landing.com?utm_content=logo_image&utm_medium=social&utm_source=some-source&utm_campaign=new_campaign",
defaultLinkToken: "example123",
domain: "branded.go.link",
campaign: {
in: "utm_campaign",
defaultValue: "dummy-name"
},
adgroup: {
in: ["utm_source", "utm_medium"],
transform: function(values) { return (values[0] && values[1]) ? `${values[0]}: ${values[1]}` : undefined; }
},
creative: {
in: "utm_content",
transform: function(values) { return values[0] ? `ad_${values[0]}` : 'ad_default' }
}
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://branded.go.link?adj_token=example123&adj_campaign=new_campaign&adj_adgroup=some-source%3A%20social&adj_creative=ad_logo_image
const mapping = {
inputUrl: "https://www.landing.com?user_id=id&cr=logo_image&ad=some_adset&c=new_campaign&product=my_product",
domain: "example.go.link",
defaultLinkToken: "abcd1234",
campaign: { in: "c" },
adgroup: { in: "ad" },
creative: { in: "cr" },
customParameters: [{
in: ['product', 'user_id'],
out: 'ref_code',
transform: function (values) {
const product = values[0]
const userId = values[1]
if (product && userId) {
return `${userId}+${product}`
}
return ''
}
}]
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://example.go.link?adj_token=abcd1234&adj_campaign=new_campaign&adj_adgroup=some_adset&adj_creative=logo_image&ref_code=id%2Bmy_productiOS 深度链接
const mapping = {
inputUrl: "https://www.landing.com?&cr=logo_image&ad=some_adset&c=new_campaign",
domain: "example.go.link",
defaultLinkToken: "abcd1234",
campaign: { in: "c" },
adgroup: { in: "ad" },
creative: { in: "cr" },
iosAppSchema: "app",
iosDeeplinkPath: "path/to/screen",
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://example.go.link/path/to/screen?adjust_t=abcd1234&adj_campaign=new_campaign&adj_adgroup=some_adset&adj_creative=logo_imageAndroid 深度链接
const mapping = {
inputUrl: "https://www.landing.com?&cr=logo_image&ad=some_adset&c=new_campaign",
domain: "example.go.link",
defaultLinkToken: "abcd1234",
campaign: { in: "c" },
adgroup: { in: "ad" },
creative: { in: "cr" },
androidAppSchema: "scheme",
androidDeeplinkPath: "some/path",
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://example.go.link/some/path?adjust_t=abcd1234&adj_campaign=new_campaign&adj_adgroup=some_adset&adj_creative=logo_imageiOS 和 Android 深度链接
const mapping = {
inputUrl: "https://www.landing.com?&cr=logo_image&ad=some_adset&c=new_campaign",
domain: "example.go.link",
defaultLinkToken: "abcd1234",
campaign: { in: "c" },
adgroup: { in: "ad" },
creative: { in: "cr" },
androidAppSchema: "scheme",
androidDeeplinkPath: "some/path",
iosAppSchema: "app",
iosDeeplinkPath: "path/to/screen",
}
const link = AdjustSmartScript.createLink(mapping);
console.log(link)
// expected output: https://hello.go.link/path/to/screen?adjust_t=abcd1234&adjust_deeplink=scheme%3A%2F%2Fsome%2Fpath&adj_campaign=new_campaign&adj_adgroup=some_adset&adj_creative=logo_image智能脚本会在浏览器的控制台中输出日志。我们建议您使用指定的映射,测试脚本的运行情况,确保生成正确的链接。
在您的浏览器中找到开发者工具控制台。 导航到已部署智能脚本的网页。 如果没有带有 [adjust-smart-script] 前缀的日志,请刷新页面。如果仍未看到任何日志,请按照下方说明仔细检查:您的代码没有通过 AdjustSmartScript.setLogLevel('error') 或 AdjustSmartScript.setLogLevel('none') 调用来禁用日志记录。 您的代码调用 AdjustSmartScript.createLink(params) 函数。 通过 inputUrl 属性的不同值,您可以测试不同的用例。假设您正在开展 Meta 推广活动,预计会有自然用户访问您的落地页。那么,您可以使用一个带有推广活动和 Meta 参数的 URL,同时使用另一个不带任何额外参数的 URL。
日志示例:
[adjust-smart-script]: No networks configured
[adjust-smart-script]: Use defaultLinkToken to create adjust link
[adjust-smart-script]: Found value for campaign is new_campaign
[adjust-smart-script]: Found value for adgroup is some_adset
[adjust-smart-script]: Found value for creative is logo_image
[adjust-smart-script]: Transformed value for ref_code is id+my_product
[adjust-smart-script]: Misconfigured deep link: no valid androidAppSchema provided