Apple Search Ads

RSS for tag

Help potential customers discover your app on the App Store with Apple Search Ads.

Posts under Apple Search Ads tag

170 Posts

Post

Replies

Boosts

Views

Activity

Apple Search Ads API – 401 Unauthorized (Invalid Token) Issue
import requests import time import json import gspread import base64 import hashlib from oauth2client.service_account import ServiceAccountCredentials from datetime import datetime, timedelta, timezone from cryptography.hazmat.primitives import serialization, hashes from cryptography.hazmat.primitives.asymmetric import ec from cryptography.hazmat.backends import default_backend import jwt def base64url_encode(data): return base64.urlsafe_b64encode(data).rstrip(b'=') def generate_apple_jwt(): with open(PRIVATE_KEY_PATH, "rb") as key_file: private_key = serialization.load_pem_private_key( key_file.read(), password=None, backend=default_backend() ) headers = { "alg": "ES256", "kid": KEY_ID, "typ": "JWT" } payload = { "iss": TEAM_ID, "sub": CLIENT_ID, "aud": "https://api.searchads.apple.com", "iat": int(time.time()), "exp": int(time.time()) + 3600, } header_bytes = base64url_encode(json.dumps(headers, separators=(',', ':')).encode('utf-8')) payload_bytes = base64url_encode(json.dumps(payload, separators=(',', ':')).encode('utf-8')) signing_input = header_bytes + b'.' + payload_bytes signature = private_key.sign( signing_input, ec.ECDSA(hashes.SHA256()) ) jwt_token = signing_input + b'.' + base64url_encode(signature) return jwt_token.decode('utf-8') what is wrong??
2
0
245
Apr ’25
Ads Basic not updating on web site but being billed
Hi, Last month ads basic was working properly, showed me having 58 installs. This month, 5 installs and it is almost the end of the month...but the invoices I get are telling me that I am paying for ads basic clicks, way more than 5. Ads Advanced is working as normal, volumes as expected. Just wondering if anyone else having this happen too? Thanks, Colin
0
0
200
Apr ’25
Requesting Code-Level Support: Node.js Script to Fetch US Education Apps with "Exam Prep" by Revenue
Hi Apple Developer Support, I’m working on a Node.js script to fetch all apps listed under the Education category and Reference subcategory from the US App Store, where the app name includes "exam prep". My goal is to list these apps in descending order of their earned revenue (including both paid apps and those with subscriptions). To proceed, I’m looking for guidance or code-level support on: Accessing App Store metadata programmatically via Apple-approved APIs. Filtering apps by category, subcategory, and keywords in the app name. Sorting the result set by revenue (paid and subscription earnings). Is there any recommended API or service (official or via App Store Connect) that I should be using to achieve this? Appreciate any direction, documentation, or sample code that can help. Thanks in advance!
0
0
238
Apr ’25
Failed to verify your identity. Try Again - Error on AppStore Connect / Developer / SearchAds
This error appeared yesterday out of the blue. I'd been on appstoreconnect.apple.com working on an app update and later in the day when I tried to log in again I immediately get the error, "Failed to verify your identity. Try Again". No verification code is sent and it's not a password issue, as that's a different error. I'm able to log in to iOS devices and Apple's apps, like the App Store Connect App. I was even able to log in to the Apple Support App and change my password, but I still couldn't access any Apple websites. If I try to log in to icloud.com, searchads, appstoreconnect.apple.com, developer.apple.com, or appleid.apple.com I immediately get the same error and no 2FA code is sent. I've seen online that others have had this issue and some resolved it by appending a verification code to the end of their password, but that hasn't worked for me. (Even though Apple's sites fail to send the 2FA I was able to get a code by going into iOS Settings->iCloud->Passwords & Security->Send Code). Has anyone had this issue and been able to resolve it? I've seen online that people have periodically experienced this issue for years, but I've seen no solution other than the code-appending trick. Apple Developer Support and regular Apple Support haven't been able to help so far (they also told me to try appending a 2FA code to my password). I had to create another Apple ID just to be able to get back into this forum and also the Contact Support page. But now that I have a support case the only way I can communicate with the rep is by logging in with the ID that actually has the login issue. The issue may be rare, but it's been around for several years and Apple has set up its support systems in a way that makes it extremely difficult to get support in these circumstances. In fact, regular Apple Support has no ability to even transfer a call to Developer support. If anyone can help me with this I'll buy you a beer--heck, several beers. Thanks
18
7
45k
Apr ’25
Workbench Ad Tester not returning preview URLs
Apologies if this isn't tagged right but dev tools and services seemed the most appropriate since this is related to the workbench Ad Tester tool. I'm seeing a behavior where the preview link is not being generated. Specifically, I am seeing a POST request to the following URL consistently fail: https://iadworkbench.apple.com/adtester/api/v1/ads/previewLink?orgId=1127861 Variations/scenarios I have tried so far: All possible ad format choices on all possible devices All options for the placement type Both third party and uploaded creative sources Uploaded creative sources appear to be failing to upload as well A simple div with a "hello world" content fails as a third party creative source Multiple apple accounts I created a new account specifically to test if my primary apple ID was experiencing issues with this Multiple browsers I have tried multiple versions of Chrome/Firefox/Safari I tested with and without browser extensions to determine whether an extension was interfering or not Clearing session/local storage along with cookies I also created new profiles in browsers to verify that I was getting a fresh browser environment In all of these cases, the API request to generate a preview link is consistently failing with a 500 error code. It's worth noting that the web preview option works, but this isn't a truly accurate test environment and can't be solely relied on when testing ad content. I don't know exactly when this started happening as I have not used it in the last couple of weeks but I have used the workbench ad tester extensively in the past the same way I have been trying with my current test without issue. That coupled with the fact that the request for the preview link consistently fails in all of the test scenarios I've outlined above leads me to believe there is a problem with the API that is responsible for generating the preview links.
0
0
345
Apr ’25
Are Deep Links on Custom Product Pages working?
I created a new Custom Product Page with a Deep Link, according to the WWDC '24 session "What's new in App Store Connect", and everything has been approved, but the Deep Link does not appear to be working. Is this feature fully operational yet? When the app is installed via this product page, the user should be directed to a specific page in the app, however this does not happen. It does work properly when installing directly via the Deep Link This is the link to the product page: https://apps.apple.com/app/bills-to-budget/id1636872963?ppid=ff079a93-be32-43fe-a88e-ad97a68ff725
7
2
4.6k
Feb ’25
Issue with Empty Reporting in Apple Search Ads (Basic)
Hi, I am using Apple Search Ads (Basic), and I’ve noticed that my bank account has been debited weekly. However, when I recently tried to access the reports, they appear empty. Please see the attached screenshots for reference. Is there a customer support representative from Apple Search Ads who can assist me with this issue? Thank you.
0
0
528
Jan ’25
error 1001 no fill with facebook ads loading
Hi ! I am trying to insert interstitial ads in my app with facebook ads. I found app id, placement id and when I am running my app I have the following error : Interstitial ad failed to load with error: Error Domain=com.facebook.ads.sdk Code=1001 "No fill" UserInfo={NSLocalizedDescription=No fill, FBAdErrorDetailKey={ msg = "No fill"; }} Could you help me ?
2
0
579
Dec ’24
Search Ads Basic?
Does anyone have any luck getting Search Ads Basic to work? Since I released my app, I've attempted to get a campaign going. This was months ago. It occasionally spends a little. Each time, well under my max. It usually sits at zero. I try raising the max and raising the budget and it will show a little activity then stop again. What is the trick? There doesn't seem to be very many things to change. 90 countries, max CPI way higher than the average when it does spend, trying a $1500 budget. It's like it's glitched out.
2
0
659
Dec ’24
Auth with app specific password to access SearchAds API
Hi I'm building native app for SearchAds. Is it possible to use app specific password with SearchAds API or get a token using app specific password? I know its possible using JWT: https://developer.apple.com/documentation/apple_search_ads/implementing_oauth_for_the_apple_search_ads_api But using that in the app is not very user friendly even if the app will generate public and private keys.
1
3
575
Nov ’24
ASA Basic Hasn't Worked Since Update
I finally got ASA Basic to spend a little. After months of nothing. Maybe my max was too low but it was always higher than the average I am seeing. Then when the update occurred that announced the addition of other countries, I selected all those. I noticed they were all flagged with an error and I also didn't get any new installs. So I deselected all those such that the error flags were gone. But days have gone by and not one new install attributed to Basic. Any ideas?
0
0
507
Nov ’24
500 error for POST https://app.searchads.apple.com/cm/api/v4/bulk/upload (Search Ads Advanced)
It’s currently impossible to bulk upload an Apple Search Ads structure in the UI of Search Ads Advanced account. I used the provided XLSX template for bulk structure creation, but each time I attempt to upload the file, I encounter the following error: "Due to one or more issues, fileName.xlsx couldn't be uploaded." As I see, there is a 500 error for the V4 API call in the console. I
1
1
511
Oct ’24
Apple Search Ads Reports API - Invalid Request JSON
I'm trying to call https://api.searchads.apple.com/api/v5/reports/campaigns but getting the following response: {"data":null,"pagination":null,"error":{"errors":[{"messageCode":"INVALID_JSON_REQUEST","message":"This is an invalid json. The request can not be parsed","field":"Line#:1 Column#:13"}]}} I've used all suggested options for request parameters from documentation, e.g. { "startTime": "2024-04-08", "endTime": "2024-04-09", "selector": { "orderBy": [ { "field": "countryOrRegion", "sortOrder": "ASCENDING" } ], "conditions": [ { "field": "countriesOrRegions", "operator": "CONTAINS_ANY", "values": [ "US", "GB" ] }, { "field": "countryOrRegion", "operator": "IN", "values": [ "US" ] } ], "pagination": { "offset": 0, "limit": 1000 } }, "groupBy": [ "countryOrRegion" ], "timeZone": "UTC", "returnRecordsWithNoMetrics": true, "returnRowTotals": true, "returnGrandTotals": true } What's the proper way to call this API?
1
0
710
Oct ’24
Apple Search Ads API – 401 Unauthorized (Invalid Token) Issue
import requests import time import json import gspread import base64 import hashlib from oauth2client.service_account import ServiceAccountCredentials from datetime import datetime, timedelta, timezone from cryptography.hazmat.primitives import serialization, hashes from cryptography.hazmat.primitives.asymmetric import ec from cryptography.hazmat.backends import default_backend import jwt def base64url_encode(data): return base64.urlsafe_b64encode(data).rstrip(b'=') def generate_apple_jwt(): with open(PRIVATE_KEY_PATH, "rb") as key_file: private_key = serialization.load_pem_private_key( key_file.read(), password=None, backend=default_backend() ) headers = { "alg": "ES256", "kid": KEY_ID, "typ": "JWT" } payload = { "iss": TEAM_ID, "sub": CLIENT_ID, "aud": "https://api.searchads.apple.com", "iat": int(time.time()), "exp": int(time.time()) + 3600, } header_bytes = base64url_encode(json.dumps(headers, separators=(',', ':')).encode('utf-8')) payload_bytes = base64url_encode(json.dumps(payload, separators=(',', ':')).encode('utf-8')) signing_input = header_bytes + b'.' + payload_bytes signature = private_key.sign( signing_input, ec.ECDSA(hashes.SHA256()) ) jwt_token = signing_input + b'.' + base64url_encode(signature) return jwt_token.decode('utf-8') what is wrong??
Replies
2
Boosts
0
Views
245
Activity
Apr ’25
Ads Basic not updating on web site but being billed
Hi, Last month ads basic was working properly, showed me having 58 installs. This month, 5 installs and it is almost the end of the month...but the invoices I get are telling me that I am paying for ads basic clicks, way more than 5. Ads Advanced is working as normal, volumes as expected. Just wondering if anyone else having this happen too? Thanks, Colin
Replies
0
Boosts
0
Views
200
Activity
Apr ’25
Requesting Code-Level Support: Node.js Script to Fetch US Education Apps with "Exam Prep" by Revenue
Hi Apple Developer Support, I’m working on a Node.js script to fetch all apps listed under the Education category and Reference subcategory from the US App Store, where the app name includes "exam prep". My goal is to list these apps in descending order of their earned revenue (including both paid apps and those with subscriptions). To proceed, I’m looking for guidance or code-level support on: Accessing App Store metadata programmatically via Apple-approved APIs. Filtering apps by category, subcategory, and keywords in the app name. Sorting the result set by revenue (paid and subscription earnings). Is there any recommended API or service (official or via App Store Connect) that I should be using to achieve this? Appreciate any direction, documentation, or sample code that can help. Thanks in advance!
Replies
0
Boosts
0
Views
238
Activity
Apr ’25
Failed to verify your identity. Try Again - Error on AppStore Connect / Developer / SearchAds
This error appeared yesterday out of the blue. I'd been on appstoreconnect.apple.com working on an app update and later in the day when I tried to log in again I immediately get the error, "Failed to verify your identity. Try Again". No verification code is sent and it's not a password issue, as that's a different error. I'm able to log in to iOS devices and Apple's apps, like the App Store Connect App. I was even able to log in to the Apple Support App and change my password, but I still couldn't access any Apple websites. If I try to log in to icloud.com, searchads, appstoreconnect.apple.com, developer.apple.com, or appleid.apple.com I immediately get the same error and no 2FA code is sent. I've seen online that others have had this issue and some resolved it by appending a verification code to the end of their password, but that hasn't worked for me. (Even though Apple's sites fail to send the 2FA I was able to get a code by going into iOS Settings->iCloud->Passwords & Security->Send Code). Has anyone had this issue and been able to resolve it? I've seen online that people have periodically experienced this issue for years, but I've seen no solution other than the code-appending trick. Apple Developer Support and regular Apple Support haven't been able to help so far (they also told me to try appending a 2FA code to my password). I had to create another Apple ID just to be able to get back into this forum and also the Contact Support page. But now that I have a support case the only way I can communicate with the rep is by logging in with the ID that actually has the login issue. The issue may be rare, but it's been around for several years and Apple has set up its support systems in a way that makes it extremely difficult to get support in these circumstances. In fact, regular Apple Support has no ability to even transfer a call to Developer support. If anyone can help me with this I'll buy you a beer--heck, several beers. Thanks
Replies
18
Boosts
7
Views
45k
Activity
Apr ’25
Workbench Ad Tester not returning preview URLs
Apologies if this isn't tagged right but dev tools and services seemed the most appropriate since this is related to the workbench Ad Tester tool. I'm seeing a behavior where the preview link is not being generated. Specifically, I am seeing a POST request to the following URL consistently fail: https://iadworkbench.apple.com/adtester/api/v1/ads/previewLink?orgId=1127861 Variations/scenarios I have tried so far: All possible ad format choices on all possible devices All options for the placement type Both third party and uploaded creative sources Uploaded creative sources appear to be failing to upload as well A simple div with a "hello world" content fails as a third party creative source Multiple apple accounts I created a new account specifically to test if my primary apple ID was experiencing issues with this Multiple browsers I have tried multiple versions of Chrome/Firefox/Safari I tested with and without browser extensions to determine whether an extension was interfering or not Clearing session/local storage along with cookies I also created new profiles in browsers to verify that I was getting a fresh browser environment In all of these cases, the API request to generate a preview link is consistently failing with a 500 error code. It's worth noting that the web preview option works, but this isn't a truly accurate test environment and can't be solely relied on when testing ad content. I don't know exactly when this started happening as I have not used it in the last couple of weeks but I have used the workbench ad tester extensively in the past the same way I have been trying with my current test without issue. That coupled with the fact that the request for the preview link consistently fails in all of the test scenarios I've outlined above leads me to believe there is a problem with the API that is responsible for generating the preview links.
Replies
0
Boosts
0
Views
345
Activity
Apr ’25
Rate limits for search ads API
Hi, I wanted to know if there are rate limits available for Apple search ads API? Or if there is a number that we should try to be under to ensure we never cross the rate limits? Best, Ritvik
Replies
0
Boosts
0
Views
171
Activity
Mar ’25
Showing Ad‘s with no reward
Is it possible to integrate a button in an app that displays advertisements to support charities -without offering any direct reward to the user?
Replies
0
Boosts
0
Views
325
Activity
Feb ’25
Unable to access search ads "Basic"
I am unable to access search ads, basic tab, from last 10 days. It keeps showing error "We're busy updating Apple Search Ads and will be back online within the next few hours. Ads will continue serving during this time." Is anyone else facing the same issue? or have any solution?
Replies
1
Boosts
2
Views
650
Activity
Feb ’25
Are Deep Links on Custom Product Pages working?
I created a new Custom Product Page with a Deep Link, according to the WWDC '24 session "What's new in App Store Connect", and everything has been approved, but the Deep Link does not appear to be working. Is this feature fully operational yet? When the app is installed via this product page, the user should be directed to a specific page in the app, however this does not happen. It does work properly when installing directly via the Deep Link This is the link to the product page: https://apps.apple.com/app/bills-to-budget/id1636872963?ppid=ff079a93-be32-43fe-a88e-ad97a68ff725
Replies
7
Boosts
2
Views
4.6k
Activity
Feb ’25
Issue with Empty Reporting in Apple Search Ads (Basic)
Hi, I am using Apple Search Ads (Basic), and I’ve noticed that my bank account has been debited weekly. However, when I recently tried to access the reports, they appear empty. Please see the attached screenshots for reference. Is there a customer support representative from Apple Search Ads who can assist me with this issue? Thank you.
Replies
0
Boosts
0
Views
528
Activity
Jan ’25
error 1001 no fill with facebook ads loading
Hi ! I am trying to insert interstitial ads in my app with facebook ads. I found app id, placement id and when I am running my app I have the following error : Interstitial ad failed to load with error: Error Domain=com.facebook.ads.sdk Code=1001 "No fill" UserInfo={NSLocalizedDescription=No fill, FBAdErrorDetailKey={ msg = "No fill"; }} Could you help me ?
Replies
2
Boosts
0
Views
579
Activity
Dec ’24
Apple Search Ads Basic - no impressions
For over a week now my ads have been live and the status is running but I have $0 spend, impressions, etc... Any ideas about what I'm missing would be greatly appreciated!
Replies
0
Boosts
0
Views
482
Activity
Dec ’24
Search Ads Basic?
Does anyone have any luck getting Search Ads Basic to work? Since I released my app, I've attempted to get a campaign going. This was months ago. It occasionally spends a little. Each time, well under my max. It usually sits at zero. I try raising the max and raising the budget and it will show a little activity then stop again. What is the trick? There doesn't seem to be very many things to change. 90 countries, max CPI way higher than the average when it does spend, trying a $1500 budget. It's like it's glitched out.
Replies
2
Boosts
0
Views
659
Activity
Dec ’24
App Specific Password
I am using an ASO tool. After linking my Search Ads account campaign with my App Store Connect account, it gets my email and app specific password then makes API call to search ads. I couldn't find any documentation regarding this flow. Can someone lead me to the correct path where I can implement a similar flow? Thank you all
Replies
0
Boosts
2
Views
622
Activity
Nov ’24
Auth with app specific password to access SearchAds API
Hi I'm building native app for SearchAds. Is it possible to use app specific password with SearchAds API or get a token using app specific password? I know its possible using JWT: https://developer.apple.com/documentation/apple_search_ads/implementing_oauth_for_the_apple_search_ads_api But using that in the app is not very user friendly even if the app will generate public and private keys.
Replies
1
Boosts
3
Views
575
Activity
Nov ’24
ASA Basic Hasn't Worked Since Update
I finally got ASA Basic to spend a little. After months of nothing. Maybe my max was too low but it was always higher than the average I am seeing. Then when the update occurred that announced the addition of other countries, I selected all those. I noticed they were all flagged with an error and I also didn't get any new installs. So I deselected all those such that the error flags were gone. But days have gone by and not one new install attributed to Basic. Any ideas?
Replies
0
Boosts
0
Views
507
Activity
Nov ’24
Is Apple Search Ads available for visionOS?
I'm trying to buy ASA for my vision pro only app, but when I enter my app, it says cannot find my app. When I click on "Can't find your app?", it brings me to a page that says "To set up an Apple Search Ads account, you must have an app for iPhone or iPad currently on the App Store". So wondering is ASA available for visionOS?
Replies
0
Boosts
3
Views
566
Activity
Nov ’24
500 error for POST https://app.searchads.apple.com/cm/api/v4/bulk/upload (Search Ads Advanced)
It’s currently impossible to bulk upload an Apple Search Ads structure in the UI of Search Ads Advanced account. I used the provided XLSX template for bulk structure creation, but each time I attempt to upload the file, I encounter the following error: "Due to one or more issues, fileName.xlsx couldn't be uploaded." As I see, there is a 500 error for the V4 API call in the console. I
Replies
1
Boosts
1
Views
511
Activity
Oct ’24
Impression Share Report: how to delete or update?
Hi there, I plan to use the Impression Share Report on a daily base. Can I face a kind of threshold issue if I create hundreds of reports per year for orgId? Is there a way to delete a created report after the reporting data were retrieved? Or maybe to change the requested date range and re-run it? Thanks & regards, Evgeniy
Replies
1
Boosts
0
Views
433
Activity
Oct ’24
Apple Search Ads Reports API - Invalid Request JSON
I'm trying to call https://api.searchads.apple.com/api/v5/reports/campaigns but getting the following response: {"data":null,"pagination":null,"error":{"errors":[{"messageCode":"INVALID_JSON_REQUEST","message":"This is an invalid json. The request can not be parsed","field":"Line#:1 Column#:13"}]}} I've used all suggested options for request parameters from documentation, e.g. { "startTime": "2024-04-08", "endTime": "2024-04-09", "selector": { "orderBy": [ { "field": "countryOrRegion", "sortOrder": "ASCENDING" } ], "conditions": [ { "field": "countriesOrRegions", "operator": "CONTAINS_ANY", "values": [ "US", "GB" ] }, { "field": "countryOrRegion", "operator": "IN", "values": [ "US" ] } ], "pagination": { "offset": 0, "limit": 1000 } }, "groupBy": [ "countryOrRegion" ], "timeZone": "UTC", "returnRecordsWithNoMetrics": true, "returnRowTotals": true, "returnGrandTotals": true } What's the proper way to call this API?
Replies
1
Boosts
0
Views
710
Activity
Oct ’24