首页 > 其他分享 >iOS开发基础145-Apple Search Ads

iOS开发基础145-Apple Search Ads

时间:2024-08-01 16:30:36浏览次数:9  
标签:Search 145 Apple token AdServices Token 归因 广告 广告主

AdServices框架是Apple引入的一种用于衡量广告效果的工具,特别是针对应用安装广告 (App Install Ads) 的归因。它有助于广告主和广告平台了解他们的广告是否成功引导了用户下载和安装应用。使用AdServices集成在iOS应用中,一般目标是获得与广告相关的追踪参数,如广告活动(Campaign)、广告组(Ad Group)等。以下是详细介绍AdServices集成的步骤、角色和概念,以及示例代码。

概念和角色

  1. AdServices框架:这是iOS 14.3引入的一个框架,用于获取广告标识符和其他与广告相关的参数。

  2. Ad Attribution:广告归因,将应用的安装归因于特定广告活动、广告组等。

  3. Token:标识应用安装和广告点击之间关系的唯一标识符。

  4. Ad Attribution Details:包括广告活动、广告组、广告创意、点击时间等信息,这些详情可以帮助追踪和衡量广告效果。

步骤

1. 导入框架

首先你需要在项目中导入AdServices框架。在你的项目的Podfile中添加以下内容并运行pod install

platform :ios, '14.3'
use_frameworks!

target 'YourTargetName' do
    pod 'AdServices'
end

或者你可以手动导入。如果你不使用CocoaPods,可以在Xcode中手动添加框架:

  1. 打开Xcode项目。
  2. 选择你的项目目标。
  3. 选择“Build Phases”选项卡,点击"Link Binary With Libraries"展开。
  4. 点击“+”按钮,添加AdServices.framework

2. 请求Authorization认证

在iOS 14.5和更新的版本中,应用需要显式请求用户同意 (ATT,App Tracking Transparency) 才能访问广告标识符。

在你的Info.plist中添加以下配置:

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

在代码里请求用户授权:

#import <AdSupport/AdSupport.h>
#import <AppTrackingTransparency/AppTrackingTransparency.h>

- (void)requestTrackingAuthorization {
    if (@available(iOS 14.5, *)) {
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            // Handle authorization status
            if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
                // Authorized
            } else {
                // Not authorized
            }
        }];
    }
}

在适当的时机,调用requestTrackingAuthorization函数,以便获取用户的授权。

3. 获取广告Token

调用AdServices框架获取广告Token:

#import <AdServices/AdServices.h>

- (void)fetchAdServicesToken {
    if (@available(iOS 14.3, *)) {
        NSError *error = nil;
        NSString *token = [AAAttribution attributionTokenWithError:&error];
        if (error) {
            NSLog(@"%@", error.localizedDescription);
        } else {
            NSLog(@"AdServices Token: %@", token);
            [self sendTokenToServer:token];
        }
    }
}

- (void)sendTokenToServer:(NSString *)token {
    // Implement server communication to send the token, this step involves your backend server
    // You can use NSURLSession or any preferred network library to send token to your server
    // Example: send a POST request with the token data
}

4. 服务器端验证和解析Token

在你的服务器端,你需要解码和验证从应用中获取的Token。你可以使用Apple提提供的广告归因API接口进行Token的验证和解析。这里的服务器端实现根据你的后端技术栈会有所不同,下面是一个简化的Python示例:

import requests

def verify_ad_token(token):
    url = "https://api-adservices.apple.com/api/v1/"
    headers = {
        'Authorization': f'Bearer {token}',
        'Content-Type': 'application/json'
    }
    response = requests.post(url, headers=headers)
    if response.status_code == 200:
        ad_attribution_data = response.json()
        print(ad_attribution_data)
        # Process the attribution data as necessary
    else:
        print(f"Error: {response.status_code}")

# Example usage
token = "your_ad_services_token_from_app"
verify_ad_token(token)

总结

通过上述步骤和代码示例,你可以在iOS应用中集成AdServices框架来获取广告Token,并在服务器端验证和解析该Token以获取广告投放的具体表现和效果。这可帮助广告主和开发者更好地调整和优化广告策略。如果你需要更复杂的操作和逻辑(如用户日志记录和多重广告平台集成),可以基于这些基础进一步扩展。

补充

还没看明白?那么请接着往下看。

AdServices框架的工作流程概述

  1. 广告投放:广告主通过广告平台(如Apple Search Ads)投放广告,目标是引导用户下载和安装应用。
  2. 用户点击广告:用户在广告平台上看到广告并点击。
  3. 应用安装:用户被引导到App Store下载并安装应用。
  4. Token获取:应用通过AdServices框架获取广告归因Token。
  5. Token上报:应用将获取的Token上报给广告主的服务器。
  6. Token验证和解析:广告主的服务器验证和解析Token,获取广告活动相关信息,完成广告归因。
  7. 数据分析:基于解析的归因数据,广告主可以调整和优化广告策略。

每一步的角色和操作细节

1. 广告投放

角色:广告主和广告平台(如Apple Search Ads)。

操作:广告主使用广告平台创建广告系列,设定目标受众和预算等。广告平台负责展示广告给合适的用户。

2. 用户点击广告

角色:用户和广告平台。

操作:用户在广告平台上看到广告并点击,广告平台记录这次点击事件。

3. 应用安装

角色:用户和App Store。

操作:用户被引导到App Store下载并安装应用。

4. Token获取

角色:应用、AdServices框架。

操作:应用启动后,通过AdServices框架获取广告归因Token。

#import <AdServices/AdServices.h>

- (void)fetchAdServicesToken {
    if (@available(iOS 14.3, *)) {
        NSError *error = nil;
        NSString *token = [AAAttribution attributionTokenWithError:&error];
        if (error) {
            NSLog(@"%@", error.localizedDescription);
        } else {
            NSLog(@"AdServices Token: %@", token);
            [self sendTokenToServer:token];
        }
    }
}

5. Token上报

角色:应用、广告主的服务器。

操作:应用将获取到的Token上报给广告主的服务器。

- (void)sendTokenToServer:(NSString *)token {
    NSURL *url = [NSURL URLWithString:@"https://your-server.com/verifyToken"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    request.HTTPMethod = @"POST";
    [request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    
    NSDictionary *body = @{@"token": token};
    NSData *bodyData = [NSJSONSerialization dataWithJSONObject:body options:0 error:nil];
    request.HTTPBody = bodyData;
    
    NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        if (error) {
            NSLog(@"Error: %@", error.localizedDescription);
        } else {
            NSLog(@"Token sent successfully");
        }
    }];
    
    [dataTask resume];
}

6. Token验证和解析

角色:广告主的服务器、Apple的广告归因API。

操作:广告主的服务器使用Apple的广告归因API验证和解析Token,获取广告活动相关信息。

import requests

def verify_ad_token(token):
    url = "https://api-adservices.apple.com/api/v1/"
    headers = {
        'Authorization': f'Bearer {token}',
        'Content-Type': 'application/json'
    }
    response = requests.post(url, headers=headers)
    if response.status_code == 200:
        ad_attribution_data = response.json()
        print(ad_attribution_data)
        # Process the attribution data as necessary
    else:
        print(f"Error: {response.status_code}")

# Example usage
token = "your_ad_services_token_from_app"
verify_ad_token(token)

7. 数据分析

角色:广告主。

操作:广告主基于解析的归因数据衡量广告效果,并据此优化广告策略。例如,识别出哪些广告系列效果好,哪些需要调整。

如何确定归因给谁?

广告归因是为了确定用户的安装行为是否由某个特定广告触发。确定归因主要通过以下步骤:

  1. 广告平台记录点击事件:当用户点击广告时,广告平台记录这次点击事件,并在用户点击广告后将相关的数据传递给AdServices。
  2. 生成归因Token:AdServices框架在用户成功安装应用后,通过这些数据生成一个归因Token。
  3. 验证和解析归因Token:服务器端使用广告归因API验证和解析Token,以获取广告活动相关的详细信息,如广告系列ID、广告组ID等。这些信息可以用来确定用户的安装行为归因于哪个广告活动。

投入广告在哪里?

广告可以通过不同的平台投入,例如Apple Search Ads。广告主使用这些平台来创建和管理广告活动。当用户点击这些广告并下载了应用时,广告平台将这些点击事件的数据通过AdServices框架传递给应用,以便进行广告归因。

用户点击之后下载,客户端如何归因?

客户端通过AdServices框架来获取广告归因Token。这个Token在用户点击广告并成功安装应用后生成,包含了与广告点击事件相关的详细信息。应用会将这个Token发送给广告主的服务器,服务器通过解析这个Token来确定用户的下载行为归因于哪个广告活动。

数据上报给谁?上报什么东西?

数据上报给广告主的服务器。上报的主要是通过AdServices框架获取的广告归因Token:

  1. Token内容:由AdServices生成的归因Token。
  2. 其他相关信息:可以根据需要上报其他用户相关的信息(如用户ID、设备信息等),以帮助进行更精细的归因和数据分析。

上报Token的目的是为了在服务器端验证和解析这个Token,从而获取更多详细的广告活动信息。

总结

当广告主通过广告平台投放广告并引导用户下载和安装应用时,应用通过AdServices框架获取广告归因Token,并将这个Token上报给广告主的服务器。服务器使用广告归因API验证和解析Token,以确定哪个广告活动引导了用户的安装行为。这些数据帮助广告主分析广告效果并优化广告策略。整个流程中涉及的主要角色包括广告主、广告平台、用户、和应用(客户端)。

标签:Search,145,Apple,token,AdServices,Token,归因,广告,广告主
From: https://www.cnblogs.com/chglog/p/18336912

相关文章

  • OpenAI深夜发布SearchGPT!官方演示惨遭打脸
    北京时间2024年7月26日凌晨,OpenAI发布了一款搜索引擎——SearchGPTSearchGPT是OpenAI最新推出的一个AI搜索功能原型,它结合了GPT系列模型的强大自然语言处理能力与实时网络信息,旨在为用户提供快速、及时且来源清晰的答案。SearchGPT通过动态获取网络上的最新信息,并结合多模态......
  • Apple Safari 17.6 - macOS 专属浏览器 (独立安装包下载)
    AppleSafari17.6-macOS专属浏览器(独立安装包下载)适用于macOSVentura和macOSMonterey的Safari浏览器17请访问原文链接:https://sysin.org/blog/apple-safari-17/,查看最新版。原创作品,转载请保留出处。之前Safari浏览器伴随macOS更新一起发布,需要系统更新才......
  • 申请美区 Apple ID 完整步骤图解,轻松免费创建账户
    苹果手机在下载一些软件时需要我们登录其AppleID才能下载,但是由于一些限制国内的AppleID在AppStore中有一些限制不能下载某些软件,如何解决这个问题?那就是申请一个美区AppleID,怎么申请国外苹果账户呢?下面就为大家展示具体的操作步骤。申请国外AppleID想要申请国......
  • LeetCode | 704 BinarySearch
    https://github.com/dolphinmind/datastructure/tree/datastructure-array主类packagecom.github.dolphinmind.array.binarysearch;/***@authordolphinmind*@ClassNameBinarySearch*@description704二分法搜索*前提条件:有序数组,且无重复元素......
  • Go语言---sort 包中sort.Ints()、sort.Strings()、sort.Slice()、sort.SliceStable()、s
    在每一种编程语言中,都会涉及到排序操作。而在Go语言中,其中内置的sort包中提供了根据一些排序函数来对任何序列进行排序的功能。通过这个包中的一些方法,我们可以对一些基本的可以比较大小的类型的切片进行排序,也可以通过实现排序接口的几个特定方法实现自定义排序。sort.I......
  • ElasticSearch的优化
    1、硬件选择Elasticsearch的基础是Lucene,所有的索引和文档数据是存储在本地的磁盘中,具体存储的路径可在ES的配置文件../config/elasticsearch.yml中配置,如下:#-----------------------------------Paths------------------------------------##Pathtodirectorywhe......
  • elasticsearch单机版—安装详细教程
    一、ES介绍 Elasticsearch是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎ApacheLucene™基础上的搜索引擎.当然Elasticsearch并不仅仅是Lucene那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:(1).分布式实时文件存储,并将每一个字段都编入索引,使......
  • Meta SAM 2:实时分割图片和视频中对象;Apple Intelligence 首个开发者测试版发布丨 RTE
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,......
  • 使用 Easysearch 打造企业内部知识问答系统
    大家可能都有这样的经历,刚入职一家企业时,同事往往会给你分享一些文档资料,有可能是产品信息、规章制度等等。这些文档有的过于冗长,很难第一时间找到想要的内容。有的已经有了新版本,但员工使用的还是老版本。基于这种背景,我们可以利用Easysearch加LLM实现一个内部知识的QA问......
  • 记一次ElasticSearch重启之后shard未分配问题的解决 allocation_status": "no_attemp
    记一次ElasticSearch重启之后shard未分配问题的解决环境ElasticSearch6.3.2,三节点集群Ubuntu16.04一个名为user的索引,索引配置为:3primaryshard,每个primaryshard2个replica正常情况下,各个分片的分布如下:可见,user索引的三个分片平均分布在各台机器上,可以完全容忍一台机......