2020年11月30日星期一

肺炎来袭!这件事,早点带宝宝做!

核心提示:孩子老咳嗽,是肺炎还是感冒?

随着天气一天比一天冷,眼看着冬天就来了,随着寒冷空气一起来的还有各种病原体。每年冬季都是儿童肺炎的高发季节,根据WHO提供的数据显示,全球每39秒就有1名儿童死于肺炎,而这些不幸几乎都是可以避免的。

很多家长一听到肺炎就慌了,一肚子的问题不知如何是好。那么,希望今天这篇文章可以帮助你了解儿童肺炎,解除困惑!

1 为什么孩子会得肺炎?

肺炎属于肺部的急性呼吸道感染。引起肺炎的原因有很多,包括空气中的细菌、病毒或真菌、支原体、衣原体等。

今年的新冠肺炎就是由病毒感染引起的肺炎,除了新冠病毒以外,常见的引起儿童肺炎的病毒还有,呼吸道合胞病毒、腺病毒、流感病毒、副流感病毒与鼻病毒等。

而细菌性肺炎的分类就更多了,可以分为2个大类,革兰氏阳性菌(肺炎链球菌、金黄色葡萄球菌等)和革兰氏阴性菌(肺炎杆菌等)。

当儿童感染肺炎时,其肺部会充满液体,造成呼吸困难。免疫系统不成熟(如新生儿)或免疫力低下(如营养不良或先天性疾病等)的儿童更容易感染肺炎。

2 哪些症状提示孩子可能患上肺炎了?

儿童肺炎症状差异很大,可能与感冒和其他上呼吸道症状相似。可能会有高烧、咳嗽、呼吸急促、呼吸困难、肺部有爆破音、食欲不振、由于咳嗽或吞咽黏液而呕吐、感觉不适和沮丧、腹痛等症状。

相信很多家长都有这样的疑问:孩子明明只有发烧,都没咳嗽,怎么就成肺炎了?!

孩子的不适到底是单纯感冒还是肺炎引起的?要知道,感冒反正吃药7天好,不吃药一周好,可肺炎就完全不一样了呀!

事实上,虽然大家可能患的都是肺炎,但由于个体差异,每个孩子的症状都大不相同,所以家长们很难判断孩子是否得了肺炎。

但还是有一个比较简单的观察要点——看孩子的呼吸频率:

在安静状态下,出生后2天~2个月的婴儿呼吸频率一般不超过60次/分;而2个月~12个月龄的幼儿不超过50次/分。

如果孩子在2月龄时平静呼吸就超过了60次/分,2月龄~12月龄时呼吸超过了50次/分,1岁~5岁超过40次/分,那么我们就要高度怀疑是否肺炎了,需要立刻去医院。

除了上面这个方法以外,孩子呼吸过重、有杂音,表现出烦躁不安、拒绝食水等症状我们也需要高度重视。

3 得了肺炎怎么治?

我们频道的后台经常有家长问关于肺炎的治疗问题,其中大部分问题离不开抗生素的使用。

相信很多家长和这位读者的想法是一样的,分不清抗生素和消炎药。这种误会可能来自于我们的老一辈,发烧了消炎药来2粒,感冒了消炎药来2粒,牙疼了消炎药再来……"消炎药"简直成了万能药啊!

虽然都知道不能过度使用抗生素、抗生素滥用有很多危害,但其实大多数人并不知道,常被我们当成消炎药之一的阿莫西林,其实也是一种抗生素。

真正的抗炎药物是既具有影响机体炎症反应机制,又有具有抗炎作用的药物,它可以分为非类固醇抗炎药、类固醇类抗炎药。非类固醇类消炎药指的是阿司匹林、安乃近等药物。而类固醇类中最常见的就是糖皮质激素。

所以千万不要将抗生素当消炎药随意给孩子吃,使用前一定要看说明书,抗生素不等于消炎药。

扯远了,让我们回归正题,孩子得了肺炎到底要不要用抗生素?

要回答这个问题就涉及到孩子患的是哪种肺炎。

我们可以通过各类检查得知孩子患的是哪种类型的肺炎,包括痰培养、鼻咽或口咽拭子、血液细菌培养等。

在确诊后如果是细菌性肺炎,就应乖乖使用抗生素治疗。如果不是,那就没必要使用抗生素了(用了也白费)。

总之,并不是每个孩子得了肺炎都需要用抗生素,具体情况要具体分析。但是,具体啥情况,家长们也别瞎猜,怀疑孩子得了肺炎,尽快去医院就对了!

还有一点非常重要的是,一旦确认细菌性肺炎,并开始使用抗生素,就务必遵循医嘱,定时定量给孩子完成整个疗程,不要看到孩子病情一好转就擅自停药。

4 肺炎疫苗,每个孩子都要打吗?

先上答案:在有条件的情况下,一定要让孩子接种肺炎疫苗,这是预防儿童肺炎的重要手段。

我国现有的肺炎疫苗包括:

13价肺炎链球菌结合疫苗

23价肺炎链球菌多糖疫苗

13价肺炎疫苗在我国有进口和国产2种,进口13价肺炎疫苗接种年龄为6周龄~15月龄,国产13价疫苗则将接种年龄放宽至6周龄~5周岁。

而23价的肺炎疫苗,世卫组织建议老年人及2岁以上高危人群(如患有慢性心血管疾病、慢性肺病等)接种。

5 为什么我孩子打了肺炎疫苗还是得肺炎?

正如我们上面提到的,导致肺炎的原因很多,我们现有的疫苗都是针对肺炎链球菌的,而且只针对肺炎链球菌的其中某几个危险血清型,但有其实人家有90多个血清型呢!

同时别忘了,除了肺炎链球菌,其他细菌、病毒、支原体、衣原体等同样可以导致肺炎,比如今年的新冠病毒肺炎。

所以在日常生活中让孩子增强抵抗力,每日摄取足够的营养,保持充足的睡眠,适量的运动,提高自身免疫力,也都是非常重要的预防方法。

今年的疫情让人们意识到了肺炎的可怕,大家都戴起了口罩,也习惯了一回家就脱衣服洗手。

冬天的临近,全球大环境疫情还在肆虐,我们很幸运生活在相对安全的环境下,但切勿掉以轻心,一定要警钟长鸣!

参考资料:

1.WHO:Pneumonia


https://www.who.int/health-topics/pneumonia#tab=tab_1

2. 中国儿童肺炎发病及疫苗普及白皮书

以上内容仅授权39健康网独家使用,未经版权方授权请勿转载。

原文转载:http://health.shaoqun.com/a/134054.html

auditor:https://www.ikjzd.com/w/2437

执御:https://www.ikjzd.com/w/717.html

camel:https://www.ikjzd.com/w/331.html


核心提示:孩子老咳嗽,是肺炎还是感冒? 随着天气一天比一天冷,眼看着冬天就来了,随着寒冷空气一起来的还有各种病原体。每年冬季都是儿童肺炎的高发季节,根据WHO提供的数据显示,全球每39秒就有1名儿童死于肺炎,而这些不幸几乎都是可以避免的。很多家长一听到肺炎就慌了,一肚子的问题不知如何是好。那么,希望今天这篇文章可以帮助你了解儿童肺炎,解除困惑!1为什么孩子会得肺炎?肺炎属于肺部的急性呼吸道感染。引
parenthood:parenthood
好东东网:好东东网
【英国旅游签证最长多久】--英国旅游签证需要多长时间:【英国旅游签证最长多久】--英国旅游签证需要多长时间
珠海武林源怎样?门票多少啊?:珠海武林源怎样?门票多少啊?
口述:同事骗我做小三 事后变冷淡:口述:同事骗我做小三 事后变冷淡

【入门】ZooKeeper 相关概念总结

相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 到底有啥用不?如果别人/面试官让你给他讲讲对于 ZooKeeper 的认识,你能回答到什么地步呢?拿我自己来说吧!我本人曾经使用 Dubbo 来做分布式项目的时候,使用了 ZooKeeper 作为注册中心。为了保证分布式系统能够同步访问某个资源,我还使用 ZooKeeper 做过分布式锁。另外,我在学习 Kafka 的时候,知道 Kafka 很多功能的实现依赖了 ZooKeeper。

1. 前言

相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 到底有啥用不?如果别人/面试官让你给他讲讲对于 ZooKeeper 的认识,你能回答到什么地步呢?

拿我自己来说吧!我本人曾经使用 Dubbo 来做分布式项目的时候,使用了 ZooKeeper 作为注册中心。为了保证分布式系统能够同步访问某个资源,我还使用 ZooKeeper 做过分布式锁。另外,我在学习 Kafka 的时候,知道 Kafka 很多功能的实现依赖了 ZooKeeper。

前几天,总结项目经验的时候,我突然问自己 ZooKeeper 到底是个什么东西?想了半天,脑海中只是简单的能浮现出几句话:

  1. ZooKeeper 可以被用作注册中心、分布式锁;
  2. ZooKeeper 是 Hadoop 生态系统的一员;
  3. 构建 ZooKeeper 集群的时候,使用的服务器最好是奇数台。

由此可见,我对于 ZooKeeper 的理解仅仅是停留在了表面。

所以,通过本文,希望带大家稍微详细的了解一下 ZooKeeper 。如果没有学过 ZooKeeper ,那么本文将会是你进入 ZooKeeper 大门的垫脚砖。如果你已经接触过 ZooKeeper ,那么本文将带你回顾一下 ZooKeeper 的一些基础概念。

另外,本文不光会涉及到 ZooKeeper 的一些概念,后面的文章会介绍到 ZooKeeper 常见命令的使用以及使用 Apache Curator 作为 ZooKeeper 的客户端。

如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步!

2. ZooKeeper 介绍

2.1. ZooKeeper 由来

正式介绍 ZooKeeper 之前,我们先来看看 ZooKeeper 的由来,还挺有意思的。

下面这段内容摘自《从 Paxos 到 ZooKeeper 》第四章第一节,推荐大家阅读一下:

ZooKeeper 最早起源于雅虎研究院的一个研究小组。在当时,研究人员发现,在雅虎内部很多大型系统基本都需要依赖一个类似的系统来进行分布式协调,但是这些系统往往都存在分布式单点问题。所以,雅虎的开发人员就试图开发一个通用的无单点问题的分布式协调框架,以便让开发人员将精力集中在处理业务逻辑上。

关于"ZooKeeper"这个项目的名字,其实也有一段趣闻。在立项初期,考虑到之前内部很多项目都是使用动物的名字来命名的(例如著名的 Pig 项目),雅虎的工程师希望给这个项目也取一个动物的名字。时任研究院的首席科学家 RaghuRamakrishnan 开玩笑地说:"在这样下去,我们这儿就变成动物园了!"此话一出,大家纷纷表示就叫动物园管理员吧一一一因为各个以动物命名的分布式组件放在一起,雅虎的整个分布式系统看上去就像一个大型的动物园了,而 ZooKeeper 正好要用来进行分布式环境的协调一一于是,ZooKeeper 的名字也就由此诞生了。

2.2. ZooKeeper 概览

ZooKeeper 是一个开源的分布式协调服务,它的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。

原语: 操作系统或计算机网络用语范畴。是由若干条指令组成的,用于完成一定功能的一个过程。具有不可分割性·即原语的执行必须是连续的,在执行过程中不允许被中断。

ZooKeeper 为我们提供了高可用、高性能、稳定的分布式数据一致性解决方案,通常被用于实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

另外,ZooKeeper 将数据保存在内存中,性能是非常棒的。 在"读"多于"写"的应用程序中尤其地高性能,因为"写"会导致所有的服务器间同步状态。("读"多于"写"是协调服务的典型场景)。

2.3. ZooKeeper 特点

  • 顺序一致性: 从同一客户端发起的事务请求,最终将会严格地按照顺序被应用到 ZooKeeper 中去。
  • 原子性: 所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的,也就是说,要么整个集群中所有的机器都成功应用了某一个事务,要么都没有应用。
  • 单一系统映像 : 无论客户端连到哪一个 ZooKeeper 服务器上,其看到的服务端数据模型都是一致的。
  • 可靠性: 一旦一次更改请求被应用,更改的结果就会被持久化,直到被下一次更改覆盖。

2.4. ZooKeeper 典型应用场景

ZooKeeper 概览中,我们介绍到使用其通常被用于实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

下面选 3 个典型的应用场景来专门说说:

  1. 分布式锁 : 通过创建唯一节点获得分布式锁,当获得锁的一方执行完相关代码或者是挂掉之后就释放锁。
  2. 命名服务 :可以通过 ZooKeeper 的顺序节点生成全局唯一 ID
  3. 数据发布/订阅 :通过 Watcher 机制 可以很方便地实现数据发布/订阅。当你将数据发布到 ZooKeeper 被监听的节点上,其他机器可通过监听 ZooKeeper 上节点的变化来实现配置的动态更新。

实际上,这些功能的实现基本都得益于 ZooKeeper 可以保存数据的功能,但是 ZooKeeper 不适合保存大量数据,这一点需要注意。

2.5. 有哪些著名的开源项目用到了 ZooKeeper?

  1. Kafka : ZooKeeper 主要为 Kafka 提供 Broker 和 Topic 的注册以及多个 Partition 的负载均衡等功能。
  2. Hbase : ZooKeeper 为 Hbase 提供确保整个集群只有一个 Master 以及保存和提供 regionserver 状态信息(是否在线)等功能。
  3. Hadoop : ZooKeeper 为 Namenode 提供高可用支持。

3. ZooKeeper 重要概念解读

破音:拿出小本本,下面的内容非常重要哦!

3.1. Data model(数据模型)

ZooKeeper 数据模型采用层次化的多叉树形结构,每个节点上都可以存储数据,这些数据可以是数字、字符串或者是二级制序列。并且。每个节点还可以拥有 N 个子节点,最上层是根节点以"/"来代表。每个数据节点在 ZooKeeper 中被称为 znode,它是 ZooKeeper 中数据的最小单元。并且,每个 znode 都一个唯一的路径标识。

强调一句:ZooKeeper 主要是用来协调服务的,而不是用来存储业务数据的,所以不要放比较大的数据在 znode 上,ZooKeeper 给出的上限是每个结点的数据大小最大是 1M。

从下图可以更直观地看出:ZooKeeper 节点路径标识方式和 Unix 文件系统路径非常相似,都是由一系列使用斜杠"/"进行分割的路径表示,开发人员可以向这个节点中写人数据,也可以在节点下面创建子节点。这些操作我们后面都会介绍到。

3.2. znode(数据节点)

介绍了 ZooKeeper 树形数据模型之后,我们知道每个数据节点在 ZooKeeper 中被称为 znode,它是 ZooKeeper 中数据的最小单元。你要存放的数据就放在上面,是你使用 ZooKeeper 过程中经常需要接触到的一个概念。

3.2.1. znode 4种类型

我们通常是将 znode 分为 4 大类:

  • 持久(PERSISTENT)节点 :一旦创建就一直存在即使 ZooKeeper 集群宕机,直到将其删除。
  • 临时(EPHEMERAL)节点 :临时节点的生命周期是与 客户端会话(session) 绑定的,会话消失则节点消失 。并且,临时节点只能做叶子节点 ,不能创建子节点。
  • 持久顺序(PERSISTENT_SEQUENTIAL)节点 :除了具有持久(PERSISTENT)节点的特性之外, 子节点的名称还具有顺序性。比如 /node1/app0000000001 、/node1/app0000000002 。
  • 临时顺序(EPHEMERAL_SEQUENTIAL)节点 :除了具备临时(EPHEMERAL)节点的特性之外,子节点的名称还具有顺序性。

3.2.2. znode 数据结构

每个 znode 由 2 部分组成:

  • stat :状态信息
  • data : 节点存放的数据的具体内容

如下所示,我通过 get 命令来获取 根目录下的 dubbo 节点的内容。(get 命令在下面会介绍到)。

[zk: 127.0.0.1:2181(CONNECTED) 6] get /dubbo# 该数据节点关联的数据内容为空null# 下面是该数据节点的一些状态信息,其实就是 Stat 对象的格式化输出cZxid = 0x2ctime = Tue Nov 27 11:05:34 CST 2018mZxid = 0x2mtime = Tue Nov 27 11:05:34 CST 2018pZxid = 0x3cversion = 1dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 0numChildren = 1

 


Stat 类中包含了一个数据节点的所有状态信息的字段,包括事务 ID-cZxid、节点创建时间-ctime 和子节点个数-numChildren 等等。

下面我们来看一下每个 znode 状态信息究竟代表的是什么吧!(下面的内容来源于《从 Paxos 到 ZooKeeper 分布式一致性原理与实践》,因为 Guide 确实也不是特别清楚,要学会参考资料的嘛! ) :

znode 状态信息解释
cZxidcreate ZXID,即该数据节点被创建时的事务 id
ctimecreate time,即该节点的创建时间
mZxidmodified ZXID,即该节点最终一次更新时的事务 id
mtimemodified time,即该节点最后一次的更新时间
pZxid该节点的子节点列表最后一次修改时的事务 id,只有子节点列表变更才会更新 pZxid,子节点内容变更不会更新
cversion子节点版本号,当前节点的子节点每次变化时值增加 1
dataVersion数据节点内容版本号,节点创建时为 0,每更新一次节点内容(不管内容有无变化)该版本号的值增加 1
aclVersion节点的 ACL 版本号,表示该节点 ACL 信息变更次数
ephemeralOwner创建该临时节点的会话的 sessionId;如果当前节点为持久节点,则 ephemeralOwner=0
dataLength数据节点内容长度
numChildren当前节点的子节点个数

3.3. 版本(version)

在前面我们已经提到,对应于每个 znode,ZooKeeper 都会为其维护一个叫作 Stat 的数据结构,Stat 中记录了这个 znode 的三个相关的版本:

  • dataVersion :当前 znode 节点的版本号
  • cversion : 当前 znode 子节点的版本
  • aclVersion : 当前 znode 的 ACL 的版本。

3.4. ACL(权限控制)

ZooKeeper 采用 ACL(AccessControlLists)策略来进行权限控制,类似于 UNIX 文件系统的权限控制。

对于 znode 操作的权限,ZooKeeper 提供了以下 5 种:

  • CREATE : 能创建子节点
  • READ :能获取节点数据和列出其子节点
  • WRITE : 能设置/更新节点数据
  • DELETE : 能删除子节点
  • ADMIN : 能设置节点 ACL 的权限

其中尤其需要注意的是,CREATE 和 DELETE 这两种权限都是针对 子节点 的权限控制。

对于身份认证,提供了以下几种方式:

  • world : 默认方式,所有用户都可无条件访问。
  • auth :不使用任何 id,代表任何已认证的用户。
  • digest :用户名:密码认证方式: username:password 。
  • ip : 对指定 ip 进行限制。

3.5. Watcher(事件监听器)

Watcher(事件监听器),是 ZooKeeper 中的一个很重要的特性。ZooKeeper 允许用户在指定节点上注册一些 Watcher,并且在一些特定事件触发的时候,ZooKeeper 服务端会将事件通知到感兴趣的客户端上去,该机制是 ZooKeeper 实现分布式协调服务的重要特性。

 

 

破音:非常有用的一个特性,都能出小本本记好了,后面用到 ZooKeeper 基本离不开 Watcher(事件监听器)机制。

3.6. 会话(Session)

Session 可以看作是 ZooKeeper 服务器与客户端的之间的一个 TCP 长连接,通过这个连接,客户端能够通过心跳检测与服务器保持有效的会话,也能够向 ZooKeeper 服务器发送请求并接受响应,同时还能够通过该连接接收来自服务器的 Watcher 事件通知。

Session 有一个属性叫做:sessionTimeout ,sessionTimeout 代表会话的超时时间。当由于服务器压力太大、网络故障或是客户端主动断开连接等各种原因导致客户端连接断开时,只要在sessionTimeout规定的时间内能够重新连接上集群中任意一台服务器,那么之前创建的会话仍然有效。

另外,在为客户端创建会话之前,服务端首先会为每个客户端都分配一个 sessionID。由于 sessionID是 ZooKeeper 会话的一个重要标识,许多与会话相关的运行机制都是基于这个 sessionID 的,因此,无论是哪台服务器为客户端分配的 sessionID,都务必保证全局唯一。

4. ZooKeeper 集群

为了保证高可用,最好是以集群形态来部署 ZooKeeper,这样只要集群中大部分机器是可用的(能够容忍一定的机器故障),那么 ZooKeeper 本身仍然是可用的。通常 3 台服务器就可以构成一个 ZooKeeper 集群了。ZooKeeper 官方提供的架构图就是一个 ZooKeeper 集群整体对外提供服务。

 

 

上图中每一个 Server 代表一个安装 ZooKeeper 服务的服务器。组成 ZooKeeper 服务的服务器都会在内存中维护当前的服务器状态,并且每台服务器之间都互相保持着通信。集群间通过 ZAB 协议(ZooKeeper Atomic Broadcast)来保持数据的一致性。

最典型集群模式: Master/Slave 模式(主备模式)。在这种模式中,通常 Master 服务器作为主服务器提供写服务,其他的 Slave 服务器从服务器通过异步复制的方式获取 Master 服务器最新的数据提供读服务。

4.1. ZooKeeper 集群角色

但是,在 ZooKeeper 中没有选择传统的 Master/Slave 概念,而是引入了 Leader、Follower 和 Observer 三种角色。如下图所示

 

 

ZooKeeper 集群中的所有机器通过一个 Leader 选举过程 来选定一台称为 "Leader" 的机器,Leader 既可以为客户端提供写服务又能提供读服务。除了 Leader 外,Follower 和 Observer 都只能提供读服务。Follower 和 Observer 唯一的区别在于 Observer 机器不参与 Leader 的选举过程,也不参与写操作的"过半写成功"策略,因此 Observer 机器可以在不影响写性能的情况下提升集群的读性能。

角色说明
Leader为客户端提供读和写的服务,负责投票的发起和决议,更新系统状态。
Follower为客户端提供读服务,如果是写服务则转发给 Leader。在选举过程中参与投票。
Observer为客户端提供读服务器,如果是写服务则转发给 Leader。不参与选举过程中的投票,也不参与"过半写成功"策略。在不影响写性能的情况下提升集群的读性能。此角色于 ZooKeeper3.3 系列新增的角色。

当 Leader 服务器出现网络中断、崩溃退出与重启等异常情况时,就会进入 Leader 选举过程,这个过程会选举产生新的 Leader 服务器。

这个过程大致是这样的:

  1. Leader election(选举阶段):节点在一开始都处于选举阶段,只要有一个节点得到超半数节点的票数,它就可以当选准 leader。
  2. Discovery(发现阶段) :在这个阶段,followers 跟准 leader 进行通信,同步 followers 最近接收的事务提议。
  3. Synchronization(同步阶段) :同步阶段主要是利用 leader 前一阶段获得的最新提议历史,同步集群中所有的副本。同步完成之后 准 leader 才会成为真正的 leader。
  4. Broadcast(广播阶段) :到了这个阶段,ZooKeeper 集群才能正式对外提供事务服务,并且 leader 可以进行消息广播。同时如果有新的节点加入,还需要对新节点进行同步。

4.2. ZooKeeper 集群中的服务器状态

  • LOOKING :寻找 Leader。
  • LEADING :Leader 状态,对应的节点为 Leader。
  • FOLLOWING :Follower 状态,对应的节点为 Follower。
  • OBSERVING :Observer 状态,对应节点为 Observer,该节点不参与 Leader 选举。

4.3. ZooKeeper 集群为啥最好奇数台?

ZooKeeper 集群在宕掉几个 ZooKeeper 服务器之后,如果剩下的 ZooKeeper 服务器个数大于宕掉的个数的话整个 ZooKeeper 才依然可用。假如我们的集群中有 n 台 ZooKeeper 服务器,那么也就是剩下的服务数必须大于 n/2。先说一下结论,2n 和 2n-1 的容忍度是一样的,都是 n-1,大家可以先自己仔细想一想,这应该是一个很简单的数学问题了。 比如假如我们有 3 台,那么最大允许宕掉 1 台 ZooKeeper 服务器,如果我们有 4 台的的时候也同样只允许宕掉 1 台。 假如我们有 5 台,那么最大允许宕掉 2 台 ZooKeeper 服务器,如果我们有 6 台的的时候也同样只允许宕掉 2 台。

综上,何必增加那一个不必要的 ZooKeeper 呢?

5. ZAB 协议和Paxos 算法

Paxos 算法应该可以说是 ZooKeeper 的灵魂了。但是,ZooKeeper 并没有完全采用 Paxos算法 ,而是使用 ZAB 协议作为其保证数据一致性的核心算法。另外,在ZooKeeper的官方文档中也指出,ZAB协议并不像 Paxos 算法那样,是一种通用的分布式一致性算法,它是一种特别为Zookeeper设计的崩溃可恢复的原子消息广播算法。

5.1. ZAB 协议介绍

ZAB(ZooKeeper Atomic Broadcast 原子广播) 协议是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的原子广播协议。 在 ZooKeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性,基于该协议,ZooKeeper 实现了一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。

5.2. ZAB 协议两种基本的模式:崩溃恢复和消息广播

ZAB 协议包括两种基本的模式,分别是

  • 崩溃恢复 :当整个服务框架在启动过程中,或是当 Leader 服务器出现网络中断、崩溃退出与重启等异常情况时,ZAB 协议就会进入恢复模式并选举产生新的Leader服务器。当选举产生了新的 Leader 服务器,同时集群中已经有过半的机器与该Leader服务器完成了状态同步之后,ZAB协议就会退出恢复模式。其中,所谓的状态同步是指数据同步,用来保证集群中存在过半的机器能够和Leader服务器的数据状态保持一致。
  • 消息广播 :当集群中已经有过半的Follower服务器完成了和Leader服务器的状态同步,那么整个服务框架就可以进入消息广播模式了。 当一台同样遵守ZAB协议的服务器启动后加入到集群中时,如果此时集群中已经存在一个Leader服务器在负责进行消息广播,那么新加入的服务器就会自觉地进入数据恢复模式:找到Leader所在的服务器,并与其进行数据同步,然后一起参与到消息广播流程中去。

关于 ZAB 协议&Paxos算法 需要讲和理解的东西太多了,具体可以看下面这两篇文章:

  • 图解 Paxos 一致性协议
  • Zookeeper ZAB 协议分析

6. 总结

  1. ZooKeeper 本身就是一个分布式程序(只要半数以上节点存活,ZooKeeper 就能正常服务)。
  2. 为了保证高可用,最好是以集群形态来部署 ZooKeeper,这样只要集群中大部分机器是可用的(能够容忍一定的机器故障),那么 ZooKeeper 本身仍然是可用的。
  3. ZooKeeper 将数据保存在内存中,这也就保证了 高吞吐量和低延迟(但是内存限制了能够存储的容量不太大,此限制也是保持 znode 中存储的数据量较小的进一步原因)。
  4. ZooKeeper 是高性能的。 在"读"多于"写"的应用程序中尤其地明显,因为"写"会导致所有的服务器间同步状态。("读"多于"写"是协调服务的典型场景。)
  5. ZooKeeper 有临时节点的概念。 当创建临时节点的客户端会话一直保持活动,瞬时节点就一直存在。而当会话终结时,瞬时节点被删除。持久节点是指一旦这个 znode 被创建了,除非主动进行 znode 的移除操作,否则这个 znode 将一直保存在 ZooKeeper 上。
  6. ZooKeeper 底层其实只提供了两个功能:① 管理(存储、读取)用户程序提交的数据;② 为用户程序提供数据节点监听服务。

7. 参考

  1. 《从 Paxos 到 ZooKeeper 分布式一致性原理与实践》

作者:Snailclimb
链接:【入门】ZooKeeper 相关概念总结
来源:github









原文转载:http://www.shaoqun.com/a/494420.html

ola:https://www.ikjzd.com/w/2103

tradeindia:https://www.ikjzd.com/w/2305

国际标准书号:https://www.ikjzd.com/w/174


相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper到底有啥用不?如果别人/面试官让你给他讲讲对于ZooKeeper的认识,你能回答到什么地步呢?拿我自己来说吧!我本人曾经使用Dubbo来做分布式项目的时候,使用了ZooKeeper作为注册中心。为了保证分布式系统能够同步访问某个资源,我还使用ZooKeeper做过分布式锁。另外,我在学习Kafka的时候,知道Kafka很多功
logo免费制作:logo免费制作
笨鸟:笨鸟
亚马逊手动广告如何投放?亚马逊手动广告怎么优化? :亚马逊手动广告如何投放?亚马逊手动广告怎么优化?
你不知道关于eBAY物流评价的事:你不知道关于eBAY物流评价的事
开平客运总站到巽寮湾自助游怎去?:开平客运总站到巽寮湾自助游怎去?

常见的设计模式及应用场景

一、单例模式

单例模式是一种常用的软件设计模式,在应用这个模式时,单例对象的类必须保证只有一个实例存在,整个系统只能使用一个对象实例。

优点:不会频繁地创建和销毁对象,浪费系统资源。

使用场景:IO 、数据库连接、Redis 连接等。

单例模式代码实现:

class Singleton { private static Singleton instance = new Singleton(); public static Singleton getInstance() {  return instance; }}

单例模式调用代码:

public class Lesson{ public static void main(String[] args) {  Singleton singleton1 = Singleton.getInstance();  Singleton singleton2 = Singleton.getInstance();  System.out.println(singleton1 == singleton2);  }}

程序的输出结果:true

可以看出以上单例模式是在类加载的时候就创建了,这样会影响程序的启动速度,那如何实现单例模式的延迟加载?在使用时再创建?

单例延迟加载代码:

// 单例模式-延迟加载版class SingletonLazy { private static SingletonLazy instance; public static SingletonLazy getInstance() {  if (instance == null) {   instance = new SingletonLazy();  }  return instance; }}

以上为非线程安全的,单例模式如何支持多线程?

使用 synchronized 来保证,单例模式的线程安全代码:

class SingletonLazy { private static SingletonLazy instance; public static synchronized SingletonLazy getInstance() {  if (instance == null) {   instance = new SingletonLazy();  }  return instance; }}

二、工厂模式
1,简单工厂

简单工厂模式又叫静态工厂方法模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。比如,一台咖啡机就可以理解为一个工厂模式,你只需要按下想喝的咖啡品类的按钮(摩卡或拿铁),它就会给你生产一杯相应的咖啡,你不需要管它内部的具体实现,只要告诉它你的需求即可。

优点

  • 工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅"消费"产品;简单工厂模式通过这种做法实现了对责任的分割,它提供了专门的工厂类用于创建对象;
  • 客户端无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆量;
  • 通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新的具体产品类,在一定程度上提高了系统的灵活性。

缺点

  • 不易拓展,一旦添加新的产品类型,就不得不修改工厂的创建逻辑;
  • 产品类型较多时,工厂的创建逻辑可能过于复杂,一旦出错可能造成所有产品的创建失败,不利于系统的维护。

简单工厂示意图如下:

简单工厂代码实现

class Factory { public static String createProduct(String product) {  String result = null;  switch (product) {   case "Mocca":    result = "摩卡";    break;   case "Latte":    result = "拿铁";    break;   default:    result = "其他";    break;  }  return result; }}

2,抽象工厂模式

抽象工厂模式是在简单工厂的基础上将未来可能需要修改的代码抽象出来,通过继承的方式让子类去做决定。

比如,以上面的咖啡工厂为例,某天我的口味突然变了,不想喝咖啡了想喝啤酒,这个时候如果直接修改简单工厂里面的代码,这种做法不但不够优雅,也不符合软件设计的"开闭原则",因为每次新增品类都要修改原来的代码。这个时候就可以使用抽象工厂类了,抽象工厂里只声明方法,具体的实现交给子类(子工厂)去实现,这个时候再有新增品类的需求,只需要新创建代码即可。

抽象工厂实现代码如下:

public class AbstractFactoryTest { public static void main(String[] args) {  // 抽象工厂  String result = (new CoffeeFactory()).createProduct("Latte");  System.out.println(result); // output:拿铁 }}// 抽象工厂abstract class AbstractFactory{ public abstract String createProduct(String product);}// 啤酒工厂class BeerFactory extends AbstractFactory{ @Override public String createProduct(String product) {  String result = null;  switch (product) {   case "Hans":    result = "汉斯";    break;   case "Yanjing":    result = "燕京";    break;   default:    result = "其他啤酒";    break;  }  return result; }}/\* \* 咖啡工厂 \*/class CoffeeFactory extends AbstractFactory{ @Override public String createProduct(String product) {  String result = null;  switch (product) {   case "Mocca":    result = "摩卡";    break;   case "Latte":    result = "拿铁";    break;   default:    result = "其他咖啡";    break;  }  return result; }}

观察者模式

观察者模式是定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 优点

  • 观察者模式可以实现表示层和数据逻辑层的分离,并定义了稳定的消息更新传递机制,抽象了更新接口,使得可以有各种各样不同的表示层作为具体观察者角色;
  • 观察者模式在观察目标和观察者之间建立一个抽象的耦合;
  • 观察者模式支持广播通信;
  • 观察者模式符合开闭原则(对拓展开放,对修改关闭)的要求。

缺点

  • 如果一个观察目标对象有很多直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间;
  • 如果在观察者和观察目标之间有循环依赖的话,观察目标会触发它们之间进行循环调用,可能导致系统崩溃;
  • 观察者模式没有相应的机制让观察者知道所观察的目标对象是怎么发生变化的,而仅仅只是知道观察目标发生了变化。

在观察者模式中有如下角色:

  • Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象;
  • ConcreteSubject:具体主题(具体被观察者),该角色将有关状态存入具体观察者对象,在具体主题的内部状态发生改变时,给所有注册过的观察者发送通知;
  • Observer:抽象观察者,是观察者者的抽象类,它定义了一个更新接口,使得在得到主题更改通知时更新自己;
  • ConcrereObserver:具体观察者,实现抽象观察者定义的更新接口,以便在得到主题更改通知时更新自身的状态。

观察者模式实现代码如下。

1)定义观察者(消息接收方)
/\* \* 观察者(消息接收方) \*/interface Observer { public void update(String message);}/\* \* 具体的观察者(消息接收方) \*/class ConcrereObserver implements Observer { private String name; public ConcrereObserver(String name) {  this.name = name; } @Override public void update(String message) {  System.out.println(name + ":" + message); }}
2)定义被观察者(消息发送方)
/\* \* 被观察者(消息发布方) \*/interface Subject { // 增加订阅者 public void attach(Observer observer); // 删除订阅者 public void detach(Observer observer); // 通知订阅者更新消息 public void notify(String message);}/\* \* 具体被观察者(消息发布方) \*/class ConcreteSubject implements Subject { // 订阅者列表(存储信息) private List<Observer> list = new ArrayList<Observer>(); @Override public void attach(Observer observer) {  list.add(observer); } @Override public void detach(Observer observer) {  list.remove(observer); } @Override public void notify(String message) {  for (Observer observer : list) {   observer.update(message);  } }}
3)代码调用
public class ObserverTest { public static void main(String[] args) {  // 定义发布者  ConcreteSubject concreteSubject = new ConcreteSubject();  // 定义订阅者  ConcrereObserver concrereObserver = new ConcrereObserver("老王");  ConcrereObserver concrereObserver2 = new ConcrereObserver("Java");  // 添加订阅  concreteSubject.attach(concrereObserver);  concreteSubject.attach(concrereObserver2);  // 发布信息  concreteSubject.notify("更新了"); }}

程序执行结果如下:

老王:更新了

Java:更新了

6.什么是装饰器模式?

答:装饰器模式是指动态地给一个对象增加一些额外的功能,同时又不改变其结构。

优点:装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。

装饰器模式的关键:装饰器中使用了被装饰的对象。

比如,创建一个对象"laowang",给对象添加不同的装饰,穿上夹克、戴上帽子......,这个执行过程就是装饰者模式,实现代码如下。

1)定义顶层对象,定义行为
interface IPerson { void show();}
2)定义装饰器超类
class DecoratorBase implements IPerson{ IPerson iPerson; public DecoratorBase(IPerson iPerson){  this.iPerson = iPerson; } @Override public void show() {  iPerson.show(); }}
3)定义具体装饰器
class Jacket extends DecoratorBase { public Jacket(IPerson iPerson) {  super(iPerson); } @Override public void show() {  // 执行已有功能  iPerson.show();  // 定义新行为  System.out.println("穿上夹克"); }}class Hat extends DecoratorBase { public Hat(IPerson iPerson) {  super(iPerson); } @Override public void show() {  // 执行已有功能  iPerson.show();  // 定义新行为  System.out.println("戴上帽子"); }}
4)定义具体对象
class LaoWang implements IPerson{ @Override public void show() {  System.out.println("什么都没穿"); }}
5)装饰器模式调用
public class DecoratorTest { public static void main(String[] args) {  LaoWang laoWang = new LaoWang();  Jacket jacket = new Jacket(laoWang);  Hat hat = new Hat(jacket);  hat.show(); }}

7.什么是模板方法模式?

答:模板方法模式是指定义一个模板结构,将具体内容延迟到子类去实现。

优点

  • 提高代码复用性:将相同部分的代码放在抽象的父类中,而将不同的代码放入不同的子类中;
  • 实现了反向控制:通过一个父类调用其子类的操作,通过对子类的具体实现扩展不同的行为,实现了反向控制并且符合开闭原则。

以给冰箱中放水果为例,比如,我要放一个香蕉:开冰箱门 → 放香蕉 → 关冰箱门;如果我再要放一个苹果:开冰箱门 → 放苹果 → 关冰箱门。可以看出它们之间的行为模式都是一样的,只是存放的水果品类不同而已,这个时候就非常适用模板方法模式来解决这个问题,实现代码如下:

/\* \* 添加模板方法 \*/abstract class Refrigerator { public void open() {  System.out.println("开冰箱门"); } public abstract void put(); public void close() {  System.out.println("关冰箱门"); }}class Banana extends Refrigerator { @Override public void put() {  System.out.println("放香蕉"); }}class Apple extends Refrigerator { @Override public void put() {  System.out.println("放苹果"); }}/\* \* 调用模板方法 \*/public class TemplateTest { public static void main(String[] args) {  Refrigerator refrigerator = new Banana();  refrigerator.open();  refrigerator.put();  refrigerator.close(); }}

程序执行结果:

开冰箱门

放香蕉

关冰箱门

8.什么是代理模式?

代理模式是给某一个对象提供一个代理,并由代理对象控制对原对象的引用。

优点

  • 代理模式能够协调调用者和被调用者,在一定程度上降低了系统的耦合度;
  • 可以灵活地隐藏被代理对象的部分功能和服务,也增加额外的功能和服务。

缺点

  • 由于使用了代理模式,因此程序的性能没有直接调用性能高;
  • 使用代理模式提高了代码的复杂度。

举一个生活中的例子:比如买飞机票,由于离飞机场太远,直接去飞机场买票不太现实,这个时候我们就可以上携程 App 上购买飞机票,这个时候携程 App 就相当于是飞机票的代理商。

代理模式实现代码如下:

/\* \* 定义售票接口 \*/interface IAirTicket { void buy();}/\* \* 定义飞机场售票 \*/class AirTicket implements IAirTicket { @Override public void buy() {  System.out.println("买票"); }}/\* \* 代理售票平台 \*/class ProxyAirTicket implements IAirTicket { private AirTicket airTicket; public ProxyAirTicket() {  airTicket = new AirTicket(); } @Override public void buy() {  airTicket.buy(); }}/\* \* 代理模式调用 \*/public class ProxyTest { public static void main(String[] args) {  IAirTicket airTicket = new ProxyAirTicket();  airTicket.buy(); }}

9.什么是策略模式?

答:策略模式是指定义一系列算法,将每个算法都封装起来,并且使他们之间可以相互替换。

优点:遵循了开闭原则,扩展性良好。

缺点:随着策略的增加,对外暴露越来越多。

以生活中的例子来说,比如我们要出去旅游,选择性很多,可以选择骑车、开车、坐飞机、坐火车等,就可以使用策略模式,把每种出行作为一种策略封装起来,后面增加了新的交通方式了,如超级高铁、火箭等,就可以不需要改动原有的类,新增交通方式即可,这样也符合软件开发的开闭原则。 策略模式实现代码如下:

/\* \* 声明旅行 \*/interface ITrip { void going();}class Bike implements ITrip { @Override public void going() {  System.out.println("骑自行车"); }}class Drive implements ITrip { @Override public void going() {  System.out.println("开车"); }}/\* \* 定义出行类 \*/class Trip { private ITrip trip; public Trip(ITrip trip) {  this.trip = trip; } public void doTrip() {  this.trip.going(); }}/\* \* 执行方法 \*/public class StrategyTest { public static void main(String[] args) {  Trip trip = new Trip(new Bike());  trip.doTrip(); }}

程序执行的结果:

骑自行车

10.什么是适配器模式?

答:适配器模式是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够在一起工作。

优点

  • 可以让两个没有关联的类一起运行,起着中间转换的作用;
  • 灵活性好,不会破坏原有的系统。

缺点:过多地使用适配器,容易使代码结构混乱,如明明看到调用的是 A 接口,内部调用的却是 B 接口的实现。

以生活中的例子来说,比如有一个充电器是 MicroUSB 接口,而手机充电口却是 TypeC 的,这个时候就需要一个把 MicroUSB 转换成 TypeC 的适配器,如下图所示:

适配器实现代码如下:

/\* \* 传统的充电线 MicroUSB \*/interface MicroUSB { void charger();}/\* \* TypeC 充电口 \*/interface ITypeC { void charger();}class TypeC implements ITypeC { @Override public void charger() {  System.out.println("TypeC 充电"); }}/\* \* 适配器 \*/class AdapterMicroUSB implements MicroUSB { private TypeC typeC; public AdapterMicroUSB(TypeC typeC) {  this.typeC = typeC; } @Override public void charger() {  typeC.charger(); }}/\* \* 测试调用 \*/public class AdapterTest { public static void main(String[] args) {  TypeC typeC = new TypeC();  MicroUSB microUSB = new AdapterMicroUSB(typeC);  microUSB.charger(); }}

程序执行结果:

TypeC 充电

11.JDK 类库常用的设计模式有哪些?

答:JDK 常用的设计模式如下:

1)工厂模式

java.text.DateFormat 工具类,它用于格式化一个本地日期或者时间。

public final static DateFormat getDateInstance();public final static DateFormat getDateInstance(int style);public final static DateFormat getDateInstance(int style,Locale locale);

加密类

KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede");Cipher cipher = Cipher.getInstance("DESede");
2)适配器模式

把其他类适配为集合类

List<Integer> arrayList = java.util.Arrays.asList(new Integer[]{1,2,3});List<Integer> arrayList = java.util.Arrays.asList(1,2,3);
3)代理模式

如 JDK 本身的动态代理。

interface Animal { void eat();}class Dog implements Animal { @Override public void eat() {  System.out.println("The dog is eating"); }}class Cat implements Animal { @Override public void eat() {  System.out.println("The cat is eating"); }}// JDK 代理类class AnimalProxy implements InvocationHandler { private Object target; // 代理对象 public Object getInstance(Object target) {  this.target = target;  // 取得代理对象  return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this); } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {  System.out.println("调用前");  Object result = method.invoke(target, args); // 方法调用  System.out.println("调用后");  return result; }}public static void main(String[] args) { // JDK 动态代理调用 AnimalProxy proxy = new AnimalProxy(); Animal dogProxy = (Animal) proxy.getInstance(new Dog()); dogProxy.eat();}
4)单例模式

全局只允许有一个实例,比如:

Runtime.getRuntime();
5)装饰器

为一个对象动态的加上一系列的动作,而不需要因为这些动作的不同而产生大量的继承类。

java.io.BufferedInputStream(InputStream); java.io.DataInputStream(InputStream); java.io.BufferedOutputStream(OutputStream); java.util.zip.ZipOutputStream(OutputStream); java.util.Collections.checkedList(List list, Class type) ;
6)模板方法模式

定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。

比如,Arrays.sort() 方法,它要求对象实现 Comparable 接口。

class Person implements Comparable{ private Integer age; public Person(Integer age){  this.age = age; } @Override public int compareTo(Object o) {  Person person = (Person)o;  return this.age.compareTo(person.age); }}public class SortTest(){ public static void main(String[] args){  Person p1 = new Person(10);  Person p2 = new Person(5);  Person p3 = new Person(15);  Person[] persons = {p1,p2,p3};  //排序  Arrays.sort(persons); }}

12.IO 使用了什么设计模式?

答:IO 使用了适配器模式和装饰器模式。

  • 适配器模式:由于 InputStream 是字节流不能享受到字符流读取字符那么便捷的功能,借助 InputStreamReader 将其转为 Reader 子类,因而可以拥有便捷操作文本文件方法;
  • 装饰器模式:将 InputStream 字节流包装为其他流的过程就是装饰器模式,比如,包装为 FileInputStream、ByteArrayInputStream、PipedInputStream 等。

13.Spring 中都使用了哪些设计模式?

答:Spring 框架使用的设计模式如下。

  • 代理模式:在 AOP 中有使用
  • 单例模式:bean 默认是单例模式
  • 模板方法模式:jdbcTemplate
  • 工厂模式:BeanFactory
  • 观察者模式:Spring 事件驱动模型就是观察者模式很经典的一个应用,比如,ContextStartedEvent 就是 ApplicationContext 启动后触发的事件
  • 适配器模式:Spring MVC 中也是用到了适配器模式适配 Controller
 

 









原文转载:http://www.shaoqun.com/a/494417.html

燕文物流:https://www.ikjzd.com/w/2229

淘粉吧怎么返利:https://www.ikjzd.com/w/1725

瀚霖:https://www.ikjzd.com/w/2345


一、单例模式单例模式是一种常用的软件设计模式,在应用这个模式时,单例对象的类必须保证只有一个实例存在,整个系统只能使用一个对象实例。优点:不会频繁地创建和销毁对象,浪费系统资源。使用场景:IO、数据库连接、Redis连接等。单例模式代码实现:classSingleton{privatestaticSingletoninstance=newSingleton();publicstaticSingle
terapeak:terapeak
gem:gem
2020年深圳世界之窗门票是多少?:2020年深圳世界之窗门票是多少?
加拿大温哥华旅游购物攻略:加拿大温哥华旅游购物攻略
最适合端午节的10大人少好玩的冷门目的地:最适合端午节的10大人少好玩的冷门目的地

百万美金案例-为什么曝光比出单更重要

百万美金案例-为什么曝光比出单更重要

今天这篇分享和平时不太一样,我要给大家分享一个消费者心理行为,和我又是如何将它运用到我的PPC广告的, 这里会拿一些我们分析出来的案例数据和大家分享。这篇文章合适慢慢欣赏,有咖啡和饼干搭配阅读最好

目前我在亚马逊Sponsored Product里面一共有着超过10种不同的策略。这里只是Sponsored Product, 不包括我在AMS里面的广告,比如说PDA。

我大部分策略都是根据两种方向制定的,一种帮助数据收集的,另一种是帮助客户转化的。其中帮助客户转化的策略里,就有着很多我这几年研究的消费者心理学的内容。今天我要讲的曝光重要性,是我的广告系统理论的几大根基之一。

偶然打开了潘多拉

在2019年3月,我在升级我的广告优化软件(Climb Analytics)时我发现。我在一个客户的账号里发现了很多没有点击只有曝光的相关词。有的只有一个点击。

出于对广告优化的极致追求,我决定把这些只有曝光,没有点击的词关闭掉。这是一个当时月销售额在25万美金的账号, 当时大概有2万个投放。于是第二天,自然出单和广告出单少了一半,ACoS上升了快30%,这到底是怎么回事啊?类似的问题也出现在了其它改动后的账号上。

投放数据的解剖

着几次意外的发现让我更向了解到曝光背后的含义。我想了很久都没有一个我认为比较有说服力的解释。于是我决定从数据角度出发去分析。

我们拉取了5个大店铺(月销售额30万以上)的数据发现,出单的词,和有曝光不出单的词大概在2/8和1/9之间。几乎我们操作过的高投放店铺都是接近这个范围。而且投放流量越宽,这个比例越明显,真正出单词比例小,但是曝光不出单词较多。

这里一个客户投放的例子,出单和只曝光达到了2.5/7.5。

出单词 - 416

曝光没有出单 - 2789


那店铺里那么多这些只曝光不出单的词,又在如何影响着我们呢?

广告牌上的高跟鞋和苹果手机

在解答这个疑问前,我想问大家一个问题。女士朋友们,想象一下如果你们走在大街上,看到一个高跟鞋的广告在路边的公交车牌上,你会买吗?也许不会吧?

好,这时你有走着走着,忽然看到前面几个路过的朋友正好拎着这个牌子的购物袋走了过来,你会不会说,咦?这个写的牌子我刚才见过咧 :D

这时你路过百货超市,正好这个牌子的导购把一张这个牌子的传单发到你的手上,还和你说现在在打折喔,店面就在你身后,这时的你是不是更想进去了解了,想比前两次看到它时?

这个就是曝光(看到产品的自然展现或广告展现)对你进一步去了解(点过率)和购买(转化率)的影响。这个影响是潜意识里的。多次对一个物品在你面前曝光,其实就是增加了你潜意识对这个产品的信任程度。即使他们现在不买,后面也会不知不觉在你想要这类产品时,让你想起来。

其实你不也是这样一开始了解到苹果手机的吗,朋友在用,街边广告还有电视广告等等,都是对你进行了多次曝光!就是潜移默化增加了你对这个品牌的熟悉程度。

曝光对购买旅程的帮助

那么这个理论又是如何影响亚马逊出单和转化率的?简单来说,正是这些高相关只曝光不出单的词,是守护了那些出单词的转化率。而且这个曝光是不收钱的!干嘛不要啊?这个就是PPC最大的好处,不像我们投放的DSP是按曝光付费的。

这个也是我们在这个30万美金拉升客户到100美金时的最注重的增长指标。

这些不出单的词都是帮你给客户进行了多次的曝光的。通过了广告曝光,他们在首页看到了你的产品的广告位和自然位,然后点击进入ASIN,即使不是你的产品,页面下面的广告位又是你。这个适合如果你是垂直品类分布,那么你这个品牌就几乎可以在这个小类目霸屏了。正是因为多次曝光能帮助买家对你的品牌加深影响,所以亚马逊PPC也有一个NTB指标。

这个我们也发现,当你有广告位置和自然位置同时出现时,这个转化率就特别明显,我们翻倍最猛的20倍翻量案例就是这个情况,当时连同广告和自然位置我们占了第一排的5个位置。


这里其中一个广告接手后可以看到我们在拉升曝光时我们的出单量也在稳步提升。

我们为了更好地控制这个出单词的ACoS,我们在2019年6月开发了一种新算法 (我们独有的PER/RES算法系统,后来发现在合适低预算和高竞争的类目表现尤为突出, 大家注意关注,我会在合适的时间完全公开这个做法!),简单说就是把出单词单独从广告内抽取出来,复制它的环境,进行再投放,把只曝光不出单的词留在原来的广告里,结果马上得到了惊人的效果

这个广告一上去按照我们分析的调价,ACoS前四天直接只有15%。原来的广告组同样的词ACoS在25%左右!10%的ACoS下降!

曝光对新品期的帮助

对于新的产品,或者是我的新客户,如果他的曝光不够,我都会去对他们开始使用我的三个AUTO做法。具体我有在这里分享过:

Blitz! 一夜回到圣诞前!3个自动广告加10个手动广告闪电式打爆排名!

这三个AUTO就是让系统出给他们的产品更多的曝光,帮助其它已经有的投放进行出单,进而触发亚马逊的飞轮效应。


因为这个,我对新广告前期一般只看曝光。如何你今天广告上去了,第二天Dashboard没显示出单不急,看看曝光有没有翻倍,如果有,那恭喜你,你不用急了。所以这个AUTO要做好,跟Listing也很有关系。如果你看这篇文章比较及时,快来参加我英国同事的分享吧:

英国Listing专家Sam免费线上教学 - 广告销量翻10倍背后的Listing写法

整体来说你有了曝光,就会有CTR,有了CTR,才会有CVR,有了CVR亚马逊就会更相信你的产品,给你更多的曝光去呈现在更多客户面前。

关于CTR的思考

那现在问题来了,如果你曝光很高,但是没有点击,这样CTR会低,对广告会产生什么其它效果吗?我们又如何去用CTR作为优化的指标呢?

内容的后续计划

我们这个PER/RES词的分配方法,就是把好的词抽出单独控制已经帮助了很多卖家。后期我会放出来具体怎么操作。希望大家关注,期待大家的实操交流


(来源:阿波罗PPC)



文章来源:https://www.ikjzd.com/home/135336

retriever:https://www.ikjzd.com/w/773

笨鸟转运:https://www.ikjzd.com/w/1550

prime day:https://www.ikjzd.com/w/131

活动树:https://www.ikjzd.com/w/1518

跨国采购网:https://www.ikjzd.com/w/2270.html

百万美金案例-为什么曝光比出单更重要

大家好!你们顶尖的PPC专家凌飞又回来啦!&lt;3:):DXD今天这篇分享和平时不太一样,我要给大家分享一个消费者心理行为,和我又是如何将它运用到我的PPC广告的,这里会拿一些我们分析出来的案例数据和大家分享。这篇文章合适慢慢欣赏,有咖啡和饼干搭配阅读最好(所以我挑了周末发啊~

2020旺季指南(三):多渠道营销组合打法,助力卖家爆单旺季

2020旺季指南(三):多渠道营销组合打法,助力卖家爆单旺季

2020年的旺季日历

2020旺季指南(三):多渠道营销组合打法,助力卖家爆单旺季

十月:市场营销与推广

虽然说"酒香不怕巷子深",但在流量和数据为王的当下,卖家如果不适当及时的对产品和店铺进行推广,就很有可能会淹没在多如牛毛的卖家中无法出单,因此,卖家需要:

与消费者建立联系

金秋十月,消费者的市场情绪是集欢乐和怀旧为一体的,因此,卖家可以以此为切入点,鼓励消费者在本月尽情地玩耍、消费,并与家人和朋友共度有意义的时光。在对产品做市场营销时,可以将产品特性与季节结合起来。卖家可以通过与慈善机构合作,突出店铺及品牌的使命和价值观,并通过对消费者给予回馈、采用讲故事的方式来做产品营销、以及突出消费者生成的内容等方式来建立、加强与消费者之间的联系。

有礼推广

将品牌与季节特质联系起来会让消费者更愿意在店内消费。通过促销策略能使主动消费更进一步,并增加消费者主动分享店铺给亲朋好友以及复购的几率。以下是卖家可以采用的一些促销策略:

\消费者完成消费后可赠送其一张代金券或礼品卡,在下次消费时可以使用,以此提高消费者复购率

\在产品包装及赠品上多花心思,加入一些节日元素和季节限定元素

\为消费者提供按小时或天计算的限时优惠,激励其进行消费

\在结账环节添加一个捐赠按钮,让消费者能够回馈社会

\通过推荐或忠诚度计划,给符合条件的消费者提供独家折扣

整合营销渠道

卖家可以通过整合营销渠道来使促销活动效益最大化。卖家可以挖掘产品的季度性/节日性的故事,并通过各个社交媒体渠道散发出去,培养消费者的品牌参与度。首先,卖家需要为品牌大本营——也就是卖家店铺创建核心信息,进行文案制作,引起消费者的共鸣,其次,在完成以上工作的基础上,卖家可以尽己所能的为消费者提供像《节日送礼指南》这样额外的内容资源。这么一来,只要一锁定了客户群体和客源,卖家就可以通过其他渠道将活动内容高效地传播出去。

Burrow电子商务和数字营销副总裁Alex Kubo表示,"消费者已经对黑五网一这样一年中为数不多为消费者"打骨折"的促销日有了"基因记忆",作为一个独立站卖家,我们要做的是提升这种促销体验的基础上,创造出真正独特的促销活动,既不亏本销售,又能为消费者提供足够多的选择。"

-社媒推广

卖家可以鼓励消费者主动产出的内容,并站在消费者的视角去看待店铺举行的节假日活动。卖家也可以和KOL合作,输出节日相关内容(可以把节日记忆作为营销重点),除此之外,卖家还可以通过Instagram或Facebook Live为店铺及品牌吸粉。卖家需要重视的点是,现阶段有很多消费者是通过社交媒体与卖家沟通的,所以卖家一定要做到在24-48小时内回复消费者咨询,这样才能提高粉丝留存率。

-付费广告

虽然产品为王没错,但付费广告同样可以在帮助卖家在接近饱和的市场中提升品牌知名度。Facebook和Instagram是不错的广告推广平台,因为其可以为卖家带来搜索引擎营销,并优化整体转换率,从而提升店铺在谷歌等搜索引擎的排名。除了利用免费的一些推广平台,付费广告也是不错的选择。在谷歌投放广告是付费渠道中值得一试的方法,因为谷歌的流量极大,可以为店铺和产品页面带来较为理想的推广引流效果。同样,其他能进行全渠道投放的社媒平台和网站也值得卖家勤加利用。Logical Position、Google Shopping by Sales & Orders、Facebook & Google Easy Ads by ROI Hunter以及Google Ads Keyword Genius等都是业内口碑较好的工具。

-电子邮件

最成功的电邮营销莫过于能吸引消费者眼球,刺激其购买欲。电邮营销同时也是一个构建个性化营销手段的好机会。卖家可以通过像Omnisend、Klaviyo或Mailchimp这样的电邮营销工具,将漂亮的电子邮件模板与动态折扣码、营销活动定位及跟踪等相结合,以创造性的方式来告知消费者店铺最近的产品上新和促销活动,以此提高店铺点击率和转换率。

-短讯

卖家可以利用SMS来加强与消费者之间的联系。现阶段也有许多品牌利用SMS营销来执行预先建立的框架,特别是在购物车放弃、订单和运输确认、个性化奖励、限时促销等方面,SMS能帮卖家大忙。

-搜索引擎优化

为提高内容表现,卖家可以专注于优化搜索引擎

\确保所在平台配备了行业领先的SEO工具

\使用Google Analytics和Google Search Console评估网站所需的加载时间和整体性能

\敲定假日的相关关键词

\使用自定义URL、引人注目的页面标题和描述,为黑五网一的优惠活动创建登陆页面

\将SEO和其他媒体渠道整合,做付费搜索和社交媒体版块

另外,如果卖家想把这项工作外包出去,可以考虑与像Coalition Technologies这样提供专业的SEO、网页设计、点击付费(PPC)、社交媒体、短信和电邮营销策略的专业公司合作。

BigCommerce SEO和内容高级营销经理Kevin Jones表示,"在黑五或网一前尽早针对不同利基市场上线节日特定的店铺页面可以引来高购买意向的流量,在确定流量最高的利基市场后,卖家可以获取该市场消费者的电子邮箱,以便发送营销邮件,提高转化率。

营销推广相关注意事项

\启用礼品卡功能

\在进行推广营销时,加入季节性元素,以增强推广内容性

\在推广前,敲定推广策略和方式

\在营销推广时,确保能充分利用每个渠道,整合所有流量

\使用SEO策略以提升销售业绩

来源:MorketingGlobal

文章来源:https://www.ikjzd.com/home/135410

邮政电话:https://www.ikjzd.com/w/202

tchibo:https://www.ikjzd.com/w/1928

myyearbook:https://www.ikjzd.com/w/726

lastpass:https://www.ikjzd.com/w/846

斑马物流:https://www.ikjzd.com/w/1316

2020旺季指南(三):多渠道营销组合打法,助力卖家爆单旺季

2020年的旺季日历十月:市场营销与推广虽然说"酒香不怕巷子深",但在流量和数据为王的当下,卖家如果不适当及时的对产品和店铺进行推广,就很有可能会淹没在多如牛毛的卖家中无法出单,因此,卖家需要:与消费者建立联系金秋十月,消费者的市场情绪是集欢乐和怀旧为一体的,因此,卖家可以以此为

宝藏站点捂不住了!北美这两大蓝海站点即将起飞!

宝藏站点捂不住了!北美这两大蓝海站点即将起飞!

亚马逊北美站点包含美国、加拿大、墨西哥三个站点!也是很多跨境电商卖家掘金海外的第一站。

北美站点的优势不必多说,想必每个卖家都能列举几条:

✦流量巨大,优质Prime会员多;

✦天生好货,中国制造REAL受欢迎;

✦亚马逊物流(FBA)竞争力强、营销资源多样化

今年亚马逊Prime Day期间中国卖家在加拿大和墨西哥站的大获成功,竟让这两个低调的蓝海站点迅速升温。

如果你是正准备入驻美国站的卖家或你已经开通美国站点, 不妨来探索一下加拿大站和墨西哥站,轻松拓宽两个站点,提升销量,何乐而不为!

加拿大站

体量大收入高会花钱,投资回报高的宝藏站点!

加拿大消费者互联网基建完善,热爱网购,且年收入高,消费力强,这样的创业机会和用户怎能让卖家不爱?

偏爱亚马逊,网购热情高涨

亚马逊网站是加拿大主流的电商网站,能够触达半数以上的网购用户,而且亚马逊用户在网站上的活跃度也特别高,且偏爱移动端进行购物。可以说,在加拿大做电商,就选亚马逊!

商机无限,高回报

另外,从往期数据来看,在亚马逊所有站点中,加拿大ACOS(广告投入产出比)都相对较低,这意味着在加拿大站投放广告的投资回报比更高。机会巨大,也不用烧钱烧到心痛,这样的站点,你还不来?

选品周到,爆单不愁

当然,入局一个新站点之前,一定先要了解这个国家的电商消费习惯和选品热点。毕竟7分选品,3分运营。选品选对,销量翻倍!

加拿大站点热销品类包括:

家居/电子产品/厨房用具/无线产品/PC/运动/玩具/相机/服饰/办公用品

墨西哥站

竞争小、增长快,上车的卖家直呼真香!

热衷网购,信赖亚马逊

得益于良好的网民基础,亚马逊墨西哥站(Amazon.mx)发展迅速, 其发展速度甚至比亚马逊加拿大站(Amazon.ca)更快。

特别值得卖家欣慰的是,墨西哥站点目前竞争比较小,仍有很大的增长机会。

用户习惯近美国站,运营物流可借鉴

征战过美国等成熟站点的卖家,完全可以将很多工具运用到墨西哥站,并能获得不错的收效。另外,墨西哥站点的畅销类别,运营和物流以及购买趋势与Amazon.com非常相似,可借鉴经验不少。

抓住蓝海商机,收获投资回报

跟加拿大站点一样,作为一个蓝海站点,墨西哥的ACOS也相对较低,投放广告的投资回报比就相对更高。

墨西哥站点热销品类包括:

电子产品/PC/相机/厨房用品/家居/无线产品/工具/服饰/美容产品/健康护理产品

亚马逊物流远程配送计划

助力北美新老卖家

美国站FBA库存直送加拿大和墨西哥

借助亚马逊物流远程配送计划(Remote Fulfillment with FBA),卖家可以利用储存在美国亚马逊运营中心的FBA库存,配送加拿大和墨西哥的销售订单,省去同时管理三个站点库存、跨境运输,及进口关税等事项。

老卖家·跳出多站点物流难题

即便物流相对于储存在本地会稍慢,这一计划的上线仍让不少美国站卖家摩拳擦掌跃跃欲试,因为卖家可以不用费心了解加拿大和墨西哥站点进口关税和跨境物流的法规,就能轻松拓展北美的销售业务,让很多美国站点的卖家直呼真香!

尤其对于在美国FBA仓有充足库存的卖家而言,无疑是瞌睡遇到了枕头。让卖家在不够了解加拿大和墨西哥站点的情况下,可以通过对美国货存的分配,试水加拿大和墨西哥。

新卖家·打通三国一步到位

如果你是计划入驻北美站的新卖家,同时开通加拿大和墨西哥,在这个物流计划下,符合条件的美国FBA库存可以直通加拿大和墨西哥。如果加拿大或者墨西哥的客户下单,可以使用美国FBA的货存进行供货,可谓提升销量的神器!

亚马逊物流远程配送计划的优势:

库存共享,省钱省力

商品带有Prime标记,快速接单

测款神器,了解新站点


来源:亚马逊全球开店


文章来源:https://www.ikjzd.com/home/135399

csa认证:https://www.ikjzd.com/w/904

刘小东:https://www.ikjzd.com/w/1853

yiqu:https://www.ikjzd.com/w/210

epa认证:https://www.ikjzd.com/w/1769

reverb:https://www.ikjzd.com/w/1273

宝藏站点捂不住了!北美这两大蓝海站点即将起飞!

亚马逊北美站点包含美国、加拿大、墨西哥三个站点!也是很多跨境电商卖家掘金海外的第一站。

2020年11月29日星期日

TikTok广告投放丨商品限制和素材要求

TikTok广告投放丨商品限制和素材要求

大家好,我是嘉伟KiahWee,今天给大家分享一个资料,关于TikTok的广告投放,商品准入和素材的要求。强烈建议收藏。


广告核流程:

广告审核通常会在 24小时内完成,但特殊情况下可能需要更长的时间。

广告审核流程涉及审查所宣传的产品/服务、广告标题、文本、图片、音频、视频、年龄/地区定向和落地页。


3.1 落地要求

为了确保用户跳转到落地页后的良好体验,落地页必须能正常运行。

a. 广告不得将用至无法正常运行的落地

❌存在错误或已过期的落地页,或是尚在建设中的网站。

❌网页内容不完整的落地页。

❌不适配移动设备的落地页。

❌禁用浏览器后退按钮的落地页。

❌自动将文件下载到用户手机上的落地页。

❌要求用户下载其他程序或输入个人信息才能访问主要内容的落地页。

✅广告将用户引导至Google Play商店或App Store 以下载相关App,或引导至产品或服务的官方网站以及宣传产品的页面。

提醒:请使用广告定向地区的网络检查落地页。

b. 广告不得在落地品。 

c. 电商广告必须在落地页上显示有效信息。当地法律规定的信息包括但不限于:

广告主的联系方式、公司名称、公司地址、营业执照、当地货币价格示、条款及条件、发货信息、私政策、退政策和退款政策。

3.2 广告一致性

a. 广告素材(广告标题、广告文本、广告片、广告视频、广告CTA)必与落地品保持一致。

❌广告视频中宣传的产品是A而落地页上的产品是B。

❌广告视频中宣传的产品品牌是A而落地页上的产品品牌是B。

b. 广告标题需要与相的广告片或广告视频相符。

❌广告标题为"创作自己的卡通形象"而相应的广告视频却显示"认识未来的自己"。

❌广告标题为"最高五折优惠"而相应的广告图片却显示"最高七折优惠"。

c. "显示名称"需要与落地上所宣品一致。"App名称"需要与落地示的App名称一致。

❌落地页广告:"显示名称"是AA润肤液,落地页上宣传的产品是AA洗发水或 CC润肤液。

❌App下载广告:"App名称"是ABC,落地页上显示的App名称是XYZ。

3.3 广告

a. 广告定向地区为单个地区,广告"设置语言"为单一语言:广告素材和落地页的语言应与设置语言或广告定向地区所接受的语言一致

b. 广告定向地区为单个地区,广告"设置语言"为多种语言:广告素材和落地页的语言应与广告定向地区所接受的言一致。

c. 广告定向地区多个地区,广告"设置语言"为单一语言:广告素材和落地页的语言应与"设置语言"或所有广告定向地区均可接受的言一致。

d.广告定向地区多个地区,广告"设置语言"为多种语言:广告素材和落地页的语言与所有广告定向地区均可接受的语言一致


3.4 广告标题/文本、片和视频

a. 广告标题/文本中不得包含拼写或错误导致用不佳,也不得在文字中用符号。

❌使用不规范的拼写或语法,例如使用"Rrom"而不是"From"。

❌广告标题的文字过多或花哨地使用大写字母、空格、数字、符号或标点。

b. 广告片不得包含模糊、不清晰或无法识别视觉元素,或是使用方框/马赛克故意遮挡部分图片

❌广告图片显示不完整的文本或无法辨认的文本。

❌广告图片包含模糊或被遮挡的第三方水印。 

c. 广告片和视频是清晰可辨的高分辨率片或视频 

d. TikTok上的广告视频时长介于5 秒到60秒之

e. 广告视频使用准的视频尺寸: (9:16)/方形 (1:1)/横向 (16:9)

f. 广告音不得使用低(如包含不清晰或无法辨的声音),且广告中出的信息必可理解。

4. 禁止的内容

4.1 社区

广告必遵守TikTok 服务条款社区

4.2 非法服和活

广告不得展示、推广或宣在特定司法区被视为非法的服或活

4.3 毒品和相关用具

广告不得展示或宣非法或消遣性毒品,或与毒品使用相关的助用具,例如烟、卷烟送装置。与毒品相关的用具,例如水烟、卷烟和汽化注装置。

4.4 武器、弹药和炸

广告不得示或宣在真生活中使用危的武器、弹药或爆炸物,包括但不限于支、炸、炸或旨在造成人员伤害的其他物品。

4.5 烟草品和吸烟

广告不得展示或宣烟草、烟草相关品(例如雪茄、烟斗、卷烟子烟)或真生活中的吸烟相关行,包括但不限于模仿吸烟作的各

4.6 zhengzhi内容

4.7 junshi

4.8 性内容

广告不得包含基于种族、民族、国籍、性取向、性别认同、宗教信仰、年、家庭状况、身体状况或遗传病症而针对某个受保群体、个人或组织的仇恨言

4.9 成人内容

a. 广告不得展示或宣传违禁性成人品或服的使用。

b. 广告不得展示含有分性暗示或性挑逗的性活或性行

c.广告不得展示全裸或部分裸体,或暗示性裸体。

d.广告不得展示分皮肤暴露的男性女性,即使其本并非明确的性暗示。

e. 广告不得突出展示个人的敏感身体部位(如臀部)。

4.10

a. TikTok许可的情况下,广告不得展示TikTok相关元素。

❌未获得TikTok许可的情况下展示TikTok Logo的广告。

❌未获得TikTok许可的情况下含有"TikTok畅销"描述的广告。

❌未获得TikTok许可的情况下模仿TikTok挑战赛界面的落地页。

❌未获得TikTok许可的情况下使用包含"#"符号的广告标题。

b. 广告不得展示侵犯或反任何第三方利的内容,包括但不限于商志、Logo、品牌、服务标志、商号或其他个人或利。

❌  以可能会误导用户认为与广告主的品牌存在隶属关系的方式,展示第三方名称的广告。

❌  展示未获得允许的情况下拍摄/录制/跟拍某人的App或监控摄像机或任何软件/设备的广告。

c. 广告不得展示或宣假冒商品。

❌展示伪造文件(例如伪造的学位证、护照或移民文书等)的广告。

❌展示假货或未经授权的真品复制品的广告。

4.11 误导性的声

a. 广告不得包含品效果夸大其的功效承

❌  乳液:马上拥有纤细双腿。

❌  金融产品:10秒赚钱。

❌  宣称能治愈不治之症的声明。

❌  通过"使用前后"效果对比,展示使用某种面霜后皱纹消失。

b. 在无相关据的情况下,广告不得示夸大其的描述或绝对性声明。

❌世界排名第1的音乐App。

❌ 100%天然草本面霜。

c. 广告不得包含与其他品牌的比。

❌本产品比ABC网站便宜XX。

d. 广告不得包含无效按、操作提示或文本(描不支持功能的按/操作提示/文本)。

❌上划操作只会引导用户进入下一个视频而非落地页,广告中却展示"上划了解更多"的文本。

4.12 骇人听闻的内

a. 广告不得展示感到惊恐的血腥或恐怖/实图像。

❌犯罪现场或事故图片。

❌恐怖的场景或血腥的图片。

b. 广告不得包含致用户产生不适体的令人反感画面。

❌含性液、人类或动物排泄物的视觉元素。

❌显展示从面部毛孔挤出污垢或从下水道中掏出头发的视觉元素。

c. 广告不得包含展示对动物犯罪、使用度暴力、虐待或无端残害的内容。

❌展示真实血腥搏斗场景的广告。

❌展示虐待动物(例如斗鸡或斗狗)的广告。

d. 广告不展示在没有安全保障措施的情况下行的危

e. 广告不得包含激烈言或侮辱性的行

4.13 数据收集

广告必遵照当地法律定,安全地收集和理广告中收集到的任何个人信息,并保数据被收集或理的任何个人均可以私政策。

5. 受限制的内容

5.1 酒精

a. 广告不得示酗酒或不负责任地酒。

b. 在某些特定的广告定向地区,广告不得示或宣品牌名称、酒吧景或真景。

5.2 赌博和博

a.广告不得展示、推广或宣线现博或出的模拟赌博,且不得描或鼓励博相关行

b.在某些特定的广告定向地区,广告不得展示、推广或宣传现金博彩或体育/赛马

5.3 宗教和文化

a. 广告不得展示涉及或针对宗教建筑、宗教符号的不敬行,或是不同宗教的比。

b. 广告不得展示与广告定向地区当地文化相冲突的内容。

5.4 未成年人保

a. 广告不得展示、推广或宣涉及未成年人的不当行,例如未成年人酒或未成年人吸烟。

b. 广告不得展示皮肤度暴露的未成年内容。

c. 广告不得未成年人施加影响,鼓励其参加不合适的活,例如购买彩票。

d. 在某些特定的广告定向地区,广告不得示或宣传仅针对未成年人具有吸引力的/

5.5 体重控制/管理:仅适用于加拿大/欧洲/美国地区。

a. 广告不得宣不健康的身体形象或者与食物的不健康关系。

b. 广告不得包含18岁以下的人

c. 节食或其他体重管理产品的广告必须准备有责任感的声明

避免做出只依赖产品,不需要控制食或锻炼就可以减重的承

避免夸使用效果;

避免做出减重是容易的,或是有保的暗示。广告不得提及特定的卡路里,或者特定的体重减量。

 
来源:TK增长会

文章来源:https://www.ikjzd.com/home/135297

美菜网:https://www.ikjzd.com/w/1874

acedota:https://www.ikjzd.com/w/2070

母婴团购网:https://www.ikjzd.com/w/716

抢注商标:https://www.ikjzd.com/w/1053

tenso:https://www.ikjzd.com/w/1552

TikTok广告投放丨商品限制和素材要求

想自己的名字见于各大主流媒体吗?想主编带队旅行住五星级酒店吃海鲜自助公司报销吗?想上班一改死气沉沉氛围欢声笑语嬉笑怒骂皆成文章吗?想升职加薪当上总经理出任CEO迎娶白富美走向人生巅峰吗?……那就来雨果网吧。我们现在需要采编、广告销售和客服三类人员。作为一