iOS開發(fā)基礎(chǔ)145-Apple Search Ads
AdServices框架是Apple引入的一種用于衡量廣告效果的工具,特別是針對應(yīng)用安裝廣告 (App Install Ads) 的歸因。它有助于廣告主和廣告平臺了解他們的廣告是否成功引導(dǎo)了用戶下載和安裝應(yīng)用。使用AdServices集成在iOS應(yīng)用中,一般目標是獲得與廣告相關(guān)的追蹤參數(shù),如廣告活動(Campaign)、廣告組(Ad Group)等。以下是詳細介紹AdServices集成的步驟、角色和概念,以及示例代碼。
概念和角色
-
AdServices框架:這是iOS 14.3引入的一個框架,用于獲取廣告標識符和其他與廣告相關(guān)的參數(shù)。
-
Ad Attribution:廣告歸因,將應(yīng)用的安裝歸因于特定廣告活動、廣告組等。
-
Token:標識應(yīng)用安裝和廣告點擊之間關(guān)系的唯一標識符。
-
Ad Attribution Details:包括廣告活動、廣告組、廣告創(chuàng)意、點擊時間等信息,這些詳情可以幫助追蹤和衡量廣告效果。
步驟
1. 導(dǎo)入框架
首先你需要在項目中導(dǎo)入AdServices框架。在你的項目的Podfile中添加以下內(nèi)容并運行pod install:
platform :ios, '14.3'
use_frameworks!
target 'YourTargetName' do
pod 'AdServices'
end
或者你可以手動導(dǎo)入。如果你不使用CocoaPods,可以在Xcode中手動添加框架:
- 打開Xcode項目。
- 選擇你的項目目標。
- 選擇“Build Phases”選項卡,點擊"Link Binary With Libraries"展開。
- 點擊“+”按鈕,添加
AdServices.framework。
2. 請求Authorization認證
在iOS 14.5和更新的版本中,應(yīng)用需要顯式請求用戶同意 (ATT,App Tracking Transparency) 才能訪問廣告標識符。
在你的Info.plist中添加以下配置:
<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>
在代碼里請求用戶授權(quán):
#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
}
}];
}
}
在適當(dāng)?shù)臅r機,調(diào)用requestTrackingAuthorization函數(shù),以便獲取用戶的授權(quán)。
3. 獲取廣告Token
調(diào)用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. 服務(wù)器端驗證和解析Token
在你的服務(wù)器端,你需要解碼和驗證從應(yīng)用中獲取的Token。你可以使用Apple提提供的廣告歸因API接口進行Token的驗證和解析。這里的服務(wù)器端實現(xiàn)根據(jù)你的后端技術(shù)棧會有所不同,下面是一個簡化的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)
總結(jié)
通過上述步驟和代碼示例,你可以在iOS應(yīng)用中集成AdServices框架來獲取廣告Token,并在服務(wù)器端驗證和解析該Token以獲取廣告投放的具體表現(xiàn)和效果。這可幫助廣告主和開發(fā)者更好地調(diào)整和優(yōu)化廣告策略。如果你需要更復(fù)雜的操作和邏輯(如用戶日志記錄和多重廣告平臺集成),可以基于這些基礎(chǔ)進一步擴展。
補充
還沒看明白?那么請接著往下看。
AdServices框架的工作流程概述
- 廣告投放:廣告主通過廣告平臺(如Apple Search Ads)投放廣告,目標是引導(dǎo)用戶下載和安裝應(yīng)用。
- 用戶點擊廣告:用戶在廣告平臺上看到廣告并點擊。
- 應(yīng)用安裝:用戶被引導(dǎo)到App Store下載并安裝應(yīng)用。
- Token獲取:應(yīng)用通過AdServices框架獲取廣告歸因Token。
- Token上報:應(yīng)用將獲取的Token上報給廣告主的服務(wù)器。
- Token驗證和解析:廣告主的服務(wù)器驗證和解析Token,獲取廣告活動相關(guān)信息,完成廣告歸因。
- 數(shù)據(jù)分析:基于解析的歸因數(shù)據(jù),廣告主可以調(diào)整和優(yōu)化廣告策略。
每一步的角色和操作細節(jié)
1. 廣告投放
角色:廣告主和廣告平臺(如Apple Search Ads)。
操作:廣告主使用廣告平臺創(chuàng)建廣告系列,設(shè)定目標受眾和預(yù)算等。廣告平臺負責(zé)展示廣告給合適的用戶。
2. 用戶點擊廣告
角色:用戶和廣告平臺。
操作:用戶在廣告平臺上看到廣告并點擊,廣告平臺記錄這次點擊事件。
3. 應(yīng)用安裝
角色:用戶和App Store。
操作:用戶被引導(dǎo)到App Store下載并安裝應(yīng)用。
4. Token獲取
角色:應(yīng)用、AdServices框架。
操作:應(yīng)用啟動后,通過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上報
角色:應(yīng)用、廣告主的服務(wù)器。
操作:應(yīng)用將獲取到的Token上報給廣告主的服務(wù)器。
- (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驗證和解析
角色:廣告主的服務(wù)器、Apple的廣告歸因API。
操作:廣告主的服務(wù)器使用Apple的廣告歸因API驗證和解析Token,獲取廣告活動相關(guān)信息。
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. 數(shù)據(jù)分析
角色:廣告主。
操作:廣告主基于解析的歸因數(shù)據(jù)衡量廣告效果,并據(jù)此優(yōu)化廣告策略。例如,識別出哪些廣告系列效果好,哪些需要調(diào)整。
如何確定歸因給誰?
廣告歸因是為了確定用戶的安裝行為是否由某個特定廣告觸發(fā)。確定歸因主要通過以下步驟:
- 廣告平臺記錄點擊事件:當(dāng)用戶點擊廣告時,廣告平臺記錄這次點擊事件,并在用戶點擊廣告后將相關(guān)的數(shù)據(jù)傳遞給AdServices。
- 生成歸因Token:AdServices框架在用戶成功安裝應(yīng)用后,通過這些數(shù)據(jù)生成一個歸因Token。
- 驗證和解析歸因Token:服務(wù)器端使用廣告歸因API驗證和解析Token,以獲取廣告活動相關(guān)的詳細信息,如廣告系列ID、廣告組ID等。這些信息可以用來確定用戶的安裝行為歸因于哪個廣告活動。
投入廣告在哪里?
廣告可以通過不同的平臺投入,例如Apple Search Ads。廣告主使用這些平臺來創(chuàng)建和管理廣告活動。當(dāng)用戶點擊這些廣告并下載了應(yīng)用時,廣告平臺將這些點擊事件的數(shù)據(jù)通過AdServices框架傳遞給應(yīng)用,以便進行廣告歸因。
用戶點擊之后下載,客戶端如何歸因?
客戶端通過AdServices框架來獲取廣告歸因Token。這個Token在用戶點擊廣告并成功安裝應(yīng)用后生成,包含了與廣告點擊事件相關(guān)的詳細信息。應(yīng)用會將這個Token發(fā)送給廣告主的服務(wù)器,服務(wù)器通過解析這個Token來確定用戶的下載行為歸因于哪個廣告活動。
數(shù)據(jù)上報給誰?上報什么東西?
數(shù)據(jù)上報給廣告主的服務(wù)器。上報的主要是通過AdServices框架獲取的廣告歸因Token:
- Token內(nèi)容:由AdServices生成的歸因Token。
- 其他相關(guān)信息:可以根據(jù)需要上報其他用戶相關(guān)的信息(如用戶ID、設(shè)備信息等),以幫助進行更精細的歸因和數(shù)據(jù)分析。
上報Token的目的是為了在服務(wù)器端驗證和解析這個Token,從而獲取更多詳細的廣告活動信息。
總結(jié)
當(dāng)廣告主通過廣告平臺投放廣告并引導(dǎo)用戶下載和安裝應(yīng)用時,應(yīng)用通過AdServices框架獲取廣告歸因Token,并將這個Token上報給廣告主的服務(wù)器。服務(wù)器使用廣告歸因API驗證和解析Token,以確定哪個廣告活動引導(dǎo)了用戶的安裝行為。這些數(shù)據(jù)幫助廣告主分析廣告效果并優(yōu)化廣告策略。整個流程中涉及的主要角色包括廣告主、廣告平臺、用戶、和應(yīng)用(客戶端)。

浙公網(wǎng)安備 33010602011771號