The same upload specified to change Campaign Management entities.
forOfflineConversions()
Specifies that this upload is used for reporting offline conversions.
By default, uploads are used for Campaign Management entity changes, so
it's necessary to call CsvUpload.forOfflineConversions()
to make offline conversion uploads work correctly.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[[["\u003cp\u003e\u003ccode\u003eCsvUpload\u003c/code\u003e facilitates incremental building and uploading of data in CSV format to Google Ads.\u003c/p\u003e\n"],["\u003cp\u003eIt provides methods for appending rows, specifying upload type (Campaign Management or Offline Conversions), applying changes, and previewing them.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eappend()\u003c/code\u003e adds data rows to the CSV upload, matching keys with column headers.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eapply()\u003c/code\u003e and \u003ccode\u003epreview()\u003c/code\u003e initiate the upload for either enacting changes or previewing them, respectively.\u003c/p\u003e\n"],["\u003cp\u003eYou can specify the upload to be for Campaign Management (default) or Offline Conversions using respective methods.\u003c/p\u003e\n"]]],[],null,["Represents a Bulk Upload which can be incrementally built up in CSV format and uploaded to the Bulk Uploads service.\n\nMethods:\n\n| Member | Type | Description |\n|---------------------------------------------------|--------------------------------------------------------------------------------|----------------------------------------------------------------------------|\n| [append](#append_1) | [AdsApp.CsvUpload](/google-ads/scripts/docs/reference/adsapp/adsapp_csvupload) | Appends a row to the Bulk Upload. |\n| [apply](#apply_0) | `void` | Uploads the file and applies the changes. |\n| [forCampaignManagement](#forCampaignManagement_0) | [AdsApp.CsvUpload](/google-ads/scripts/docs/reference/adsapp/adsapp_csvupload) | Specifies that this upload is used for Campaign Management entity changes. |\n| [forOfflineConversions](#forOfflineConversions_0) | [AdsApp.CsvUpload](/google-ads/scripts/docs/reference/adsapp/adsapp_csvupload) | Specifies that this upload is used for reporting offline conversions. |\n| [preview](#preview_0) | `void` | Uploads the file and previews the changes. |\n| [setFileName](#setFileName_1) | [AdsApp.CsvUpload](/google-ads/scripts/docs/reference/adsapp/adsapp_csvupload) | Sets the file name of the uploaded file. |\n\n`append(row)` Appends a row to the Bulk Upload.\n\nThe row object is a key-value map. For each key-value pair:\n\n- If the key exists in the provided column headers, its value will fill into the cell corresponding to the matching column;\n- If it doesn't exist, the key-value pair is ignored.\n\n```brainfuck\n// The resulting CSV bulk upload of the following code would be:\n// +-------------+-------------+----------------+\n// | Campaign | Campaign ID | Campaign state |\n// +-------------+-------------+----------------+\n// | Campaign #2 | 2001684997 | enabled |\n// +-------------+-------------+----------------+\nvar bulkUpload = AdsApp.bulkUploads().newCsvUpload([\n \"Campaign\",\n \"Campaign ID\",\n \"Campaign state\"]);\nbulkUpload.append({\n \"Campaign\":\"Campaign #2\",\n \"Campaign ID\":\"2001684997\",\n \"Campaign state\":\"enabled\"});\n```\n\nArguments:\n\n| Name | Type | Description |\n|------|----------|---------------------------|\n| row | `Object` | The row object to append. |\n\nReturn values:\n\n| Type | Description |\n|--------------------------------------------------------------------------------|------------------------------------------|\n| [AdsApp.CsvUpload](/google-ads/scripts/docs/reference/adsapp/adsapp_csvupload) | The Bulk Upload with the additional row. |\n\n`apply()` Uploads the file and applies the changes.\n\n\u003cbr /\u003e\n\n| When previewing a script, `apply()` previews the Bulk Upload instead of applying it.\n\nReturns nothing.\n\n`forCampaignManagement()` Specifies that this upload is used for Campaign Management entity changes.\n\nThis is the default option, so this method doesn't need to be called\nexcept to override a previous call to [CsvUpload.forOfflineConversions()](/google-ads/scripts/docs/reference/adsapp/adsapp_csvupload#forOfflineConversions_0).\n\nReturn values:\n\n| Type | Description |\n|--------------------------------------------------------------------------------|-------------------------------------------------------------------|\n| [AdsApp.CsvUpload](/google-ads/scripts/docs/reference/adsapp/adsapp_csvupload) | The same upload specified to change Campaign Management entities. |\n\n`forOfflineConversions()` Specifies that this upload is used for reporting offline conversions.\n\nBy default, uploads are used for Campaign Management entity changes, so\nit's necessary to call [CsvUpload.forOfflineConversions()](/google-ads/scripts/docs/reference/adsapp/adsapp_csvupload#forOfflineConversions_0)\nto make offline conversion uploads work correctly.\n\nReturn values:\n\n| Type | Description |\n|--------------------------------------------------------------------------------|----------------------------------------------------------|\n| [AdsApp.CsvUpload](/google-ads/scripts/docs/reference/adsapp/adsapp_csvupload) | The same upload specified to report offline conversions. |\n\n`preview()` Uploads the file and previews the changes.\n\nReturns nothing.\n\n`setFileName(fileName)` Sets the file name of the uploaded file.\n\nArguments:\n\n| Name | Type | Description |\n|----------|----------|-------------------------------------|\n| fileName | `String` | The file name of the uploaded file. |\n\nReturn values:\n\n| Type | Description |\n|--------------------------------------------------------------------------------|---------------------------------------------|\n| [AdsApp.CsvUpload](/google-ads/scripts/docs/reference/adsapp/adsapp_csvupload) | The same upload with the file name applied. |"]]