Google 提供了多种产品和受众群体,供您用来构建广告系列,但您可能不知道如何制定计划。为了帮助您解决这个问题,
ReachPlanService 提供了发现方法
您可以使用这些方法 生成曲线。
受众群体定位
媒体计划的第一个组成部分是受众群体定位,其中可以包含以下定位条件:
- 受众群体:使用
AudienceTargeting定位兴趣相似的受众群体、有购买意向的受众群体和人生大事受众群体。 - 年龄段 :使用
ReachPlanAgeRange枚举指定目标年龄段。 - 性别 :使用
GenderInfo条件定位特定性别。 - 设备:使用
DeviceInfo条件定位特定设备。 - 位置:使用
ListPlannableLocations查找受支持的位置 ID。 - 网络:使用
ListPlannableLocations查找适用的网络(可能因产品和区域而异)。 - YouTube 优选频道组:在
YouTubeSelectSettings覆盖面计划中使用 定位特定频道组,以便在 YouTube 上通过精选内容覆盖参与度高的受众群体。
产品组合
除了定位信息之外,您还必须指定产品组合,才能生成曲线。
ListPlannableProducts
方法在 ReachPlanService 上会显示给定位置 ID 的最新
可用格式。这些格式由
ProductMetadata中的以下字段表示:
plannable_product_codeplannable_product_nameplannable_product_descriptionplannable_product_core_attributes:用于描述产品功能的一组属性,包括:
请注意,这些值会定期更改,因此最好向用户提供实时结果,而不是离线保存响应。
以下代码示例展示了如何获取某些定位条件的产品组合:
Java
private void showPlannableProducts( ReachPlanServiceClient reachPlanServiceClient, String locationId) { ListPlannableProductsRequest request = ListPlannableProductsRequest.newBuilder().setPlannableLocationId(locationId).build(); ListPlannableProductsResponse response = reachPlanServiceClient.listPlannableProducts(request); System.out.printf("Plannable Products for location %s:%n", locationId); for (ProductMetadata product : response.getProductMetadataList()) { System.out.printf("%s:%n", product.getPlannableProductCode()); System.out.println("Age Ranges:"); for (ReachPlanAgeRange ageRange : product.getPlannableTargeting().getAgeRangesList()) { System.out.printf("\t- %s%n", ageRange); } System.out.println("Genders:"); for (GenderInfo gender : product.getPlannableTargeting().getGendersList()) { System.out.printf("\t- %s%n", gender.getType()); } System.out.println("Devices:"); for (DeviceInfo device : product.getPlannableTargeting().getDevicesList()) { System.out.printf("\t- %s%n", device.getType()); } } }
C#
public void ShowPlannableProducts( ReachPlanServiceClient reachPlanService, string locationId) { ListPlannableProductsRequest request = new ListPlannableProductsRequest { PlannableLocationId = locationId }; ListPlannableProductsResponse response = reachPlanService.ListPlannableProducts( request); Console.WriteLine($"Plannable Products for location {locationId}:"); foreach (ProductMetadata product in response.ProductMetadata) { Console.WriteLine($"{product.PlannableProductCode}:"); Console.WriteLine("Age Ranges:"); foreach (ReachPlanAgeRange ageRange in product.PlannableTargeting.AgeRanges) { Console.WriteLine($"\t- {ageRange}"); } Console.WriteLine("Genders:"); foreach (GenderInfo gender in product.PlannableTargeting.Genders) { Console.WriteLine($"\t- {gender.Type}"); } Console.WriteLine("Devices:"); foreach (DeviceInfo device in product.PlannableTargeting.Devices) { Console.WriteLine($"\t- {device.Type}"); } } }
PHP
private static function showPlannableProducts(GoogleAdsClient $googleAdsClient) { $response = $googleAdsClient->getReachPlanServiceClient()->listPlannableProducts( ListPlannableProductsRequest::build(self::LOCATION_ID) ); print 'Plannable Products for Location ID ' . self::LOCATION_ID . ':' . PHP_EOL; foreach ($response->getProductMetadata() as $product) { /** @var ProductMetadata $product */ print $product->getPlannableProductCode() . ':' . PHP_EOL; print 'Age Ranges:' . PHP_EOL; foreach ($product->getPlannableTargeting()->getAgeRanges() as $ageRange) { /** @var ReachPlanAgeRange $ageRange */ printf("\t- %s%s", ReachPlanAgeRange::name($ageRange), PHP_EOL); } print 'Genders:' . PHP_EOL; foreach ($product->getPlannableTargeting()->getGenders() as $gender) { /** @var GenderInfo $gender */ printf("\t- %s%s", GenderType::name($gender->getType()), PHP_EOL); } print 'Devices:' . PHP_EOL; foreach ($product->getPlannableTargeting()->getDevices() as $device) { /** @var DeviceInfo $device */ printf("\t- %s%s", Device::name($device->getType()), PHP_EOL); } } }