Apple Search Ads

The Switchboard Apple Search Ads Connector provides access to automated campaign, ad group cost, and conversion metrics.

Prerequisites

To configure access to the Switchboard Apple Search Ads Connector, you need:

  • Private Key 
  • Client Certificate Pem file

To obtain these credentials, contact the administrator of your Apple Search Ads Account.

Scheduling

Apple Search Ads Connector can be scheduled to ingest data once per day at a user-defined hour and timezone. By default, the connector will run once at 6am PT. See Daily Scheduling for more information.

Report Types

The following report types are available:

Sample Switchboard Script

The Apple Search Ads connector is a bundle connector - each import contains multiple tables. 

Each Apple Search Ads import statement must include a table definition for:

  • ad_group_reports
  • campaign_reports
  • campaigns
import bundle apple_search_ads_bundle {
   type: "apple_search_ads:campaign_bundle";
   key: "apple_search_ads_key";
   api_version: "v3";
   table ad_group_reports using {
       "date": date;
       "granularity": json;
       "metadata": {
                "adGroupId": integer;
                "adGroupName": string;
                "startTime": datetime;
                "endTime": datetime;
                "cpaGoal": string;
                "defaultCpcBid": {
                "amount": float;
                "currency": string;
                };
       "deleted": string;
       "adGroupStatus": string;
       "adGroupServingStatus": string;
       "adGroupServingStateReasons": json;
       "modificationTime": datetime;
       "automatedKeywordsOptIn": boolean;
       "adGroupDisplayStatus": string;
       "campaignId": integer;
       "orgId": integer;
       };
   };
   table campaigns using {
       "id": integer;
       "orgId": integer;
       "name": string;
       "budgetAmount": {
                "amount": integer;
                "currency": string;
                };
       "dailyBudgetAmount": {
                "amount": integer;
                "currency": string;
       };
       "adamId": integer;
       "paymentModel": string;
       "locInvoiceDetails": {
                "clientName": string;
                "orderNumber": string;
                "buyerName": string;
                "buyerEmail": string;
                "billingContactEmail": string;
       };
       "budgetOrders": json;
       "displayStatus": string;
       "startTime": datetime;
       "endTime": datetime;
       "status": string;
       "servingStatus": string;
       "servingStateReasons": json;
       "modificationTime": datetime;
       "deleted": boolean;
       "sapinLawResponse": string;
       "countriesOrRegions": json;
       "countryOrRegionServingStateReasons": json;
       };
   table campaign_reports using {
       "granularity": json;
       "metadata": {
                "campaignId": integer;
                "campaignName": string;
                "deleted": boolean;
                "campaignStatus": string;
                "app": {
                      "appName": string;
                      "adamId": integer;
                };
                "servingStatus": string;
                "servingStateReasons": json;
                "countriesOrRegions": json;
                "modificationTime": datetime;
                "totalBudget": {
                      "amount": integer;
                      "currency": string;
                };
                "dailyBudget": {
                      "amount": integer;
                      "currency": string;
                };
                "displayStatus": string;
                "supplySources": string;
                "adChannelType": string;
                "orgId": integer;
                "countryOrRegionServingStateReasons": json;
                };
       "date": date;
       };
};

Parameters

Parameter

Description

Required/Optional?

api_version

The version of the API used. By default, API version 3 is used.

For Example: api_version: "v3";.

Required