一、集成方案介紹
本文將介紹如何將 Apple Search Ads 的數據回傳到自己內部系統,本方案支持:通過 Apple Search Ads Report API 回傳聚合指標數據,數據中包含曝光、點擊、安裝、收入、成本指標等數據。
Apple Search Ads 數據的接入流程如下:
- 創建一個帶有 API 權限的用戶(如果已經存在這樣的用戶,可以跳過此步)
- 生成私鑰與公鑰,使用帶有 API 權限的用戶登錄 Apple Search Ads 後臺,上傳公鑰,並向 TA 工作人員提供:client_id;team_id;key_id;私鑰文件
- 確定數據拉取的數據維度、指標類型、拉取頻率以及拉取時間範圍
- 完成數據拉取開發工作
- 搭建看板、報表,並完成數據驗收
二、集成前準備工作
2.1 授權總流程
在使用拉取 ASA 數據之前,首先需要生成 Access Token,整個流程分爲以下幾個步驟:
- 創建一個擁有 API 訪問權限的用戶
- 生成私鑰與公鑰,並將公鑰上傳到 ASA 後臺
- 創建客戶端密鑰
- 請求訪問令牌
2.2 邀請用戶
管理員賬號可以按照以下流程創建一個帶有 API 權限的用戶:
- 進入 Apple Search Ads UI,登錄管理員賬號
- 進入「Account Settings」-「User Management」(「賬號設置」-「用戶管理」)
- 點擊「Invite Users」邀請一個在您的 ASA 組織內的用戶
- 在「User Details」欄目,輸入用戶的姓名以及 Apple ID
- 在「User Access and Role」欄目,選擇具有 API 訪問權限的用戶角色
- 點擊「Send Invite」發送邀請郵件,受邀請用戶會收到一份帶有 secure code 的郵件,用戶點擊郵件中的 Apple 網址並輸入 secure code 即可激活用戶的賬號
2.3 生成私鑰與公鑰
如果您使用的是 Windows 系統,請下載並安裝 OpenSSL
1. 在命令行中輸入以下命令,即可生成私鑰(私鑰文件爲 private-key.pem)
openssl ecparam -genkey -name prime256v1 -noout -out private-key.pem
2. 接着,在同一目錄下,執行如下命令,生成公鑰(公鑰文件爲 public-key.pem)
openssl ec -in private-key.pem -pubout -out public-key.pem
3. 進入 Apple Search Ads UI,選擇「Account Settings」-「API」,將公鑰複製到「Public Key」板塊。點擊保存後,您將可以在「Public Key」板塊上方看到clientId
、teamId
、與 keyId
,以下是數據樣例:
clientId SEARCHADS.aeb3ef5f-0c5a-4f2a-99c8-fca83f25a9
teamId SEARCHADS.hgw3ef3p-0w7a-8a2n-77c8-scv83f25a7
keyId a273d0d3-4d9e-458c-a173-0db8619ca7d7
2.4 提供以下信息完成Access Token的創建
- client_id
- team_id
- key_id
- 與 ASA 後臺配置公鑰對應的私鑰文件(private-key.pem)
接下來完成 Access Token 的創建。
三、數據拉取
接口基本信息
接口名 | API 類型 | 產品化 | 數據粒度 | 歸因數據 | 成本數據 | 收益數據 | 展示數據 | 點擊數據 | 轉化數據 |
---|---|---|---|---|---|---|---|---|---|
彙報 API | 拉式 | 否 | 聚合數據 | 是 | 是 | 是 | 是 | 是 | 是 |
3.1 數據拉取規則
Apple Search Ads 的 Reporting API 提供了多種層級的數據報表,我目前嘗試過以下幾個層級的數據拉取,也可以給各位讀者參考:
廣告計劃級別報告(Campaign-Level Reports):獲取按小時「廣告計劃級別」的數據報表
廣告組級別報告(Ad Group-Level Reports):獲取按小時廣告計劃內「廣告組級別」的數據報表
關鍵詞級別報告(Keyword-Level Reports):獲取按小時廣告計劃內「關鍵詞級別」的數據報表
素材集級別報告(Creative Set-Level Reports):獲取按小時廣告計劃內「素材集級別」的數據報表
默認情況下,在一次數據拉取任務中,我會同時拉取這四個層級的報表數據
3.2 接口參數
時間:
- 時間範圍:可以拉取以天爲單位
- 時間粒度:按天或按小時聚合(按小時)
- 時區:可以選擇 UTC 時區或者 ASA 後臺設置的時區
3.3 入庫規則
1. Campaign 層級
- Campaign 層級數據是聚合數據,因此我將使用一個固定值作爲其用戶標識,您可以認爲所有數據掛載在一個虛擬用戶上
- 使用數據中的 date 字段,即數據的日期,設置爲聚合數據的 #event_time
- Ad Group 層級數據的數據事件名爲 -- asa_campaign_level_data
- 以下是 Campaign 層級的入庫字段
------------------------维度字段------------------------
campaignId
campaignName
deleted
campaignStatus
app.adamId
servingStatus
servingStateReasons
countriesOrRegions
modificationTime
totalBudget.amount
totalBudget.currency
dailyBudget.amount
dailyBudget.currency
displayStatus
supplySources
adChannelType
orgId
countryOrRegionServingStateReasons
billingEvent
------------------------指标字段------------------------
impressions
taps
installs
newDownloads
redownloads
latOnInstalls
latOffInstalls
ttr
avgCPA.amount
avgCPA.currency
avgCPT.amount
avgCPT.currency
avgCPM.amount
avgCPM.currency
localSpend.amount
localSpend.currency
conversionRate
2. Ad Group 層級
- Ad Group 層級數據是聚合數據,因此我將使用一個固定值作爲其用戶標識,您可以認爲所有數據掛載在一個虛擬用戶上
- 使用數據中的 date 字段,即數據的日期,設置爲聚合數據的 #event_time
- Ad Group 層級數據的數據事件名爲 -- asa_adgroup_level_data
- 以下是 Ad Group 層級數據入庫字段
------------------------维度字段------------------------
campaignId
adGroupId
adGroupName
adGroupDisplayStatus
adGroupStatus
adGroupServingStatus
adGroupServingStateReasons
deleted
cpaGoal
orgId
modificationTime
automatedKeywordsOptIn
pricingModel
defaultBidAmount.amount
defaultBidAmount.currency
------------------------指标字段------------------------
impressions
taps
installs
newDownloads
redownloads
latOnInstalls
latOffInstalls
ttr
avgCPA.amount
avgCPA.currency
avgCPT.amount
avgCPT.currency
avgCPM.amount
avgCPM.currency
localSpend.amount
localSpend.currency
conversionRate
3. Keywords 層級
- Keywords 層級數據是聚合數據,因此我將使用一個固定值作爲其用戶標識,您可以認爲所有數據掛載在一個虛擬用戶上
- 使用數據中的 date 字段,即數據的日期,設置爲聚合數據的 #event_time
- Keywords 層級數據的數據事件名爲 -- asa_keyword_level_data
- 以下是 Keywords 層級數據入庫字段
------------------------维度字段------------------------
keywordId
keywordStatus
matchType
deleted
keywordDisplayStatus
adGroupId
adGroupDeleted
------------------------指标字段------------------------
impressions
taps
installs
newDownloads
redownloads
latOnInstalls
latOffInstalls
ttr
avgCPA.amount
avgCPA.currency
avgCPT.amount
avgCPT.currency
localSpend.amount
localSpend.currency
conversionRate
4. Creative Set 層級
- Creative Set 層級數據是聚合數據,因此我將使用一個固定值作爲其用戶標識,您可以認爲所有數據掛載在一個虛擬用戶上
- 使用數據中的 date 字段,即數據的日期,設置爲聚合數據的 #event_time
- Creative Set 層級數據的數據事件名爲 -- asa_creative_level_data
- 以下是 Creative Set 層級數據入庫字段
------------------------维度字段------------------------
creativeSetId
creativeSetName
displayStatus
creativeSetLanguageDisplayName
deleted
status
orgId
campaignId
adGroupId
adGroupCreativeSetId
creationTime
modificationTime
countryOrRegion
adFormat
------------------------指标字段------------------------
impressions
taps
installs
newDownloads
redownloads
latOnInstalls
latOffInstalls
ttr
avgCPA.amount
avgCPA.currency
avgCPT.amount
avgCPT.currency
localSpend.amount
localSpend.currency
conversionRate
四、數據集成配置信息模板
在閱讀完以上文檔之後,你將收集到以下相關的信息,此時可以完成Apple Search Ads 的數據拉取:
数据接口: Apple Search Ads Report API
---------
数据接收地址 push_url: XXX
---------
keyId: XXX
clientId: XXX
teamId: XXX
orgId 列表: XXX
时区:[UTC/ASA] 后台配置时区
时间粒度:[天/小时](注意:素材集级别报告不支持每小时的数据拉取,仅支持按天拉取)
历史数据拉取时间范围:yyyy/mm/dd - yyyy/mm/dd
定时拉取:每天 X 点拉取前一天的数据
五、聯調測試
拉回數據後,可以上報至自己目前在使用的數據系統,在系統或者數據看板上可以看到以下事件:
- asa_campaign_level_data:到廣告計劃級別,更多維度和指標
- asa_adgroup_level_data:到廣告組級別,更細分析粒度
- asa_keyword_level_data:關鍵詞的投放效果數據
- asa_creative_level_data:到廣告素材級別,更細分析粒度