如何使用 Wix Corvid 动态更改亚马逊搜索广告的搜索词组?
How to Dynamically Change Amazon Search Ads' Search Phrase with Wix Corvid?
我想在博客页面上有一个亚马逊搜索广告小部件。
当我直接在“HTML iFrame”的“代码”部分使用亚马逊生成的代码时,它运行完美。
代码如下:
<script type="text/javascript">
amzn_assoc_placement = "adunit0";
amzn_assoc_search_bar = "true";
amzn_assoc_tracking_id = "atmarhoreca-20";
amzn_assoc_search_bar_position = "bottom";
amzn_assoc_ad_mode = "search";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_title = "Shop Related Products";
amzn_assoc_default_search_phrase = "product";
amzn_assoc_default_category = "All";
amzn_assoc_linkid = "ae6ccb4140ba25fbef6d6ba67d36b98d";
</script>
<script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"></script>
在 corvid 中,我获取博客 post 标题并将其发送到 HTML 元素:
$w.onReady(function () {
loadSearchAds();
});
async function loadSearchAds() {
let getPostData = await $w('#post1').getPost();
let postTitle = getPostData.title;
$w('#html2').postMessage(postTitle);
}
我必须向 HTML 元素发送消息以将“amzn_assoc_default_search_phrase”变量设置为 post 的标题以显示与博客相关的搜索结果。
我不太擅长JavaScript。尝试了以下 HTML 片段但无法管理:
<script type="text/javascript">
window.onmessage = (event) => {
if (event.data) {
searchPhrase = event.data;
} else {
searchPhrase = "horeca";
}
};
amzn_assoc_placement = "adunit0";
amzn_assoc_search_bar = "true";
amzn_assoc_tracking_id = "atmarhoreca-20";
amzn_assoc_search_bar_position = "bottom";
amzn_assoc_ad_mode = "search";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_title = "Shop Related Products";
amzn_assoc_default_search_phrase = searchPhrase;
amzn_assoc_default_category = "All";
amzn_assoc_linkid = "ae6ccb4140ba25fbef6d6ba67d36b98d";
</script>
<script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"></script>
我希望这是清楚的。任何帮助将不胜感激。
谢谢。
经过多次尝试,我找到了一个解决方案。
我了解到当页面加载时,await $w('#post1').getPost();
加载速度比 $w("#html2").postMessage(searchCommand);
慢。
所以我决定给页面一些时间来了解它的标题。
1秒不够,2秒足够了。我等了 2 秒,然后将 post 标题发送到 HTML 元素。
Corvid代码如下:
$w.onReady(function () {
loadSearchAds();
});
async function loadSearchAds() {
let getPostData = await $w('#post1').getPost();
let postTitle = getPostData.title;
let searchCommand = "pageRequests<:>" + postTitle;
setTimeout(function () {
$w("#html2").postMessage(searchCommand);
}, 2000);
}
此外,另一个问题是 HTML 部分。亚马逊生成的代码中有2个标签,一个是text/javascript,另一个是src。当我为第一个标签中的变量赋值时,第二个标签在分配新变量之前使用该变量。
所以我去了 URL,它写在 中,我复制了那里的所有内容(大约 25k 个字符)并在分配变量后粘贴到第一个标签中。
<script type="text/javascript">
window.onmessage = (event) => {
var splittedEventData = event.data.split("<:>");
if (splittedEventData[0] == "pageRequests") {
amzn_assoc_placement = "adunit0";
amzn_assoc_search_bar = "true";
amzn_assoc_tracking_id = "atmarhoreca-20";
amzn_assoc_search_bar_position = "bottom";
amzn_assoc_ad_mode = "search";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_title = "Shop Related Products";
amzn_assoc_default_search_phrase = splittedEventData[1];
amzn_assoc_default_category = "All";
amzn_assoc_linkid = "d241147a833a91225d67c0372ac8df2d";
[!] HERE COMES THE SNIPPET IN AMAZON URL. I DIDN'T COPY EVERYTHING HERE IN FORUM BECAUSE AMAZON CODE SNIPPET IS ABOUT 25000 CHARACTERS [!]
}
};
</script>
现在,在博客 post 页面中,有一个 iFrame 在亚马逊上搜索博客 post 的标题并显示结果。
我觉得我还是有必要有一个更高效的方法。
我想在博客页面上有一个亚马逊搜索广告小部件。
当我直接在“HTML iFrame”的“代码”部分使用亚马逊生成的代码时,它运行完美。
代码如下:
<script type="text/javascript">
amzn_assoc_placement = "adunit0";
amzn_assoc_search_bar = "true";
amzn_assoc_tracking_id = "atmarhoreca-20";
amzn_assoc_search_bar_position = "bottom";
amzn_assoc_ad_mode = "search";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_title = "Shop Related Products";
amzn_assoc_default_search_phrase = "product";
amzn_assoc_default_category = "All";
amzn_assoc_linkid = "ae6ccb4140ba25fbef6d6ba67d36b98d";
</script>
<script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"></script>
在 corvid 中,我获取博客 post 标题并将其发送到 HTML 元素:
$w.onReady(function () {
loadSearchAds();
});
async function loadSearchAds() {
let getPostData = await $w('#post1').getPost();
let postTitle = getPostData.title;
$w('#html2').postMessage(postTitle);
}
我必须向 HTML 元素发送消息以将“amzn_assoc_default_search_phrase”变量设置为 post 的标题以显示与博客相关的搜索结果。
我不太擅长JavaScript。尝试了以下 HTML 片段但无法管理:
<script type="text/javascript">
window.onmessage = (event) => {
if (event.data) {
searchPhrase = event.data;
} else {
searchPhrase = "horeca";
}
};
amzn_assoc_placement = "adunit0";
amzn_assoc_search_bar = "true";
amzn_assoc_tracking_id = "atmarhoreca-20";
amzn_assoc_search_bar_position = "bottom";
amzn_assoc_ad_mode = "search";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_title = "Shop Related Products";
amzn_assoc_default_search_phrase = searchPhrase;
amzn_assoc_default_category = "All";
amzn_assoc_linkid = "ae6ccb4140ba25fbef6d6ba67d36b98d";
</script>
<script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"></script>
我希望这是清楚的。任何帮助将不胜感激。
谢谢。
经过多次尝试,我找到了一个解决方案。
我了解到当页面加载时,await $w('#post1').getPost();
加载速度比 $w("#html2").postMessage(searchCommand);
慢。
所以我决定给页面一些时间来了解它的标题。
1秒不够,2秒足够了。我等了 2 秒,然后将 post 标题发送到 HTML 元素。
Corvid代码如下:
$w.onReady(function () {
loadSearchAds();
});
async function loadSearchAds() {
let getPostData = await $w('#post1').getPost();
let postTitle = getPostData.title;
let searchCommand = "pageRequests<:>" + postTitle;
setTimeout(function () {
$w("#html2").postMessage(searchCommand);
}, 2000);
}
此外,另一个问题是 HTML 部分。亚马逊生成的代码中有2个标签,一个是text/javascript,另一个是src。当我为第一个标签中的变量赋值时,第二个标签在分配新变量之前使用该变量。
所以我去了 URL,它写在 中,我复制了那里的所有内容(大约 25k 个字符)并在分配变量后粘贴到第一个标签中。
<script type="text/javascript">
window.onmessage = (event) => {
var splittedEventData = event.data.split("<:>");
if (splittedEventData[0] == "pageRequests") {
amzn_assoc_placement = "adunit0";
amzn_assoc_search_bar = "true";
amzn_assoc_tracking_id = "atmarhoreca-20";
amzn_assoc_search_bar_position = "bottom";
amzn_assoc_ad_mode = "search";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_title = "Shop Related Products";
amzn_assoc_default_search_phrase = splittedEventData[1];
amzn_assoc_default_category = "All";
amzn_assoc_linkid = "d241147a833a91225d67c0372ac8df2d";
[!] HERE COMES THE SNIPPET IN AMAZON URL. I DIDN'T COPY EVERYTHING HERE IN FORUM BECAUSE AMAZON CODE SNIPPET IS ABOUT 25000 CHARACTERS [!]
}
};
</script>
现在,在博客 post 页面中,有一个 iFrame 在亚马逊上搜索博客 post 的标题并显示结果。
我觉得我还是有必要有一个更高效的方法。