SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
Shopping Campaigns
Adam Ohren
Agenda
● Google Shopping & Merchant Center
● Content API for Shopping
● AdWords Shopping Campaigns
● Product Partition Trees
● Local Inventory Ads
● Product Partition Utility
Google Shopping &
Merchant Center
Google Shopping
Merchant Center
● View products, but not
edit
● Manage account and
subaccounts
● Data quality and
disapproval
information
● Link to AdWords
accounts
● Tax and delivery
settings
Multi-client Accounts
● Analogous to AdWords
MCCs
● Allows merchants to
manage many sub-
accounts
Data Feeds
● CSV, XML, Google Sheets with product data
● Fetched manually or on a schedule
Content API for
Shopping
Content API
● Manage products, data feeds, users,
accounts
● Can make updates throughout the day
● Instant feedback on some data issues
Content API Example
POST
/content/v2/YOUR_MERCHANT_ID/inventory/online/products/onl
ine:en:GB:book123
{
"price": {
"value": "3.99",
"currency": "USD"
}
}
Updating a product’s price:
Content API for Shopping
https://developers.google.com/shopping-content/
AdWords Shopping
Campaigns
Shopping Campaigns
Shopping Campaigns
● Connects a linked Merchant Center to
AdWords campaign
● Enables Product Listing Ads (PLAs)
● Manages bids based on product hierarchy
Shopping Campaigns Differences
● AdvertisingChannelType is SHOPPING
● Must have a ShoppingSetting which sets
○ The Merchant Center account to use for product data
○ The target country of the products to use
○ Optional priority
● Must have a valid ProductPartition tree
Creating a Shopping Campaign
// Create regular campaign
Campaign c = new Campaign();
c.setAdvertisingChannelType(
AdvertisingChannelType.SHOPPING);
// Set shopping attributes
ShoppingSetting shoppingSetting = new ShoppingSetting();
shoppingSetting.setMerchantId((long) 1234567);
shoppingSetting.setSalesCountry("GB");
shoppingSetting.setCampaignPriority(0);
c.setSettings(new Setting[] {shoppingSetting});
Product Partition
Trees
Product Partitions
Inventory is partitioned by various Product
Dimensions
Product Dimensions
Make bidding decisions based on product data
● Category
● Brand
● Item ID
● Condition
● Product type
● Custom labels
● Product channel v201502
● Product channel exclusivity v201502
Product Dimensions
Category ProductBiddingCategory
Brand ProductBrand
Item ID ProductOfferId
Condition ProductCanonicalCondition
Product type ProductType
Custom labels ProductCustomAttribute
Channel ProductChannel
Channel exclusivity ProductChannelExclusivity
Product Partitions
Product Partitions
Product Partitions
ProductPartition root = new ProductPartition();
root.setPartitionType(ProductPartitionType.SUBDIVISION);
root.setId(-1);
Product Partitions
Root is a subdivision. It has no value and no parent.
ProductBiddingCategory toysDimension = ...
ProductPartition toys = new ProductPartition();
toys.setPartitionType(ProductPartitionType.UNIT);
toys.setParentCriterionId(root.getId());
toys.setCaseValue(toysDimension);
Product Partitions
The Toys category is a unit. It has root as it’s parent.
ProductBrand otherBrand = new ProductBrand();
ProductBiddingCategory otherCat = new
ProductBiddingCategory();
otherCat.setType(ProductDimensionType.BIDDING_CATEGORY_L1);
Product Partitions
To create an Other node, use a dimension with no value
BiddableAdGroupCriterion toysCriterion = new ...
toysCriterion.setAdGroupId(...);
toysCriterion.setCriterion = toys;
toysCriterion.setBiddingStrategyConfiguration(...);
AdGroupCriterionOperation operation = new ...
operation.setOperand(toysCriterion);
operation.setOperation(Operator.ADD);
adGroupCriterionService.mutate(...);
Product Partitions
Create the tree
Local Inventory Ads
Local Inventory Ads
Easily make in-store products available in
shopping campaigns
New LIA Controls in v201502
1. Enable local inventory ads
2. Campaign-level filters for Channel &
ChannelExclusivity
3. Product tree dimensions for Channel &
ChannelExclusivity
Enable Local Inventory Ads
● Opt-in campaigns to serve local
information
Enable Local Inv. Ads Example
Campaign c = new Campaign();
c.setAdvertisingChannelType(AdvertisingChannelType.
SHOPPING);
// Set shopping attributes
ShoppingSetting shoppingSetting = new ShoppingSetting();
shoppingSetting.setMerchantId((long) 1234567);
shoppingSetting.setSalesCountry("GB");
shoppingSetting.setCampaignPriority(0);
shoppingSetting.setEnableLocal(true);
c.setSettings(new Setting[] {shoppingSetting});
Campaign-level Filters
● Use inventory filters to include / exclude
products based on channel dimensions
Campaign-level Filters Example
ProductScope scope = new ProductScope();
ProductChannel channel = new ProductChannel();
channel.setValue(“ONLINE”);
ProductChannelExclusivity channelEx = new
ProductChannelExclusivity();
channelEx.setValue(“SINGLE_CHANNEL”);
scope.setDimensions(new ProductDimension[]{ channel,
channelEx});
Product Tree Dimensions
● Segment product tree by Channel &
ChannelExclusivity
Product Tree Dimensions Example
ProductPartition node1 = new ProductPartition();
node1.setPartitionType(ProductPartitionType.UNIT);
node1.setCaseValue(new ProductChannel(null, "ONLINE"));
node1.setParentCriterionId(root.getId());
ProductPartition node2 = new ProductPartition();
node2.setPartitionType(ProductPartitionType.UNIT);
node2.setCaseValue(new ProductChannel(null, "LOCAL"));
node2.setParentCriterionId(root.getId());
Product Partition
Utility
Product Partition Utility
● Client-side extension that simplifies
creating, mutating, and removing
ProductPartitions
● Added in v201409
● Java client library only
Product Partition Utility
● ProductPartitionTree API
○ Abstracts tree handling
● ProductPartitionNode API
○ Abstracts nodes & properties (bids, dimensions, etc.)
Sample Use Cases
● Rebuild entire trees
● Convert SUBDIVISION <-> UNIT
● Update bids
Creating a ProductPartitionTree
ProductPartitionTree tree = ProductPartitionTree.
.createAdGroupTree(adWordsServices, adWordsSession, adGroupId);
ProductPartitionNode rootNode = tree.getRoot();
...
Construct a ProductPartitionTree using the
static createAdGroupTree method.
Get the root ProductPartitionNode from the
new tree.
Updating a Bid Example
tree.getRoot()
.getChild(ProductDimensions
.createType(ProductDimensionType.PRODUCT_TYPE_L1, "clothing"))
.asBiddableUnit()
.setBid(bid);
List<AdGroupCriterionOperation> operations = tree.getMutateOperations();
Convert UNIT to SUBDIVISION
Convert UNIT to SUBDIVISION - Cont.
ProductPartitionNode shoes = tree.getRoot()
.getChild(createType(ProductDimensionType.PRODUCT_TYPE_L1, "shoes"))
.asSubdivision();
shoes.addChild(createCanonicalCondition(
ProductCanonicalConditionCondition.NEW))
.asBiddableUnit().setBid(1000000L);
shoes.addChild(createCanonicalCondition(
ProductCanonicalConditionCondition.REFURBISHED))
.asBiddableUnit().setBid(1500000L);
shoes.addChild(createCanonicalCondition(null)).asExcludedUnit();
List<AdGroupCriterionOperation> operations = tree.getMutateOperations();
Rebuilding a Tree
List<AdGroupCriterionOperation> operations = tree.getMutateOperations();
tree.getRoot()
.asBiddableUnit()
.setBid(bid);
tree.getRoot()
.removeAllChildren()
.asSubdivision()
tree.getRoot()
.addChild(...);
...
Send Us Feedback!
We're looking for feedback on this utility.
If you use it, we want to hear
from you!
Check out the guide on github:
http://goo.gl/UmN17E
Resources
● Shopping Campaigns Guide
https://developers.google.com/adwords/api/docs/guides/shopping
● Product Partition Utility Example
https://github.com/googleads/googleads-java-lib (see
AddProductPartitionTree.java)

Más contenido relacionado

Similar a Shopping Campaigns

Evolve13 cq-commerce-framework
Evolve13 cq-commerce-frameworkEvolve13 cq-commerce-framework
Evolve13 cq-commerce-frameworkPaolo Mottadelli
 
Learn Adobe analytics basics - Conversion variables
Learn Adobe analytics basics - Conversion variablesLearn Adobe analytics basics - Conversion variables
Learn Adobe analytics basics - Conversion variablesArunkumar Sundaram
 
In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engineWO Community
 
Decoupled Days 2019: Delivering Headless Commerce
Decoupled Days 2019: Delivering Headless CommerceDecoupled Days 2019: Delivering Headless Commerce
Decoupled Days 2019: Delivering Headless CommerceMatt Glaman
 
The Google Shopping Product Feed: All Mandatory Attributes at a Glance
The Google Shopping Product Feed: All Mandatory Attributes at a GlanceThe Google Shopping Product Feed: All Mandatory Attributes at a Glance
The Google Shopping Product Feed: All Mandatory Attributes at a GlanceWhoop!
 
What's new in reporting
What's new in reporting What's new in reporting
What's new in reporting supergigas
 
Product Feed Optimizations For a Cross Channel Strategy
Product Feed Optimizations For a Cross Channel StrategyProduct Feed Optimizations For a Cross Channel Strategy
Product Feed Optimizations For a Cross Channel StrategyTinuiti
 
07. feeds update
07. feeds update07. feeds update
07. feeds updatemarcwan
 
B2C-Commerce-Developer Dumps
B2C-Commerce-Developer DumpsB2C-Commerce-Developer Dumps
B2C-Commerce-Developer Dumpsaddisonkalven
 
Reporting tips & tricks
Reporting tips & tricks  Reporting tips & tricks
Reporting tips & tricks marcwan
 
Write once, ship multiple times
Write once, ship multiple timesWrite once, ship multiple times
Write once, ship multiple timesŽeljko Plesac
 
Drupal Commerce contributed modules overview
Drupal Commerce contributed modules overviewDrupal Commerce contributed modules overview
Drupal Commerce contributed modules overviewPedro Cambra
 
Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development Mahmoud Hamed Mahmoud
 
Benefits of Google Tag Manager
Benefits of Google Tag ManagerBenefits of Google Tag Manager
Benefits of Google Tag ManagerPhil Pearce
 
Deliver the Perfect Omnichannel Commerce Experience
Deliver the Perfect Omnichannel Commerce ExperienceDeliver the Perfect Omnichannel Commerce Experience
Deliver the Perfect Omnichannel Commerce ExperienceSAP Customer Experience
 

Similar a Shopping Campaigns (20)

EVOLVE'13 | Enhance | Ecommerce Framework | Paolo Mottadelli
EVOLVE'13 | Enhance | Ecommerce Framework | Paolo MottadelliEVOLVE'13 | Enhance | Ecommerce Framework | Paolo Mottadelli
EVOLVE'13 | Enhance | Ecommerce Framework | Paolo Mottadelli
 
Evolve13 cq-commerce-framework
Evolve13 cq-commerce-frameworkEvolve13 cq-commerce-framework
Evolve13 cq-commerce-framework
 
E-Bazaar
E-BazaarE-Bazaar
E-Bazaar
 
Learn Adobe analytics basics - Conversion variables
Learn Adobe analytics basics - Conversion variablesLearn Adobe analytics basics - Conversion variables
Learn Adobe analytics basics - Conversion variables
 
Bit2win 20r2.1 releasepack
Bit2win 20r2.1 releasepackBit2win 20r2.1 releasepack
Bit2win 20r2.1 releasepack
 
In memory OLAP engine
In memory OLAP engineIn memory OLAP engine
In memory OLAP engine
 
Decoupled Days 2019: Delivering Headless Commerce
Decoupled Days 2019: Delivering Headless CommerceDecoupled Days 2019: Delivering Headless Commerce
Decoupled Days 2019: Delivering Headless Commerce
 
The Google Shopping Product Feed: All Mandatory Attributes at a Glance
The Google Shopping Product Feed: All Mandatory Attributes at a GlanceThe Google Shopping Product Feed: All Mandatory Attributes at a Glance
The Google Shopping Product Feed: All Mandatory Attributes at a Glance
 
What's new in reporting
What's new in reporting What's new in reporting
What's new in reporting
 
Product Feed Optimizations For a Cross Channel Strategy
Product Feed Optimizations For a Cross Channel StrategyProduct Feed Optimizations For a Cross Channel Strategy
Product Feed Optimizations For a Cross Channel Strategy
 
07. feeds update
07. feeds update07. feeds update
07. feeds update
 
Upgraded URLs
Upgraded URLsUpgraded URLs
Upgraded URLs
 
B2C-Commerce-Developer Dumps
B2C-Commerce-Developer DumpsB2C-Commerce-Developer Dumps
B2C-Commerce-Developer Dumps
 
Reporting tips & tricks
Reporting tips & tricks  Reporting tips & tricks
Reporting tips & tricks
 
Write once, ship multiple times
Write once, ship multiple timesWrite once, ship multiple times
Write once, ship multiple times
 
BigCommerce Akeneo Connector
BigCommerce Akeneo ConnectorBigCommerce Akeneo Connector
BigCommerce Akeneo Connector
 
Drupal Commerce contributed modules overview
Drupal Commerce contributed modules overviewDrupal Commerce contributed modules overview
Drupal Commerce contributed modules overview
 
Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development
 
Benefits of Google Tag Manager
Benefits of Google Tag ManagerBenefits of Google Tag Manager
Benefits of Google Tag Manager
 
Deliver the Perfect Omnichannel Commerce Experience
Deliver the Perfect Omnichannel Commerce ExperienceDeliver the Perfect Omnichannel Commerce Experience
Deliver the Perfect Omnichannel Commerce Experience
 

Más de supergigas

Remarketing using customer match
Remarketing using customer matchRemarketing using customer match
Remarketing using customer matchsupergigas
 
Location aware ad customizers
Location aware ad customizersLocation aware ad customizers
Location aware ad customizerssupergigas
 
GMB API (Google My Business)
GMB API (Google My Business)GMB API (Google My Business)
GMB API (Google My Business)supergigas
 
Uploading HTML5 ads
Uploading HTML5 adsUploading HTML5 ads
Uploading HTML5 adssupergigas
 
BatchJobService
BatchJobServiceBatchJobService
BatchJobServicesupergigas
 
Why use ad words api
Why use ad words apiWhy use ad words api
Why use ad words apisupergigas
 
How to build a platform
How to build a platformHow to build a platform
How to build a platformsupergigas
 
The AdWords api and mobile
The AdWords api and mobileThe AdWords api and mobile
The AdWords api and mobilesupergigas
 
MCC Scripts update
MCC Scripts updateMCC Scripts update
MCC Scripts updatesupergigas
 
Rate limits and Performance
Rate limits and PerformanceRate limits and Performance
Rate limits and Performancesupergigas
 
How AdWords UI maps into adwords api
How AdWords UI maps into adwords apiHow AdWords UI maps into adwords api
How AdWords UI maps into adwords apisupergigas
 
Extension Setting Services
Extension Setting ServicesExtension Setting Services
Extension Setting Servicessupergigas
 
Effective Reporting
Effective ReportingEffective Reporting
Effective Reportingsupergigas
 
Display Network criteria bidding
Display Network criteria biddingDisplay Network criteria bidding
Display Network criteria biddingsupergigas
 
Dev Token tips
Dev Token tipsDev Token tips
Dev Token tipssupergigas
 
Ad Customizers
Ad CustomizersAd Customizers
Ad Customizerssupergigas
 

Más de supergigas (16)

Remarketing using customer match
Remarketing using customer matchRemarketing using customer match
Remarketing using customer match
 
Location aware ad customizers
Location aware ad customizersLocation aware ad customizers
Location aware ad customizers
 
GMB API (Google My Business)
GMB API (Google My Business)GMB API (Google My Business)
GMB API (Google My Business)
 
Uploading HTML5 ads
Uploading HTML5 adsUploading HTML5 ads
Uploading HTML5 ads
 
BatchJobService
BatchJobServiceBatchJobService
BatchJobService
 
Why use ad words api
Why use ad words apiWhy use ad words api
Why use ad words api
 
How to build a platform
How to build a platformHow to build a platform
How to build a platform
 
The AdWords api and mobile
The AdWords api and mobileThe AdWords api and mobile
The AdWords api and mobile
 
MCC Scripts update
MCC Scripts updateMCC Scripts update
MCC Scripts update
 
Rate limits and Performance
Rate limits and PerformanceRate limits and Performance
Rate limits and Performance
 
How AdWords UI maps into adwords api
How AdWords UI maps into adwords apiHow AdWords UI maps into adwords api
How AdWords UI maps into adwords api
 
Extension Setting Services
Extension Setting ServicesExtension Setting Services
Extension Setting Services
 
Effective Reporting
Effective ReportingEffective Reporting
Effective Reporting
 
Display Network criteria bidding
Display Network criteria biddingDisplay Network criteria bidding
Display Network criteria bidding
 
Dev Token tips
Dev Token tipsDev Token tips
Dev Token tips
 
Ad Customizers
Ad CustomizersAd Customizers
Ad Customizers
 

Último

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Shopping Campaigns

  • 2. Agenda ● Google Shopping & Merchant Center ● Content API for Shopping ● AdWords Shopping Campaigns ● Product Partition Trees ● Local Inventory Ads ● Product Partition Utility
  • 5. Merchant Center ● View products, but not edit ● Manage account and subaccounts ● Data quality and disapproval information ● Link to AdWords accounts ● Tax and delivery settings
  • 6. Multi-client Accounts ● Analogous to AdWords MCCs ● Allows merchants to manage many sub- accounts
  • 7. Data Feeds ● CSV, XML, Google Sheets with product data ● Fetched manually or on a schedule
  • 9. Content API ● Manage products, data feeds, users, accounts ● Can make updates throughout the day ● Instant feedback on some data issues
  • 11. Content API for Shopping https://developers.google.com/shopping-content/
  • 14. Shopping Campaigns ● Connects a linked Merchant Center to AdWords campaign ● Enables Product Listing Ads (PLAs) ● Manages bids based on product hierarchy
  • 15. Shopping Campaigns Differences ● AdvertisingChannelType is SHOPPING ● Must have a ShoppingSetting which sets ○ The Merchant Center account to use for product data ○ The target country of the products to use ○ Optional priority ● Must have a valid ProductPartition tree
  • 16. Creating a Shopping Campaign // Create regular campaign Campaign c = new Campaign(); c.setAdvertisingChannelType( AdvertisingChannelType.SHOPPING); // Set shopping attributes ShoppingSetting shoppingSetting = new ShoppingSetting(); shoppingSetting.setMerchantId((long) 1234567); shoppingSetting.setSalesCountry("GB"); shoppingSetting.setCampaignPriority(0); c.setSettings(new Setting[] {shoppingSetting});
  • 18. Product Partitions Inventory is partitioned by various Product Dimensions
  • 19. Product Dimensions Make bidding decisions based on product data ● Category ● Brand ● Item ID ● Condition ● Product type ● Custom labels ● Product channel v201502 ● Product channel exclusivity v201502
  • 20. Product Dimensions Category ProductBiddingCategory Brand ProductBrand Item ID ProductOfferId Condition ProductCanonicalCondition Product type ProductType Custom labels ProductCustomAttribute Channel ProductChannel Channel exclusivity ProductChannelExclusivity
  • 24. ProductPartition root = new ProductPartition(); root.setPartitionType(ProductPartitionType.SUBDIVISION); root.setId(-1); Product Partitions Root is a subdivision. It has no value and no parent.
  • 25. ProductBiddingCategory toysDimension = ... ProductPartition toys = new ProductPartition(); toys.setPartitionType(ProductPartitionType.UNIT); toys.setParentCriterionId(root.getId()); toys.setCaseValue(toysDimension); Product Partitions The Toys category is a unit. It has root as it’s parent.
  • 26. ProductBrand otherBrand = new ProductBrand(); ProductBiddingCategory otherCat = new ProductBiddingCategory(); otherCat.setType(ProductDimensionType.BIDDING_CATEGORY_L1); Product Partitions To create an Other node, use a dimension with no value
  • 27. BiddableAdGroupCriterion toysCriterion = new ... toysCriterion.setAdGroupId(...); toysCriterion.setCriterion = toys; toysCriterion.setBiddingStrategyConfiguration(...); AdGroupCriterionOperation operation = new ... operation.setOperand(toysCriterion); operation.setOperation(Operator.ADD); adGroupCriterionService.mutate(...); Product Partitions Create the tree
  • 29. Local Inventory Ads Easily make in-store products available in shopping campaigns
  • 30. New LIA Controls in v201502 1. Enable local inventory ads 2. Campaign-level filters for Channel & ChannelExclusivity 3. Product tree dimensions for Channel & ChannelExclusivity
  • 31. Enable Local Inventory Ads ● Opt-in campaigns to serve local information
  • 32. Enable Local Inv. Ads Example Campaign c = new Campaign(); c.setAdvertisingChannelType(AdvertisingChannelType. SHOPPING); // Set shopping attributes ShoppingSetting shoppingSetting = new ShoppingSetting(); shoppingSetting.setMerchantId((long) 1234567); shoppingSetting.setSalesCountry("GB"); shoppingSetting.setCampaignPriority(0); shoppingSetting.setEnableLocal(true); c.setSettings(new Setting[] {shoppingSetting});
  • 33. Campaign-level Filters ● Use inventory filters to include / exclude products based on channel dimensions
  • 34. Campaign-level Filters Example ProductScope scope = new ProductScope(); ProductChannel channel = new ProductChannel(); channel.setValue(“ONLINE”); ProductChannelExclusivity channelEx = new ProductChannelExclusivity(); channelEx.setValue(“SINGLE_CHANNEL”); scope.setDimensions(new ProductDimension[]{ channel, channelEx});
  • 35. Product Tree Dimensions ● Segment product tree by Channel & ChannelExclusivity
  • 36. Product Tree Dimensions Example ProductPartition node1 = new ProductPartition(); node1.setPartitionType(ProductPartitionType.UNIT); node1.setCaseValue(new ProductChannel(null, "ONLINE")); node1.setParentCriterionId(root.getId()); ProductPartition node2 = new ProductPartition(); node2.setPartitionType(ProductPartitionType.UNIT); node2.setCaseValue(new ProductChannel(null, "LOCAL")); node2.setParentCriterionId(root.getId());
  • 38. Product Partition Utility ● Client-side extension that simplifies creating, mutating, and removing ProductPartitions ● Added in v201409 ● Java client library only
  • 39. Product Partition Utility ● ProductPartitionTree API ○ Abstracts tree handling ● ProductPartitionNode API ○ Abstracts nodes & properties (bids, dimensions, etc.)
  • 40. Sample Use Cases ● Rebuild entire trees ● Convert SUBDIVISION <-> UNIT ● Update bids
  • 41. Creating a ProductPartitionTree ProductPartitionTree tree = ProductPartitionTree. .createAdGroupTree(adWordsServices, adWordsSession, adGroupId); ProductPartitionNode rootNode = tree.getRoot(); ... Construct a ProductPartitionTree using the static createAdGroupTree method. Get the root ProductPartitionNode from the new tree.
  • 42. Updating a Bid Example tree.getRoot() .getChild(ProductDimensions .createType(ProductDimensionType.PRODUCT_TYPE_L1, "clothing")) .asBiddableUnit() .setBid(bid); List<AdGroupCriterionOperation> operations = tree.getMutateOperations();
  • 43. Convert UNIT to SUBDIVISION
  • 44. Convert UNIT to SUBDIVISION - Cont. ProductPartitionNode shoes = tree.getRoot() .getChild(createType(ProductDimensionType.PRODUCT_TYPE_L1, "shoes")) .asSubdivision(); shoes.addChild(createCanonicalCondition( ProductCanonicalConditionCondition.NEW)) .asBiddableUnit().setBid(1000000L); shoes.addChild(createCanonicalCondition( ProductCanonicalConditionCondition.REFURBISHED)) .asBiddableUnit().setBid(1500000L); shoes.addChild(createCanonicalCondition(null)).asExcludedUnit(); List<AdGroupCriterionOperation> operations = tree.getMutateOperations();
  • 45. Rebuilding a Tree List<AdGroupCriterionOperation> operations = tree.getMutateOperations(); tree.getRoot() .asBiddableUnit() .setBid(bid); tree.getRoot() .removeAllChildren() .asSubdivision() tree.getRoot() .addChild(...); ...
  • 46. Send Us Feedback! We're looking for feedback on this utility. If you use it, we want to hear from you! Check out the guide on github: http://goo.gl/UmN17E
  • 47. Resources ● Shopping Campaigns Guide https://developers.google.com/adwords/api/docs/guides/shopping ● Product Partition Utility Example https://github.com/googleads/googleads-java-lib (see AddProductPartitionTree.java)