2

我试图使用 Apples Search Ad api 将广告数据返回到应用程序,以便我可以记录它。第一次尝试产生了苹果的默认数据,第二天我得到了所有属性的零返回。

这与它有关吗?iad 属性 = 假

我在几台设备上进行测试,其中一台已更新到最新的 IOS,所有设备都产生相同的结果。

请注意,该应用尚未上线,我正在使用测试设备!

任何想法为什么它返回 nil 而不是默认数据?

我一直在关注本教程 http://www.nikola-breznjak.com/blog/ios/create-native-ios-app-can-read-search-ads-attribution-api-information/

override func loadView() {
        super.loadView()
        getSearchAdsInfo()
    }

 func getSearchAdsInfo(){
    ADClient.shared().requestAttributionDetails({ (attributionDetails, error) in
                if error == nil {
                    for (type, adDictionary) in attributionDetails! {
                        var attribution = adDictionary as? Dictionary<AnyHashable, Any>;
                        let params = [
                            "deviceID": self.appData.deviceInfo,
                            "appID": "self.appData.appID",
                            "iadAdgroupId": attribution?["iad-adgroup-id"] as? String as Any,
                            "iadAdgroupName": attribution?["iad-adgroup-name"] as? String as Any,
                            "iadAttribution": attribution?["iad-attribution"] as? String  as Any,
                            "iadCampaignId": attribution?["iad-campaign-id"] as? String as Any,
                            "iadCampaignName": attribution?["iad-campaign-name"] as? String as Any,
                            "iadClickDate": attribution?["iad-click-date"] as? String as Any,
                            "iadConversionDate": attribution?["iad-conversion-date"] as? String as Any,
                            "iadCreativeId": attribution?["iad-creative-id"] as? String as Any,
                            "iadCreativeName": attribution?["iad-creative-name"] as? String as Any,
                            "iadKeyword": attribution?["iad-keyword"] as? String as Any,
                            "iadLineitemId": attribution?["iad-lineitem-id"] as? String as Any,
                            "iadLineitemName": attribution?["iad-lineitem-name"] as? String as Any,
                            "iadOrgName": attribution?["iad-org-name"] as? String as Any

                            ]
                      print(params)
                    }
                }
            })
}

结果

    ["iadCampaignName": nil, 
    "iadLineitemName": nil, 
    "iadCreativeId": nil, 
    "iadOrgName": nil, 
    "iadConversionDate": nil, 
    "iadAdgroupName": nil, 
    "iadClickDate": nil, 
    "iadCreativeName": nil, 
    "iadLineitemId": nil, 
    "iadCampaignId": nil, 
    "iadKeyword": nil, 
    "iadAdgroupId": nil, 
    "iadAttribution": Optional("false")]

和 print(attributionDetails) 产生以下

Optional(["Version3.1": {
    "iad-attribution" = false;
}])
4

1 回答 1

1

对我有用的是获得 iOS 10.2 版模拟器。在这个版本中,虚拟数据正在通过。我懂了:

`Optional([AnyHashable("Version3.1"): {
    "iad-adgroup-id" = 1234567890;
    "iad-adgroup-name" = AdGroupName;
    "iad-attribution" = true;
    "iad-campaign-id" = 1234567890;
    "iad-campaign-name" = CampaignName;
    "iad-click-date" = "2018-06-12T14:56:14Z";
    "iad-conversion-date" = "2018-06-12T14:56:14Z";
    "iad-creative-id" = 1234567890;
    "iad-creative-name" = CreativeName;
    "iad-keyword" = Keyword;
    "iad-lineitem-id" = 1234567890;
    "iad-lineitem-name" = LineName;
    "iad-org-name" = OrgName;
}])

似乎在最新的 iOS 版本中未发送虚拟数据(在我的情况下为 11.4)

按照此链接了解如何获取旧 iOS 版本的模拟器: https ://stackoverflow.com/a/37684633/1072262

于 2018-06-12T15:04:11.693 回答