iAd框架详细解析(二) —— ASM归因(一)

版本记录

版本号 时间
V1.0 2018.10.23 星期二

前言

iAd框架在应用的用户界面的专用部分显示广告。 当用户查看或点击广告时收到收入。接下来几篇我们就一起看一下这个框架。感兴趣的可以看下面几篇文章。
1. iAd框架详细解析(一) —— 基本概览(一)

基本理解

1. 什么是ASM

ASM是App Store Serach Marketing的简称,即苹果应用商店搜索竞价广告市场,苹果搜索广告(Search Ads)。与ASO(App Store Optimization)相对应。ASO所指关键词排名搜索优化,而ASM则是指官方广告竞价优化

2016年6月,苹果在WWDC大会上宣布推出竞价搜索广告业务,2016年9月29日推出了iOS Search Ads,10月初这款业务在美国上线。苹果官方数据显示,超过65%的App下载量来自于App搜索。

据了解,2017年 4月19日星期三正式新增覆盖三个国家,分别是英国、澳大利亚和新西兰,现在ASM开始登陆国内市场。2018年6月,日本、韩国、德国、法国、意大利和西班牙的竞价广告投放。

2. 广告展示地点

App Store

3. 影响广告展示的主要因素

根据苹果的官方文档说明,ASM竞价搜索广告展示的关键因素有两个,分别为相关性和投放价格。在投放过程中,苹果采取相关性优先的原则。如果相关性不达标,即使出价高也不能投放;如果相关性达标,出价高的APP获得广告展示的机会。

4. 计费和展示

苹果在iOS Search Ads的收费方式是CPT(Cost Per Tap),即按照点击收费。此外,苹果的竞价按照预付费的方式进行,没有最低消费门槛、预算门槛和时间门槛。其展现方式为淡蓝色背景+Ads标识,这条广告会在关键词排名的第一位,具体展示方式还会分为有App截图和无App截图这两种方式。

5. 展示次数

苹果只有一个广告位,如果有多个广告主投放同一个关键词,符合相关性之后,苹果是轮流展示大家的APP。ASM投放过程中最在意的便是关键词的展示量问题,原因很简单,因为转化的多少是直接由关键词的展示量决定的,当展示量高的同时,不出意外的话,转换势必也是水涨船高。这是不可置疑的。

6. 我们需要做什么?

1)研发方面

这个就需要我们工程师在项目中增加ASM相关的代码,就是用框架iAd,具体怎么做,后面会详细说明。

下面主要说一下非研发或者说运营上我们需要做什么和注意什么。

2)不超过总支出和每日支出限额

苹果还没有什么很好的方式来确保竞价广告系列不会超出预算,但做为苹果ASM竞价投放师来说,你保持广告系列预算的最佳状态是确保广告系列不会超出固有的预算。

从另一方面来说,在预算范围内进行投放也是保持ASM竞价最佳状态的最简单方法之一。

3)提高您最高CPT出价

如果你使用5美元的CPT出价,可你的竞争对手却愿意以10美元进CPT的出价,那么你的竞争对手将会获取更多的展示,而你的却不会(假设TTR,相关性等同的情况下)。

所以,提高最高CPT出价是一个在ASM投放中很简单的故障排除策略。这里大家要注意的是,我们实际所支付的费用,通常低于您的最高CPT出价。

4)展开匹配类型

完全匹配是最严格的类型,其次是搜索匹配,如果您正在按照完全匹配类型进行出价,那么自然会获得更多的展示次数。建议大家将搜索匹配目标与您的关键字定位条件分开放置在单独的广告组/广告系列中。

5)确保TTR尽可能高

关键字的TTR的最主要因素是最高每次点击费用的出价决定是否显示搜索印象。而提高TTR的一些常规方法有:

优化应用细节(截图、应用图标、评论、描述的前几行)

使用完全匹配类型。

添加具有高展示次数和低TTR的搜索字词作为否定关键字(适用于搜索匹配或广泛匹配关键字)。

6)关键字

  • 将搜索字词添加为关键字
    • 只是因为您使用搜索匹配或广泛匹配类型关键字匹配搜索字词,但并不意味着你能够在搜索引擎中获取足够的流量。其中通过添加搜索字词作为关键词,可以有效的告之苹果极其广告投放引擎,你希望获得与该关键字相关的流量,这种方法可以提高关键词的展示率。
  • 确保您的关键字不被否定关键字阻止
    • 添加否定关键要保持投资回报率高的话,重要的是要提高TTR。大家要格外注意的是,否定关键字将默认认为广泛匹配类型(如果没有指定)。那么,如果你的关键字是‘汽车游戏’,并且将汽车添加为广泛匹配,那么便会阻止关键字的展示广告。
  • 不要急着撤回所投放的关键字
    • 如果你的关键字展示量挺好,但突然转化却有问题时,不要立即撤回,ASM竞价师可以做一个适当的调查,比如看我们的竞争对手是否保持了此关键字。另外可以对比关键词的一周趋势,如果连续几天所呈现在的表现趋势是不佳,那么这时候我们果断动手就可以了。
  • 选择有竞争度的关键词
    • 大家在选择关键词是,选择竞争度高的关键词,虽然出价的广告主多,价格也会高。但是,带来的点击量会很高。

ASM和ASO的主要区别

1. 定义

ASO是由英文“AppStoreOptimization”缩写而来,意为“应用商店搜索优化”。指的是APP在应用商店进行搜索入口的数量及搜索结果排名提升的过程,帮助开发者提升APP在应用商店的流量和下载转化率,从而获得更多的用户。

ASM是由英文“App Store Search Marketing”缩写而来,意为“苹果应用商店搜索竞价广告市场”。指的是苹果官方广告位竞价。

2. 操作手段

ASO优化内容包括:榜单优化、搜索优化

榜单优化

a. 刷榜:机刷/真机刷/积分墙都是ASO优化的方式之一,核心原理都是在于ID账号进行指向性行为,从而影响曝光效应。一般通过一段时间内的大量下载来达到提升榜单排名的效果,从容获得刚好的榜单展示位置。

b. 更换榜单类别:开发者上传/更新应用时自主选择榜单分类。选择更为合适的分类,参考流量与竞争,可以有效天生榜单排名。

c. 付费转免费:分为限时免费和长期免费两种,前者更为常见。虽然没有冲榜更为直接有效,但优化成本低,在一定程度上也对榜单优化有所帮助。

搜索优化

a. 关键词优化:关键词覆盖数是AppStore展示量的基础,覆盖越多,曝光的可能性越大。

b. 关键词排名优化:搜索下载量是影响关键词排名最重要的因素,表示app被首次下载的次数。用户活跃及评论也是影响关键词排名的因素,但权重较低。

ASM 优化内容包括:关键词优化、相关性优化

关键词优化

ASM是关键词优化师开启一个模糊搜索,覆盖到同行业相关词的搜索,都会展示在里面。也包括复数形式、错字、相似字的纠正等。

相关性优化

不但要优化应用元素,也要优化搜索后数据。包括:下载转化、激活转化、使用时长、留存。

苹果对于相关性的判断是通过APP的元数据(应用提交时标题、关键词、描述等)和用户行为(搜索之后的点击、转化率、留存、活跃等)。

相关性是APP能否进行广告投放的第一原则,如果相关性不达标,即便出再高的价格广告都不会被投放;而在相关性达标的情况下,出价高的APP则能投放成功。

3. 展示

ASO优化后所得的排名第几就是第几,排位不变,展示次数固定。

ASM关键词搜索结果页面最上方,有明显的广告标识。不同人看到的Ad不一样,但是永远在第一位,展示的次数也不同。

4. 安全性

ASO苹果喜怒无常,千万别违反相关法律法规。铤而走险的CP选择机刷方式来提升搜索排名,一旦被苹果发现或者遇到苹果算法调整,就会面临清榜甚至APP下架风险。

ASM是苹果亲生的,当然不会遭遇下架风险。“正宫娘娘”无疑。

5. 计费

ASO计费

技术型的ASO是免费的,而且带来的流量是自然流量,但背后花费的大量努力和时间却是实实在在的成本。但积分墙和机刷就需要一定成本,跟市场预期和预算相关。(当然是付给渠道商,人家也得吃饭呐)。

ASM计费

通过开发者设置的CPT按点击收费设置的价格和第二位出价竞价原则来判断。(当然可以通过优化相关性来降低出价成本,但不管怎么样,钱都是给苹果爸爸的)。


归因流程

下面我们就看一下使用ASM归因的流程,主要就是如下图所示:

如果你使用AppsFlyer这个SDK,你就更会深刻的理解移动归因和广告运营方面的原理了。不过不管你用的是什么SDK,数据都要来源于苹果。这个ASM是苹果亲生的,所以不会有集成三方的乱七八糟的问题。


开发

下面我们就看一下如果使用ASM需要我们开发做什么或者说增加修改什么逻辑。

  • 1) 将 iAd framework 添加到 Xcode 项⽬目⽂文件。

在实现归因逻辑的程序⽂文件中引⽤用 iAd headers:

#import<iAd/iAd.h>
  • 2) 请求 Search Ads 归因,将归因结果使⽤用在你的业务中
// Check for iOS 10 attribution implementation
if ([[ADClient sharedClient]
respondsToSelector:@selector(requestAttributionDetailsWithBlock:)]) {
    NSLog(@"iOS 10 call exists");
    [[ADClient sharedClient]
requestAttributionDetailsWithBlock:^(NSDictionary *attributionDetails,
NSError *error) {
        // Look inside of the returned dictionary for all attribution
details
        NSLog(@"Attribution Dictionary: %@", attributionDetails);
    }];
}
  • 3) 返回数据处理

下面我们就看一下返回的数据处理。

// 定义错误代码
typedef NS_ENUM(NSInteger, ADClientError) {
    ADClientErrorUnknown = 0,
    ADClientErrorLimitAdTracking = 1,
};
// 调⽤用归因API
[[ADClient sharedClient] requestAttributionDetailsWithBlock: ^(NSDictionary *attributionDetails, NSError *error) {
if(!error) {
// 归因成功;数据不不再变化,可记录状态,该设备不不再调⽤用此API。
// 建议将attributionDetails数据原样发送到您的服务器器存储,在服务端做解析 return;
    }
    if(error.code == ADClientErrorLimitAdTracking) {
// 归因错误;数据不不再变化,可记录状态,该设备不不再调⽤用此API。 // 设备启⽤用了了【限制⼴广告跟踪】。不不能获取到归因详情。
return;
}
// 任何其他归因错误,您需要在合适时机再次调⽤用本接⼝口。
// 可以是在本次会话,或者APP下次被启动时。 }];

下面我们就主要看一下对返回的数据的处理。

1. 成功的处理

以下三种情况,说明当前⽤用户已成功被归因,数据不不会再变化,⽆无需再调⽤用接⼝口。

  • 来⾃非Search Ads(自然安装、其他推⼴广渠道)
{
  "Version3.1": {
    "iad-attribution": "false"
  }
}
  • 来⾃Search Ads
{
  "Version3.1": {
    "iad-attribution": "true",
    "iad-org-name": "Tinder-201711",
    "iad-campaign-id": "3138493",
    "iad-campaign-name": "Tinder",
    "iad-purchase-date": "2016-11-30T01:17:41Z",
    "iad-conversion-date": "2016-11-30T01:17:41Z",
    "iad-conversion-type": "Download",
    "iad-click-date": "2016-11-30T01:17:35Z",
    "iad-adgroup-id": "3138519",
    "iad-adgroup-name": "Tinder",
    "iad-keyword": "dating app",
    "iad-creative-id": "1234567890",
    "iad-creative-name": "CreativeName",
    "iad-lineitem-id": "3138519", //iad-adgroup-id
    "iad-lineitem-name": "Tinder" //iad-adgroup-name
} }
  • 测试数据
{
  "Version3.1": {
    "iad-attribution": "true",
    "iad-org-name": "OrgName",
    "iad-campaign-id": "1234567890",
    "iad-campaign-name": "CampaignName",
    "iad-purchase-date": "2016-11-30T01:17:41Z",
    "iad-conversion-date": "2017-12-09T02:14:41Z",
    "iad-conversion-type": "Download",
    "iad-click-date": "2017-12-09T02:14:41Z",
    "iad-adgroup-id": "1234567890",
    "iad-adgroup-name": "AdGroupName",
    "iad-keyword": "Keyword",
    "iad-creative-id": "1234567890",
    "iad-creative-name": "CreativeName",
    "iad-lineitem-id": "1234567890",
    "iad-lineitem-name": "LineName",
  }

下面看一下返回字段说明

2. 错误的处理

  • ADClientErrorUnknown

应在合适时间再次调⽤用接⼝,由于Search Ads后台数据统计延时。

code = 0
description = "Unable to retrieve attribution details"
  • ADClientErrorLimitAdTracking

无需再调⽤用接⼝,由于⽤用户在设备上中启⽤了【限制⼴广告跟踪】(设置-隐私-⼴广告),⽆无法获得归因数据。

code = 1
description = "Limit Ad Tracking is enabled for this device"   

下面看一下这几年返回数据的演变

 
//201611
{
  "Version3.1": {
    "iad-attribution": true,
    "iad-org-name": "Light Right",
    "iad-campaign-id": 15292426,
    "iad-campaign-name": "Light Bright Launch",
    "iad-conversion-date": "2016-06-14T17:18:07Z",
    "iad-click-date": "2016-06-14T17:17:00Z",
    "iad-adgroup-id": 15307675,
    "iad-adgroup-name": "LightRight Launch Group",
    "iad-keyword": "light right",
    }
 }

//201708
{
  "Version3.1": {
    "iad-attribution": true,
    "iad-org-name": "Light Right",
    "iad-campaign-id": 15292426,
    "iad-campaign-name": "Light Bright Launch",
    "iad-purchase-date": "2016-10-14T17:18:07Z",  //NEW
    "iad-conversion-date": "2016-10-14T17:18:07Z",
    "iad-conversion-type": "Download",  //NEW
    "iad-click-date": "2016-10-14T17:17:00Z",
    "iad-adgroup-id": 15307675,
    "iad-adgroup-name": "LightRight Launch Group",
    "iad-keyword": "light right",
    "iad-keyword-matchtype": "Broad"  //NEW
    }
 }

//201805
{
  "Version3.1": {
    "iad-attribution": true,
    "iad-org-name": "Light Right",
    "iad-campaign-id": 15292426,
    "iad-campaign-name": "Light Bright Launch",
    "iad-purchase-date": "2016-10-14T17:18:07Z",
    "iad-conversion-date": "2016-10-14T17:18:07Z",
    "iad-conversion-type": "Download",
    "iad-click-date": "2016-10-14T17:17:00Z",
    "iad-adgroup-id": 15307675,
    "iad-adgroup-name": "LightRight Launch Group",
    "iad-keyword": "light right",
    "iad-keyword-matchtype": "Broad",
    "iad-creative-id": "456093",  //NEW
    "iad-creative-name": "Nature Images"  //NEW
    } 
} 

参考文章

1. 很强势!关于苹果ASM你应该了解这些
2. ASO和ASM到底是怎么回事?两者有什么区别?
3. https://searchads.apple.com/help/measure-results/#attribution-api
4. https://searchads.apple.com/cn/advanced/help/measure-results/#attribution-api (中⽂简体)
5. https://searchads.apple.com/v/advanced/help/b/docs/pdf/attribution-api.pdf

后记

本篇主要讲述了ASM归因,感兴趣的给个赞或者关注~~~

推荐阅读更多精彩内容