> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Import Job

> Create a Google Ads import into Microsoft Ads, immediately or on a schedule

Create a Google Ads import into Microsoft Ads, immediately or on a schedule. Requires a Microsoft UI-issued Import Credential ID. New campaigns default to paused and existing-entity updates default off. Dry-run previews the request only.

| | |
| - | - |
| **App** | Microsoft Ads |
| **Operation ID** | `microsoft_ads_create_import_job` |
| **Type** | Action |
| **Connection** | `microsoft_ads` (required) |
| **Credits per run** | 1 |
| **Agent / MCP tool** | Yes |
| **Requires approval** | Yes (write operation) |

## Inputs

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `account` | object or array of object or MicrosoftAdsAccountItem or string or integer | Yes | - | Destination Microsoft Ads account. |
| `campaign_ad_group_ids` | array of GoogleImportCampaign | No | - | Source campaign/ad-group selection as an array or JSON text, e.g. \[\{"CampaignId":123456789,"AdGroupIds":\[987654321]}]. On create, omission makes ALL source campaigns eligible. On update, omission preserves the selection. Microsoft may skip invalid source IDs during import; a submitted job does not prove every selected entity imported. |
| `campaign_types` | array of string | No | - | Optional native GoogleImportJob.CampaignTypes filter. Omit to use Microsoft's selection; on update omission preserves it. |
| `frequency` | GoogleImportFrequency | No | - | Schedule object or JSON text. Create without a schedule runs immediately. Update without a schedule preserves the existing one. Example: \{"Type":"Scheduling","Cron":"0 16 \* \* 3 \*","TimeZone":"GreenwichMeanTimeDublinEdinburghLisbonLondon"}. Use \{"Type":"RunNow"} for immediate execution. |
| `import_options` | object or string | No | - | Native GoogleImportOption object or JSON text; all API options and ForwardCompatibilityMap are supported. Example: \{"PauseNewCampaigns":true,"UpdateEntities":false,"DeleteRemovedEntities":false}. Create defaults PauseNewCampaigns=true and UpdateEntities=false unless explicitly overridden. Other values use Microsoft defaults, which enable most imports. On update, omission preserves existing options; supplied options are forwarded as a partial update. Type defaults to GoogleImportOption. Pausing NEW campaigns does not pause existing campaigns. |
| `notification_email` | string | No | - | Email address for Microsoft's import-result notifications. |
| `notification_type` | enum (`None`, `Changes`, `Errors`, `EveryTime`) | No | - | Microsoft import notifications: None, Changes, Errors, EveryTime. Omitted on create means None; omitted on update preserves the setting. |
| `dry_run` | boolean | No | `False` | Show the request without submitting an import. Local payload preview only, not Microsoft validation or a prediction of imported entities. |
| `name` | string | Yes | - | Name of the Google Ads import job. |
| `credential_id` | string | Yes | - | Microsoft Import Credential ID, generated in Microsoft Advertising by searching for 'Import credential ID' and signing into Google. Use the same Microsoft user as this connection and the intended destination manager account. Existing Markifact Google/Microsoft connections alone do not supply this authorization. |
| `google_account_id` | integer | Yes | - | Source Google Ads customer ID, without hyphens. The Import Credential ID must authorize this account. |

### GoogleImportCampaign

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `CampaignId` | integer | Yes | - | Source Google Ads campaign ID. |
| `AdGroupIds` | array of integer | No | - | Source Google ad group IDs. Omit or leave empty for all ad groups in this campaign. |
| `ActiveAdGroupsOnly` | boolean | No | - | When no AdGroupIds are selected, true imports only active ad groups. Otherwise Microsoft ignores this flag. |

### GoogleImportFrequency

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `Type` | enum (`RunNow`, `Scheduling`, `Auto`) | Yes | - | RunNow imports immediately; Scheduling uses Cron; Auto lets Microsoft choose the schedule. |
| `Cron` | string | No | - | Microsoft six-part cron (minute hour day month weekday year). Example: "0 16 \* \* 3 \*" for Wednesdays at 16:00. Used with Scheduling. |
| `TimeZone` | string | No | - | Microsoft time-zone name, e.g. GreenwichMeanTimeDublinEdinburghLisbonLondon. Omitted uses Microsoft's default. |

### MicrosoftAdsAccountItem

| Field | Type | Required | Default | Description |
| - | - | - | - | - |
| `value` | string | Yes | - | |
| `label` | string | Yes | - | |
| `customerId` | string | No | - | The Microsoft Ads customer ID used for REST CustomerId headers. If omitted, it is resolved from the account ID. |

## Output

**Type**: `Dict`

submitted means the job was accepted, not that campaigns finished importing. import\_job\_id is the new/replacement ID. Dry-run returns request\_payload only; inspect actual runs with Get Import Results.

**Fields**: `dry_run`, `submitted`, `request_payload`, `import_job_id`, `response`, `message`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.