【发布时间】:2016-12-15 21:52:31
【问题描述】:
我希望 Facebook 共享弹出窗口应该由 Google 跟踪代码管理器提供。 我已经做了什么:
在谷歌标签管理器中:
1.我创建了一个名为“Facebook SDK”的自定义 HTML 标签,其中包含:
<script type="text/javascript" language="JavaScript">
window.fbAsyncInit = function() {
FB.init({
appId : '<app-id>',
xfbml : true,
version : 'v2.3'
});
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
2.我在网页浏览时触发了这个标签。
4.我创建了一些数据层变量,我稍后会用到:
**Name** **Data Layer Variable Name**
Thread Link threadLink
Thread Title threadTitle
Company Icon companyIcon
Facebook Share Caption facebookShareCaption
3.我创建了另一个名为“Facebook Share”的自定义 HTML 标签:
<script>
FB.ui({
method: 'feed',
link: {{Thread Link}},
picture: {{Company Icon}},
name: {{Thread Title}},
caption: {{Facebook Share Caption}}
});
</script>
4.提前设置这个标签,在Tag Sequencing选项中,我选择了这个:
Fire a tag before Facebook Share fires
Setup Tag: Facebook SDK
and I chose 'Don't fire Facebook Share if Facebook SDK fails'.
5.我创建了一个名为“Facebook Share Button”的自定义触发器,其事件名称为“fb_share_button_clicked”。 6.我为此标签设置了“Facebook 分享按钮”触发器。
源代码
1.为了设置数据层,我在GTM容器sn-p上方的页面头部添加了以下sn-p代码:
<script>
dataLayer = [{
'threadLink': 'LINKTO/ABCDEF',
'threadTitle': 'high-ABCDEFA BCDEF ABCDEFABCD EFABCDEFABCDEFABCDEF',
'companyIcon': 'PATHTO/icon',
'facebookShareCaption': 'Lorem ipsum dolor sit amet, consectetur adipiscing'
}];
2.当用户点击网站上的 Facebook 图标时,我会推送自定义事件“fb_share_button_clicked”变量
dataLayer.push({
'event': 'fb_share_button_clicked'
];
我的问题是:
- 在 javascript 控制台中运行 FB 时出现“未定义”。
- 当我点击 Facebook 图标时,没有 facebook 分享弹出窗口出现,
- 自定义标签“Facebook SDK”在网页浏览时触发,但自定义标签“Facebook 分享”在我单击 Facebook 图标时不会触发(在预览模式下看到)。
- 在预览和调试模式下,我在“此页面上未触发的标签:”下看到自定义 HTML 标记“Facebook 分享”,但触发了事件“”
-
我在未触发的自定义 HTML 标记“Facebook Share”中看到了有线值,例如:
name:google_tag_manager['xxxxx'].macro(\'111111111111')
如果有人可以指导我,我将不胜感激。
【问题讨论】:
标签: facebook google-tag-manager