资产

在制作效果最大化广告系列之前,请务必导入您计划在该广告系列中使用的所有素材资源。您以后可以随时返回添加素材资源,但要想开始添加素材资源,还需要一组素材资源。

在规划广告系列时,请仔细阅读效果最大化广告系列的素材资源素材资源要求

由于文字素材资源和图片素材资源是必须选择的主要素材资源类型,因此本指南将演示如何上传这两种素材资源。这些原则也可以扩展到其他素材资源类型。无论您要创建哪种类型的资源,都可以使用 AssetOperation 进行创建。

您可以使用 AdsApp 创建资源而无需使用 mutate,但为了保持一致性,本指南的操作方式与所有其他操作相同。请注意,如果您拥有一些可用的资源,可以而且也应该重复使用现有的资源。因此,虽然制作效果最大化广告系列时必须提供素材资源,但也可能不是严格要求在广告系列制作过程中制作素材资源。

文字素材资源

文字素材资源的运作方式与任何其他操作一样。如果您在广告系列制作过程中上传素材资源,请使用临时 ID。否则,请记下返回的资源名称,以便在日后需要引用该资产以将其添加到素材资源组时使用。

const textAsset = {
  "assetOperation": {
    "create": {
      "resourceName": `customers/${customerId}/assets/${getNextTempId()}`,
      "textAsset": {
        "text": "Travel the World"
      }
    }
  }
}
operations.push(textAsset);

图片素材资源

图片素材资源以 base-64 编码格式上传。由于您无法将图片直接上传到 Google Ads 脚本,因此有两种不同的方法可供您选择获取图片数据,并对其进行编码,以便上传。

如需从 Google 云端硬盘中提取图片,首先您需要其 ID,这是对图片进行唯一标识的最佳方法。获取 ID 的一种方法是从 Google 云端硬盘界面中复制共享链接并提取 ID。您还可以通过编程方式提取一系列文件,然后选择要上传的文件。以下代码演示了如何上传具有已知 ID 的单张图片:

const file = DriveApp.getFileById(fileId);
const imageAsset =  {
  "assetOperation": {
    "create": {
      "resourceName": `customers/${customerId}/assets/${getNextTempId()}`,
      "name": "Marketing Logo",
      "type": "IMAGE",
      "imageAsset": {
        "data": Utilities.base64Encode(file.getBlob().getBytes())
      }
    }
  }
}

或者,您也可以使用 UrlFetchApp 通过网址提取托管在网络服务器上的图片:

const file = UrlFetchApp.fetch(imageUrl);

然后,您可以像调用云端硬盘文件一样对此文件调用 getBlob,因此操作结构与 Google 云端硬盘文件的步骤相同。