Package: searchadscli
SearchAdsCLISearchAdsCLI is a command line interface for setting up Apple Search Ads campaigns and does the heavy lifting around adding new keywords in a three campaign structure.QuickstartSet up Apple Search Ads account create an API userpip install searchadssearchads configuresearchads setup-campaignssearchads add-keywordsProfit 🎉Generate Search Ads API KeyAccount administrators invite users with API permissions using the following process:From theApple Search Ads UI, choose Sign In > Advanced and log in as an account administrator.From the Users menu in the top-right corner, select the account to invite users to.Choose Account Settings > User Management.Click Invite Users to invite users to your Apple Search Ads organization.In the User Details section, enter the user’s first name, last name, and Apple ID. Note that you may need to create a secondary Apple account, as the Apple Search Ads owner cannot be an API user as well.In the User Access and Role section, select an API user role.Click Send Invite. The invited user receives an email with a secure code. The user signs into the secure Apple URL in the email and inputs the provided code, which activates the user’s account.Generate Private Key:opensslecparam-genkey-nameprime256v1-noout-outprivate-key.pemGenerate Public Key:opensslec-inprivate-key.pem-pubout-outpublic-key.pemOpen thepublic-key.pemfile in a text editor and copy/paste the public key, including the begin and end lines, into the Apple Search Ads dashboard.InstallationpipinstallsearchadsConfigureFirst, you’ll need to provide some configuration details so SearchAdsCLI can communicate with your Apple Search Ads account. Runsearchads configand follow the prompts.searchadsconfigCreate CampaignsCreating campaigns through SearchAdsCLI creates a three campaign structure automatically.Exact Campaign:This is your core campaign that bids on exact matches to provided keywords.Discovery Campaign:This is an exploratory campaign that bids on similar keywords to those in your Exact Campaign, but explicitly blocks the identical keywords to avoid bidding against yourself between campaigns. The goal of the Discovery Campaign is to uncover new keywords to feed into the Exact Campaign.Competitor Campaign:This campaign is setup the same as the Exact Campaign, with bids on exact matches to provided keywords, but it specifically designed for competitor app names. The reason for making this a separate campaign is to have control over the daily spend. Generally you’ll spend less per day on the Competitor Campaign then you would on the Exact Campaign.This campaign structure is widely used, and even recommended by Apple (ref).To begin creating campaigns, run the following command:searchadssetup-campaignsChoose countriesYou’ll be prompted to enter the country or countries you want the campaigns to run it. The default is the United States. You may want to use a list of countries if you want to run campaigns in a region of similar, smaller countries. If you're just starting out, stick to a single Tier 1 country.Pause existing campaignsNext, the CLI will search for any active campaigns already running in the selected countries. If any are found, you’ll be asked if you want to pause those active campaigns. It’s recommended that you pause any campaigns already running so they don’t compete with any newly created campaigns.Enter daily budgetsYou’ll need to enter a daily budget for each campaign being created. It’s not guaranteed your entire budget will be spent each day, but you won’t spend more than the limit. Think of it as an approximate maximum spend.Discovery campaignA good practice is to allocate 20% of your budget to the Discovery campaign.Exact campaignThis should be the majority of your budget.CompetitorYour budget here will vary based on the direct competition you’re targeting.Enter default bidIn addition to the daily budget, you need to enter a default bid for each keyword created under the campaigns. Typically this is in the range of $0.50 - $2.00 USD but can (and should) be adjusted on a keyword-by-keyword basis later to optimize your campaigns.Campaigns created!With country and budget information entered, your campaigns will automatically get created in your Apple Search Ads dashboard. You should be able to see the newly created campaigns there with aSearchAdsCLI_prefix in the name.🚧 Do not change the name of any Campaigns or Ad Groups created by SearchAdsCLI from the Apple Search Ads dashboard!Add KeywordsAfter creating your campaigns, it’s a good idea to add some initial keywords. When adding keywords through SearchAdsCLI they’ll be created in two places:Keywords will be added to your Exact Campaign to bid against exact matches for the word.Keywords will be added to your Discovery Campaign as broad match keywords. This will allow the campaign to discover similar keywords.To add keywords, run:searchadsadd-keywordsYou’ll be prompted to select which campaign you want to create the keywords in. This is useful if you’re running campaigns in different countries or regions and only want to add a keyword for a specific country/region.Competitor keywordsIf you want to add competitor names to your Competitor Campaign, run theadd-keywordscommand with acompetitorparameter.searchadsadd-keywords--typecompetitorThis will add exact matches for the word in your Competitor Campaign but will NOT add a broad match for the term in your Discovery Campaign.Negative KeywordsIf there are keywords you want to prevent from ever bidding against, you can add these as negative keywords through SearchAdsCLI. Adding a negative keyword will prevent any of your campaigns from bidding against these keywords unless added back throughadd-keywords.Campaign managementYour campaigns are up and running - now what? First and foremost, patience is key. Allow at least 24 hours after setting up a new campaign to check on results. This will give time to gather enough data to display any meaningful results.1. Leverage the Discovery CampaignNew Keyword Ideas:Regularly review the keywords from your Discovery Campaign. This campaign is designed to help you discover potential new keywords that are relevant to your app.Adding Keywords:If you find a new keyword from your Discovery Campaign that leads to a successful app installation, you should move it to your Exact Campaign. Use the commandsearchads add-keywordsto add it.2. Optimize Your Keyword BidsAdjust Bids:Make a routine to adjust your keyword bids (CPT) daily based on the performance.Low Impressions:If your keywords are not getting enough impressions, consider increasing your bids. A higher bid can improve the visibility of your ad in search results.Low Conversion:On the contrary, if you're seeing high impressions but they're not translating to conversions, consider lowering the bids. This will help manage your budget more effectively.3. Understand the Lifetime Value (LTV)Evaluate LTV:After the first few weeks of running campaigns, dedicate time to understanding the Lifetime Value (LTV) of users acquired through ads.Compare LTV:For some keywords, the LTV from users who install via the ads may be higher than those who come organically, while for others, it might be the opposite. Identifying these patterns can help you allocate your budget to the most profitable keywords and help you set CPT benchmarks.Feedback?If there’s something else you’d like to see covered here open an issue or submit a PR.