0

Apple Search Ads API を介してレポート データを取得しようとしています。そこで、メソッド -H ...\ -d "@TestSearchTermReport.json" -X POST "/v1/reports/campaigns/{cId}/searchterms" を使用します

すべてのヘッダーと資格情報を含めました。以下は、POST 本文の json データ ファイルの内容です。 ": "DAILY", "selector": { "orderBy":[{"field":"spend","sortOrder":"DESCENDING"}], "fields": ["spend", "taps", "conversions" ", "avgCPA", "avgCPC", "ttr", "conversionRate"], "ページネーション": { "offset": 0, "limit": 1000 } }, "groupBy": "countryCode", "returnRowTotals":間違い、 "

ただし、次のエラー メッセージが表示されます。

{"data":null,"pagination":null,"error":{"errors":[{"messageCode":"INVALID_JSON_REQUEST","message":"これは無効な json です。リクエストを解析できません" ,"フィールド":"行番号:1 列番号:3"}]}}

私はさまざまな方法で何度も試しましたが、まだうまくいきません。私を助けてくれる賢い人はいますか?

前もって感謝します!

4

3 に答える 3

6

私は自分でこの API に苦労してきました。ドキュメントはユーザーフレンドリーではありません!

ここにいくつかの問題があるようです:

  • Timezone と Granularity は列挙型であるため、値は文字列ではなく数値である必要があります。実際、タイムゾーン フィールドで呼び出すたびにエラーが発生するので、解決策が見つかるまで、当分の間これを省略します。
  • フィールド名の一部が正しくありません。expend、avgCPC、countryCode は、それぞれ localSpend、avgCPT、COUNTRY_CODE にする必要があります。
  • グループ化フィールドはリストである必要があります。

Pythonを使用しているので、これを試してください:

import requests

org_id = <YOUR_ORG_ID>
certificate_path = '<PATH_TO_YOUR_CERTIFICATE>'
certificate_key_path = '<PATH_TO_YOUR_CERTIFICATE_KEY>'
campaign_id = <YOUR_CAMPAIGN_ID>


headers = {"Authorization": "orgId=%s" % org_id}    
payload = {
                "startTime": "2016-11-13", 
                "endTime": "2016-11-13",
                "granularity": 1, 
                "selector": {
                    "orderBy":[{"field":"localSpend","sortOrder":"DESCENDING"}], 
                    "fields": ["localSpend", "taps", "conversions", "avgCPA", "avgCPT", "ttr", "conversionRate"], 
                    "pagination": { "offset": 0, "limit": 1000 }
                    }, 
                "groupBy": ["COUNTRY_CODE"], 
                "returnRowTotals": False, 
                "returnRecordsWithNoMetrics": False
            }
url = 'https://api.searchads.apple.com/api/v1/reports/campaigns/%s/searchterms' % campaign_id
response = requests.post(url, cert=(certificate_path, certificate_key_path), json=payload, headers=headers)
print(response.text)

これにより、成功した応答が返されます。それがあなたにとってもうまくいくことを願っています!

于 2016-11-24T11:49:35.520 に答える