GoogleJsonResponseException: API call to dfareporting.ads.insert failed with error: Invalid value at 'profile_id' (TYPE_INT64)
GoogleJsonResponseException: API call to dfareporting.ads.insert failed with error: Invalid value at 'profile_id' (TYPE_INT64)
我尝试使用以下 ad
对象调用此 API。
var ad = DoubleClickCampaigns.Ads.insert(6485800,
{
"campaignId": parseInt(singlePlacementArray[0]),
"advertiserId": parseInt(inputSheet.getRange("J9").getValue()),
//"accountId": inputSheet.getRange("H9").getValue(),
"name": singlePlacementArray[1],
"active": true,
"archived": false,
"type": "AD_SERVING_TRACKING",
"startDate": Utilities.formatDate(singlePlacementArray[5], ss.getSpreadsheetTimeZone(), "yyyy-MM-dd"),
"endDate": Utilities.formatDate(singlePlacementArray[6], ss.getSpreadsheetTimeZone(), "yyyy-MM-dd"),
"placementAssignments": [
{
"placementId": parseInt(singlePlacementArray[9]),
"active": true,
//"sslRequired": false,
}
]
});
我收到这个错误,甚至认为 profile_id
是一个整数。
GoogleJsonResponseException: API call to dfareporting.ads.insert failed with error: Invalid value at 'profile_id' (TYPE_INT64), "endDate,2023-06-30,placementAssignments,[Ljava.lang.Object;@7ad1fc95,campaignId,2.2529571E7,type,AD_SERVING_TRACKING,active,true,startDate,2021-05-29,advertiserId,6334010.0,name,video campaign test parallel tracking_cn+Video,archived,false"
看来DoubleClickCampaigns.Ads.insert
方法的参数是DoubleClickCampaigns.Ads.insert(object, profileId)
。我认为你的问题的原因可能是由于这个。而且,profileId
似乎是 string (int64 format)
。那么下面的修改呢?
修改后的脚本:
var ad = DoubleClickCampaigns.Ads.insert({
"campaignId": parseInt(singlePlacementArray[0]),
"advertiserId": parseInt(inputSheet.getRange("J9").getValue()),
//"accountId": inputSheet.getRange("H9").getValue(),
"name": singlePlacementArray[1],
"active": true,
"archived": false,
"type": "AD_SERVING_TRACKING",
"startDate": Utilities.formatDate(singlePlacementArray[5], ss.getSpreadsheetTimeZone(), "yyyy-MM-dd"),
"endDate": Utilities.formatDate(singlePlacementArray[6], ss.getSpreadsheetTimeZone(), "yyyy-MM-dd"),
"placementAssignments": [
{
"placementId": parseInt(singlePlacementArray[9]),
"active": true,
//"sslRequired": false,
}
]
}, "6485800");
注:
- 在这个修改后的脚本中,它假定您在第一个参数的对象中的值和第二个参数的
profileId
的值是有效值。请注意这一点。
- 从the official document开始,我不确定
startDate
和endDate
是否可以在这个请求中使用。是 startTime
和 endTime
吗?如果此处出现错误,请重新检查。
参考文献:
我尝试使用以下 ad
对象调用此 API。
var ad = DoubleClickCampaigns.Ads.insert(6485800,
{
"campaignId": parseInt(singlePlacementArray[0]),
"advertiserId": parseInt(inputSheet.getRange("J9").getValue()),
//"accountId": inputSheet.getRange("H9").getValue(),
"name": singlePlacementArray[1],
"active": true,
"archived": false,
"type": "AD_SERVING_TRACKING",
"startDate": Utilities.formatDate(singlePlacementArray[5], ss.getSpreadsheetTimeZone(), "yyyy-MM-dd"),
"endDate": Utilities.formatDate(singlePlacementArray[6], ss.getSpreadsheetTimeZone(), "yyyy-MM-dd"),
"placementAssignments": [
{
"placementId": parseInt(singlePlacementArray[9]),
"active": true,
//"sslRequired": false,
}
]
});
我收到这个错误,甚至认为 profile_id
是一个整数。
GoogleJsonResponseException: API call to dfareporting.ads.insert failed with error: Invalid value at 'profile_id' (TYPE_INT64), "endDate,2023-06-30,placementAssignments,[Ljava.lang.Object;@7ad1fc95,campaignId,2.2529571E7,type,AD_SERVING_TRACKING,active,true,startDate,2021-05-29,advertiserId,6334010.0,name,video campaign test parallel tracking_cn+Video,archived,false"
看来DoubleClickCampaigns.Ads.insert
方法的参数是DoubleClickCampaigns.Ads.insert(object, profileId)
。我认为你的问题的原因可能是由于这个。而且,profileId
似乎是 string (int64 format)
。那么下面的修改呢?
修改后的脚本:
var ad = DoubleClickCampaigns.Ads.insert({
"campaignId": parseInt(singlePlacementArray[0]),
"advertiserId": parseInt(inputSheet.getRange("J9").getValue()),
//"accountId": inputSheet.getRange("H9").getValue(),
"name": singlePlacementArray[1],
"active": true,
"archived": false,
"type": "AD_SERVING_TRACKING",
"startDate": Utilities.formatDate(singlePlacementArray[5], ss.getSpreadsheetTimeZone(), "yyyy-MM-dd"),
"endDate": Utilities.formatDate(singlePlacementArray[6], ss.getSpreadsheetTimeZone(), "yyyy-MM-dd"),
"placementAssignments": [
{
"placementId": parseInt(singlePlacementArray[9]),
"active": true,
//"sslRequired": false,
}
]
}, "6485800");
注:
- 在这个修改后的脚本中,它假定您在第一个参数的对象中的值和第二个参数的
profileId
的值是有效值。请注意这一点。 - 从the official document开始,我不确定
startDate
和endDate
是否可以在这个请求中使用。是startTime
和endTime
吗?如果此处出现错误,请重新检查。