5

これが私が使用しているコードです。attributionDetailsSearch Ads Attribution API コードが正しく機能していることを確認するために、Apple からテストするにはどうすればよいですか? Apple は、開発者がテスト用にダミー変換をテストする方法について、詳細をほとんどまたはまったく提供していません ( https://searchads.apple.com/help/measure-results/#attribution-api )。

+ (void)conversionTracking
{
    if ([[ADClient sharedClient] respondsToSelector:@selector(requestAttributionDetailsWithBlock:)])
    {
        // iOS 10 call exists

        [[ADClient sharedClient] requestAttributionDetailsWithBlock:^(NSDictionary *attributionDetails, NSError *error) {
            if (error) {
                NSLog(@"Request Search Ads attributes failed with error: %@", error.description);

                if (error.code == ADClientErrorLimitAdTracking) {
                    NSLog(@"Limit Ad Tracking is enabled for this device.");
                }
            }
            else {
                NSLog(@"Search Ads attributes: %@", attributionDetails);

                // Found details, track the purchase.
                NSString *searchAdsCampaign = @"";
                // Check value for "iad-attribution":
                if ([attributionDetails valueForKey:@"iad-attribution"] != nil) {
                    // Check value:
                    if ([[attributionDetails valueForKey:@"iad-attribution"] boolValue]) {
                        // Get campaign name:
                        if ([attributionDetails valueForKey:@"iad-campaign-name"] != nil) {
                            NSString *campaignName = [attributionDetails valueForKey:@"iad-campaign-name"];
                            // Exclude Apple test data, where value is "CampaignName":
                            if ([campaignName isEqualToString:@"CampaignName"]) {
                                searchAdsCampaign = @"No Campaign";
                            }
                            else {
                                searchAdsCampaign = campaignName;
                            }
                        }
                        else {
                            // Key not found:
                            searchAdsCampaign = @"Error";
                        }
                    }
                    else {
                        // Value "false":
                        searchAdsCampaign = @"No Campaign";
                    }
                }
                else {
                    // Key not found:
                    searchAdsCampaign = @"Error";
                }

               // TRACK IT HERE. Pass up searchAdsCampaign for tracking to my server.
            }
        }];
    }
}
4

2 に答える 2

-1

デバイスでいくつかのテストを行うと、次の行が見つかると思います。

if ([[attributionDetails valueForKey:@"iad-attribution"] boolValue]

...実際には次のようになります。

if ([[attributionDetails valueForKey:@"iad-attribution"] isEqualToString:@"true"]

これは、テスト方法の問題に実際には答えていないことに気づきました。しかし、実際のデバイスでコードを実行しただけでは、応答としてダミー データが返されることに気付いていないかもしれません。

于 2016-11-10T01:50:17.097 に答える