Cele konwersji
Gdy tworzysz kampanię Performance Max, automatycznie tworzy się seria celów konwersji
, które odpowiadają CustomerConversionGoal na
koncie. Możesz je dostosować do każdej kampanii Performance Max, aktualizując je.
Aby to zrobić, musisz najpierw pobrać identyfikator kampanii Performance Max i listę wszystkich celów konwersji klienta. Oto przykład zmiany celów jednej kampanii, ale możesz też skonfigurować kod tak, aby przechodził przez wiele kampanii Performance Max.
// Query for a campaign by name. Update this logic to pull the campaigns you'd
// like to edit
const campaignName = "My PMax campaign";
let campaignId = "";
const search = AdsApp.search(`SELECT campaign.id FROM campaign WHERE campaign.name = "${campaignName}"`);
if (search.hasNext()) {
campaignId = search.next().campaign.id;
console.log(`Updating conversion goals for ${campaignName}: ${campaignId}`);
}
else
{
console.log(`No campaign named "${campaignName}" found`);
// Perform further error handling here
}
// Query for a list of customer conversion goals
const searchResults = AdsApp.search(
`SELECT
customer_conversion_goal.category,
customer_conversion_goal.origin
FROM customer_conversion_goal`
);
Następnie możesz przejść przez wszystkie otrzymane cele konwersji i utworzyć operację aktualizacji bieżącej kampanii Performance Max, aby dostosować kierowanie do każdego celu. W przykładzie kodu pokazanym w dalszej części tej sekcji wszystkie cele są ustawione jako podlegające ustalaniu stawek, ale musisz dostosować tę część logiki do tego, co chcesz osiągnąć w kampanii.
Zalecamy skonfigurowanie celów konwersji w osobnej transakcji niż reszta procesu tworzenia kampanii. CampaignConversionGoalOperation
wymaga, aby parametr partialFailure w żądaniu był ustawiony na false. Jeśli chcesz uruchomić ten kod w tej samej transakcji, w której tworzysz kampanię, musisz ustawić, aby wszystkie operacje miały wyłączoną częściową awarię. Ten przykładowy kod pokazuje, jak wykonać tę operację w osobnej transakcji.
operations = [];
while (searchResults.hasNext()) {
const row = searchResults.next();
const conversionGoal = row.customerConversionGoal;
operations.push({
"campaignConversionGoalOperation": {
"update": {
"resourceName": `customers/${customerId}/campaignConversionGoals/${campaignId}~${conversionGoal.category}~${conversionGoal.origin}`,
// Insert your logic here to determine whether you want this particular
// campaign conversion goal to be biddable or not.
// This code will just default everything to being biddable, but that
// is not necessarily best for your use case.
"biddable": true
},
"updateMask": "biddable"
}
});
}
AdsApp.mutateAll(operations, {partialFailure: false});
Kierowanie kampanii
Aby uzyskać pełną listę dozwolonych typów kryteriów kierowania kampanii w Performance Max, zapoznaj się z przewodnikiem po interfejsie API.
Dodatkowe kryteria nie są wymagane do utworzenia kampanii Performance Max, ale mogą być przydatne do ograniczenia kierowania na podstawie Twojego przypadku użycia. W następnym przykładzie kodu pokazujemy, jak skonfigurować kierowanie na lokalizację geograficzną. Format innych typów kryteriów znajdziesz w
CampaignCriterion dokumentacji.
Możesz utworzyć te kryteria wraz z samą kampanią w ramach tego samego wywołania mutateAll. Ten przykład kodu zakłada, że w ten sposób strukturujesz swój kod.
operations.push({
"campaignCriterionOperation": {
"create": {
"campaign": campaignOperation.campaignOperation.create.resourceName,
"negative": false,
"location": {
// 1023191 represents New York City
"geoTargetConstant": "geoTargetConstants/1023191"
}
}
}
});
Sygnały dotyczące grupy plików
Zanim zaczniesz, zapoznaj się z informacjami o sygnałach dotyczących grupy plików w dokumentacji API przed rozpoczęciem. Konfiguruje się je przez połączenie grupy plików z istniejącym
AudienceInfo lub SearchThemeInfo kryterium. Jeśli chcesz użyć grupy odbiorców, zamiast pola searchTheme podaj pole audience z nazwą zasobu grupy odbiorców.
operations.push({
"assetGroupSignalOperation": {
"create": {
"assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
"searchTheme": {
"text": "mars cruise"
}
}
}
});