【问题标题】:How to Dynamically Change Amazon Search Ads' Search Phrase with Wix Corvid?如何使用 Wix Corvid 动态更改亚马逊搜索广告的搜索短语?
【发布时间】:2020-09-21 20:46:13
【问题描述】:

我想在博客页面上有一个亚马逊搜索广告小部件。

当我直接在“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 中,我获取博客文章标题并将其发送到 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”变量设置为帖子的标题,以显示与博客相关的搜索结果。

我不太擅长 JavaScript。尝试了以下 HTML sn-p 但无法管理:

<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>

我希望它很清楚。任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: javascript amazon velo


    【解决方案1】:

    经过这么多试验,我找到了一个解决方案。

    我了解到,当页面加载时,await $w('#post1').getPost(); 的加载速度比 $w("#html2").postMessage(searchCommand); 慢。

    所以我决定给页面一些时间来了解它的标题。

    1 秒不够,但 2 秒就足够了。我等待 2 秒,然后将帖子标题发送到 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>
    

    所以现在,在博客文章页面中,有一个 iFrame 在亚马逊上搜索博客文章的标题并显示结果。

    我觉得还是有必要有一个更高效的方法。

    【讨论】:

      猜你喜欢
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 2013-01-06
      • 2011-10-01
      • 1970-01-01
      相关资源
      最近更新 更多