苹果搜索广告ASA笔记+数据归因+ASO+ATT+IDFA

这是我参与更文挑战的第25天,活动详情查看: 更文挑战

前言

这近写的连写的三篇“苹果搜索广告ASA笔记” 文章都被掘金盯上,关进小黑屋了。就连第一篇文章已经通过的,今天又被关进去的,到现在也不明白什么原因;

这里声明下绝对没有任何敏感的言论,第二篇不通过说的是我封面图中的地图有敏感地区显示不全,真的是没有想到!

再有发现有小伙伴留言,发现对ASA理解存在偏差,应该跟我拆成三篇的原因有关系;这次决定把他们合并成一篇,顺便把一些不重要的内容做一下精简;

什么是 ASA?

**ASA 即苹果官方搜索广告 Apple Search Ads。**ASA是一种付费的App Store推广方式,可使App出现在苹果商店搜索结果的第一位,以此获取用户。与其他展示位置相比,App Store搜索结果页首的效果更为出色。而且未来苹果可能会提供更广泛的广告服务,不再是单纯的竞价广告,广告客户可以从更多的广告展示位投放广告,比如苹果自带地图、新闻、股票和safari等应用程序。

ASA的展示形式

ASA 广告位与 App Store 自然结果大致类似,当我们在 Apple Search Ads 后台投放某款 App 时,广告有机会在 App Store 搜索结果第一名展示,从而吸引精准的搜索用户下载该款产品。

广告位会展示 App 的 icon、标题、副 标题、评分、文案/截图/视频素材,以蓝色背景与自然结果区分(新增)。

![截屏2021-06-23 下午9.54.54](/Users/liaoyp/Library/Application Support/typora-user-images/截屏2021-06-23 下午9.54.54.png)

ASA的优势

截屏2021-06-23 下午10.53.38.png

用户精准

展示与下载均由用户搜索行为触发,用户需求更明确!

高转化

用户下载意愿强,且所有广告均在 App Store 内展示,无额外跳转环节。

数据更多

苹果竞价广告后台可以看到每个关键词的展示、点击、下载、转化等数 据,接了归因 API 还能看到激活、活跃、付费等数据,测算 ROI 更方便!

流量安全

ASA 是苹果官方渠道,因此不会出现大量新增导致降权、验证等异常。

ASO 和 ASA 的异同与影响

ASA ASO
定义 Apple Search Ads 苹果搜索广告,广告主要投放AppStore, 属于关键词广告 App Store Optimization ,苹果商店优化,指的是APP在应用商店进行搜索入口的数量及搜索结果排名提升的过程,帮助开发者提升APP在应用商店的流量和下载转化率,从而获得更多的用户
展示位置 App Store 搜索结果顶部第一位展示,可以统计具体展示次数 关键词自然排名
效果监控 展示,点击,安装,CPT,CPA,激活,留存,付费,ROI 可以精细到每个关键词 目前无法统计精准的优化效果(如 激活,注册),只能通过大盘同比,环比计算,相对模型
合作模式 1. 与苹果结算:CPT,CPI 2. 与代理商合租 1. CPSA 2. 按关键词上榜时间

影响:

  1. 在ASA广告算法中,权重因素的影响是非常大的,因此需要ASO配合提升榜单的排名已提升权重,进而提升ASA的展示量
  2. ASA可以看到每个关键词的数据,衡量关键词的质量(ROI,留存等),反过来可以为ASO选词提供精准的数据支撑
  3. ASA广告位恒定在搜索结果第一,原ASO的自然结果Top1只能排在第二,ASO的关键词带量效果会减少;但是ASA只能置顶一个广告位,后续的2-20名仍需要ASO进行干预。

总的来说,ASA和ASO各有所长,相互配合可以发挥出更大的价值;

ASA数据归因

数据归因指怎么监测在App Store中投放的广告带来了多少的下载和激活;以及怎么检测投放广告带来用户质量,他们留存,OCVR,LTV 等数据衡量

归因分析:

第三方归因工具

国外做的比较好几家,毕竟ASA在国外已经很成熟了

image.png

自归因工具建设

AdService framework ( iOS 14.3+)

苹果于 2021 年 1 月发布了一个全新的 AdService framework 归因方案。这个方案不依赖 IDFA,不受用户隐私政策的约束,在 iOS 14.3 及更高版本的设备上 100% 可归因。

据统计2021年3月后,iOS 14.3及更高版本的覆盖率将超过50%

A diagram showing the sequence of interaction between the AdServices framework and RESTful API.

  • 第 1 步,AdServices 框架发起调用请求生成token;
  • 第 2 步,AdServices 框架生成 token。
  • 第 3 步,MMP 或开发人员使用 token 发起 RESTful API 请求,苹果的归因服务器返回归因数据。
  • 第 4 步,返回的归因数据为字段格式的键值对,这些键值对数据与 Apple Search Ads 广告系列管理API中的广告系列相对应。

1)获取token(Objective-C)

#import <AdServices/AdServices.h>

- (void) methodToGetToken {
    if (@available(iOS 14.3, *)) {
        NSError *error;
        NSString *token = [AAAttribution attributionTokenWithError:&error];
        if (token != nil) {
          // 发送POST请求归因数据
        }
    } else {
        // Fallback on earlier versions
    }
}
复制代码

2)获取归因数据(Objective-C)

- (void) attributionWithToken:(NSString *)token {
    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
    NSURL *url = [NSURL URLWithString:@"https://api-adservices.apple.com/api/v1/"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                           cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                       timeoutInterval:60.0];
    [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPMethod:@"POST"];
    NSData* postData = [token dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:postData];
    NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSError *resError;
        NSMutableDictionary *resDic = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&resError];
    }];
    [postDataTask resume];
}
复制代码

返回归因数据包示例

{
  "orgId":1234567890,
  "campaignId":1234567890,
  "conversionType":"Download",
  "clickDate":"2021-01-11T06:41Z",
  "adGroupId":1234567890,
  "countryOrRegion":"US",
  "keywordId":12323222,
  "creativeSetId":1234567890,
  "attribution":true
}
复制代码

iAd Framework(iOS14.3之前的归因方案)

iAd Framework用于获取应用安装的ASA归因。用户完成App安装并且打开后,可以通过iAd framework获取安装的ASA归因:安装来自哪个campaign的keyword、素材、点击时间等。获取这个归因数据需要上面idfa的权限

归因数据报告需要满足以下条件:

  • 所有操作必须在同一设备上发生。
  • 归因仅适用于运行iOS 10或更高版本的用户,并且在过去30天内下载了该应用。
  • 必须从App Store列表或Apple 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); 
}];
}
复制代码
{ 
"Version3.1" = { 
"iad-attribution" = true; 
"iad-org-name" = "org name";
"iad-org-id" = "555555";
"iad-campaign-id" = "12345678"; 
"iad-campaign-name" = "campaign name"; 
"iad-purchase-date" = "2020-08-04T17:18:07Z" 
"iad-conversion-date" = "2020-08-04T17:18:07Z"; 
"iad-conversion-type" = "newdownload"; 
"iad-click-date" = "2020-08-04T17:17:00Z"; 
"iad-adgroup-id" = "12345678"; 
"iad-adgroup-name" = "adgroup name"; 
"iad-country-or-region" = "US"; 
"iad-keyword" = "keyword";
"iad-keyword-id" = "12345678";
"iad-keyword-matchtype" = "Broad";
"iad-creativeset-id" = "12345678";
"iad-creativeset-name" = "Creative Set name";
}
 
14.3 之后的
{
  "orgId":1234567890,
  "campaignId":1234567890,
  "conversionType":"Download",
  "clickDate":"2021-01-11T06:41Z",
  "adGroupId":1234567890,
  "countryOrRegion":"US",
  "keywordId":12323222,
  "creativeSetId":1234567890,
  "attribution":true
}
  
复制代码

ATT的影响、iAd、SKAdNetwork、AdServices FrameWork介绍

AdSupport

参考文档:https//developer.apple.com/documentation/adsupport

在iOS14之前,追踪广告效果基本都是通过IDFA实现的;AdSupport就是用于获取idfa,获取时会判断当前设备是否拥有相关权限。早之前idfa的权限在设置中可以全局控制; 新版本的iOS支持App级别的权限管理(ATT framework)。

- (NSString *)getIdfa {
    NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
    return idfa;
}
复制代码

AppTrackingTransparency framework

参考链接:

iOS 14 之后,苹果出台了强制执行的 App Tracking Transparency(ATT)政策,要求开发者必须明确征得用户的许可,14.5 强制执行; 隐藏在系统设置中的关闭 IDFA,被直接推送至前台。待 iOS 14.5普及后,有效 IDFA 的获取率或将降至10%~50%,对效果广告精准归因也会造成巨大影响。

img

 if (@available(iOS 14, *)) {
        __typeof__(self) weakSelf = self;
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
           
            dispatch_async(dispatch_get_main_queue(), ^{
                [weakSelf refreshStatus];
            });
        }];
    }
复制代码

iAd Framework

参考文档

用于获取应用安装的ASA归因。用户完成App安装并且打开后,可以通过iAd framework获取安装的ASA归因:安装来自哪个campaign的keyword、素材、点击时间等。获取这个归因数据需要上面idfa的权限

注意,对于某App的单个用户,如果没有重复下载行为,归因数据是不随时间变化的,只需要获取一次。这种归因可以统计不同keyword带来的用户后续的App内行为。

if ([[ADClient sharedClient] respondsToSelector:@selector(requestAttributionDetailsWithBlock:)]) {
            [[ADClient sharedClient] requestAttributionDetailsWithBlock:^(NSDictionary *attributionDetails, NSError *error) {
                if (error == nil) {
                    // 归因数据正确
                    success(attributionDetails);
                } else {
                    // 归因数据错误
                    gError = error;
                }
            }];
        }
复制代码

AdServices framework

iOS 14.3+新增的功能。类似iAd framework,也是获取应用安装的归因数据,和iAd不同的是不需要idfa授权,而是使用临时token的方式获取归因数据:

  1. 请求AdServices framework,获取临时token(24h内有效)
  2. 使用token获取归因数据

这种方式返回的数据,不包含用户行为数据(点击时间),仅仅是安装归因。如果ATT有相关授权,归因数据里才会有用户点击时间。

#import <AdServices/AdServices.h>

- (void) methodToGetToken {
    if (@available(iOS 14.3, *)) {
        NSError *error;
        NSString *token = [AAAttribution attributionTokenWithError:&error];
        if (token != nil) {
          // 发送POST请求归因数据
        }
    } else {
        // Fallback on earlier versions
    }
}
复制代码

参考昨天写的文章:直达连接:苹果搜索广告ASA笔记(中)

SKAdNetwork

参考链接:developer.apple.com/documentati…

Diagram showing a user tapping an ad for app B inside of app A, then installing and launching app B, which triggers a conversion notification after app B calls one of two methods, and after the timer expires. The ad network receives the postback which it must verify.

SKAdNetwork是区别于iAd的另一套广告归因框架,类似于谷歌的广告联盟:一部分App作为流量提供者(Source Apps),在App内提供广告位;Ad network给这些Source Apps中的广告位分配广告;需要推广的App(Advertised Apps)通过Ad network投放广告。用户点击广告后,安装并打开相应App,就会触发归因,向network发送数据(这部分数据广告主应该也是可以获取的)

 if (@available(iOS 11.3, *)) {
    [SKAdNetwork registerAppForAdNetworkAttribution];
 }
复制代码

参考

searchads.apple.com/cn/

zhuanlan.zhihu.com/p/42119163

developer.apple.com/documentati…

www.aiyingli.com/34522.html

www.cifnews.com/article/799…

lbadvisor.com/docs/apple-…

www.aiyingli.com/34522.html

www.cifnews.com/article/799…

blog.csdn.net/shaobo8910/…

lbadvisor.com/docs/apple-…

www.jianshu.com/p/bdd451f44…

zhuanlan.zhihu.com/p/346497767

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享