New and Improved MCC Services

1,213 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,213
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
38
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

New and Improved MCC Services

  1. 1. New & ImprovedMCC ServicesManaging thousands of accounts theautomated way! Google Confidential and Proprietary
  2. 2. Agenda1. Motivation ○ The need for a new service2. Introducing new API service methods ○ What do they do?3. The lifecycle of a managed account ○ Using the new functionality ○ Common use-case code samples4. Mind your budgets ○ Possible account level budget implications5. Q & A Google Confidential and Proprietary
  3. 3. MotivationGoogle Confidential and Proprietary
  4. 4. Motivation● Until now, developers have not been able to manipulate account structures programmatically.● The manual intervention required to link, unlink or reorganize accounts within an MCC can prevent the full automation of some business processes. ○ For example, onboarding a customer account. Google Confidential and Proprietary
  5. 5. Common use-cases● Reorganising accounts according to business needs● API / platform efficiency improvements: Maintaining an "inactive accounts" MCC● Taking control of (onboarding) an existing client account● Day-to-day management of complex MCC structures● Relinquishing control of an account no longer managed by a platform Google Confidential and Proprietary
  6. 6. Introducing new API service methods Google Confidential and Proprietary
  7. 7. ManagedCustomerService: Three new methodsManagedCustomerService.mutateLink:Performs various actions required to add or remove accounts to / froman MCCMutateLink actions: MCC Account 0 Account 1 Account 2 Account 3 Google Confidential and Proprietary
  8. 8. ManagedCustomerService: Three new methodsManagedCustomerService.mutateLink:Performs various actions required to add or remove accounts to / froman MCCMutateLink actions: MCC● Extend an invitation Account 0 Invite extended to Account 1 Account 1 Invite extended to Account 2 Account 2 Invite extended to Account 3 Account 3 Google Confidential and Proprietary
  9. 9. ManagedCustomerService: Three new methodsManagedCustomerService.mutateLink:Performs various actions required to add or remove accounts to / froman MCCMutateLink actions: MCC● Extend an invitation● Rescind an invitation Account 0 Account 1 Account 2 Rescind invitation to Account 3 Account 3 Google Confidential and Proprietary
  10. 10. ManagedCustomerService: Three new methodsManagedCustomerService.mutateLink:Performs various actions required to add or remove accounts to / froman MCCMutateLink actions: MCC● Extend an invitation● Rescind an invitation Account 0 Account 1● Accept an invitation (client account accepts invite only action) Account 1 Account 2 Account 3 Google Confidential and Proprietary
  11. 11. ManagedCustomerService: Three new methodsManagedCustomerService.mutateLink:Performs various actions required to add or remove accounts to / froman MCCMutateLink actions: MCC● Extend an invitation● Rescind an invitation Account 0● Accept an invitation (client account only action) Account 1 Account 2● Reject an invitation (client account rejects invite only action) Account 2 Account 3 Google Confidential and Proprietary
  12. 12. ManagedCustomerService: Three new methodsManagedCustomerService.mutateLink:Performs various actions required to add or remove accounts to / froman MCCMutateLink actions: MCC● Extend an invitation● Rescind an invitation Account 0● Accept an invitation (client account MCC terminates Account 1 link only action) Account 1● Reject an invitation (client account only action) Account 2● Terminate the link between an MCC and client account Account 3 Google Confidential and Proprietary
  13. 13. ManagedCustomerService: Three new methodsManagedCustomerService.mutateLink:Performs various actions required to add or remove accounts to / froman MCCMutateLink actions: MCC● Extend an invitation Account 0 terminates link● Rescind an invitation Account 0● Accept an invitation (client account only action) Account 1● Reject an invitation (client account only action) Account 2● Terminate the link between an MCC and client account Account 3 Google Confidential and Proprietary
  14. 14. ManagedCustomerService: Three new methodsManagedCustomerService.getPendingInvitations:Retrieves pending invitations.● Can be invoked by either the manager (MCC) or the client.● Once an invitation has been accepted, declined or rescinded, it will no longer be in a pending state.● Pending invitations are available via the ManagedCustomerService. getPendingInvitations method.● Accepted links will be available via the ManagedCustomerService.get method.● Declined, Rescinded and Terminated links will not be available through the ManagedCustomerService at all. Google Confidential and Proprietary
  15. 15. ManagedCustomerService: Three new methodsManagedCustomerService.mutateManager:Enables you to move accounts between MCCs within your accountstructure● Move a client account to or from any MCC within your structure● Both MCCs (to and from) must be managed by the effective user● MCCs cannot currently be moved using this method● To move an MCC: Terminate its link to the parent MCC and establish a new link using the mutateLink method. Google Confidential and Proprietary
  16. 16. ManagedCustomerService: Three new methodsManagedCustomerService.mutateManager: MCC 0 MCC 1 MCC 2 Account 0 Account 1 Account 2● Account 1 is moved from MCC 1 to MCC 2● This action can only be completed by MCC 0 Google Confidential and Proprietary
  17. 17. ManagedCustomerService: Three new methodsManagedCustomerService.mutateManager: MCC 0 MCCs can be nested upto 5 levels deep MCC 1 MCC 2 Account 0 Account 1 Account 2 Google Confidential and Proprietary
  18. 18. The lifecycle of amanaged account Google Confidential and Proprietary
  19. 19. Java code sample1. MCC extends a link invitation to a client account.2. [Optional] Retrieve the invitation.3. The client account accepts the invitation.4. [Optional] The client is moved to another MCC within the structure.5. The MCC terminates its link to the client account. Google Confidential and Proprietary
  20. 20. Java code sample MCC extends a link invitation to a client account// Get the ManagedCustomerService (for top level MCC).ManagedCustomerServiceInterface managedCustomerService = adWordsServices.get(mccSession, ManagedCustomerServiceInterface.class);// Create a pending link between sub MCC 0 and client account.ManagedCustomerLink inviteLink = new ManagedCustomerLink();inviteLink.setClientCustomerId(CLIENT_ACCOUNT_CID);inviteLink.setLinkStatus(LinkStatus.PENDING);inviteLink.setManagerCustomerId(SUB_MCC0_CID); Top MCC sub MCC 0 sub MCC 1 Client Account Google Confidential and Proprietary
  21. 21. Java code sample MCC extends a link invitation to a client account (continued)// Send invitation to client account.LinkOperation inviteLinkOp = new LinkOperation();inviteLinkOp.setOperand(inviteLink);inviteLinkOp.setOperator(Operator.ADD);managedCustomerService.mutateLink( new LinkOperation[]{inviteLinkOp}); Top MCC sub MCC 0 sub MCC 1 Client Account Google Confidential and Proprietary
  22. 22. Java code sample MCC extends a link invitation to a client account: MutateLinkResponse<ns2:mutateLinkResponsexmlns="https://adwords.google.com/api/adwords/cm/v201302" xmlns:ns2="https://adwords.google.com/api/adwords/mcm/v201302"> <ns2:rval> <ns2:links> <ns2:managerCustomerId>SUB_MCC0_CID</ns2:managerCustomerId> <ns2:clientCustomerId>CLIENT_ACCOUNT_CID</ns2:clientCustomerId> <ns2:linkStatus>PENDING</ns2:linkStatus> </ns2:links> </ns2:rval></ns2:mutateLinkResponse> Top MCC sub MCC 0 sub MCC 1 Client Account Google Confidential and Proprietary
  23. 23. Java code sample Retrieve the invitation// Set session customer ID to sub MCC 0.mccSession.setClientCustomerId("SUB_MCC0_CID");// Retrieve all pending invites.// This can also be performed by the client account.PendingInvitationSelector selector = new PendingInvitationSelector();PendingInvitation[] invitations = managedCustomerService.getPendingInvitations(selector); Google Confidential and Proprietary
  24. 24. Java code sample Retrieve the invitation: getPendingInvitationsResponse<ns2:getPendingInvitationsResponse xmlns="https://adwords.google.com/api/adwords/cm/v201302" xmlns:ns2="https://adwords.google.com/api/adwords/mcm/v201302"> <ns2:rval> <ns2:manager> <ns2:name>SUB MCC 0</ns2:name> <ns2:login>submcc0@company.com</ns2:login> <ns2:companyName>Google Inc</ns2:companyName> <ns2:customerId>SUB_MCC_0_CID</ns2:customerId> <ns2:canManageClients>true</ns2:canManageClients> <ns2:testAccount>false</ns2:testAccount> </ns2:manager> .... Google Confidential and Proprietary
  25. 25. Java code sample Retrieve the invitation: getPendingInvitationsResponse (continued) .... <ns2:client> <ns2:name>Client Account</ns2:name> <ns2:login>clientaccount@company.com</ns2:login> <ns2:companyName>Google Inc</ns2:companyName> <ns2:customerId>CLIENT_ACCOUNT_CID</ns2:customerId> <ns2:canManageClients>false</ns2:canManageClients> <ns2:testAccount>false</ns2:testAccount> </ns2:client> <ns2:creationDate>20130313 113459 Europe/London</ns2:creationDate> <ns2:expirationDate>20130412 123459 Europe/London</ns2:expirationDate> </ns2:rval></ns2:getPendingInvitationsResponse> Google Confidential and Proprietary
  26. 26. Java code sample The client account accepts the invitation// Get the ManagedCustomerService (for client account).managedCustomerService = adWordsServices.get(clientAccountSession, ManagedCustomerServiceInterface.class);// Create an active link between sub MCC 0 and client account.ManagedCustomerLink activeLink = new ManagedCustomerLink();activeLink.setClientCustomerId(CLIENT_ACCOUNT_CID);// Set LinkStatus.REFUSED to decline the invite.activeLink.setLinkStatus(LinkStatus.ACTIVE);activeLink.setManagerCustomerId(SUB_MCC0_CID); Top MCC sub MCC 0 sub MCC 1 Client Account Google Confidential and Proprietary
  27. 27. Java code sample The client account accepts the invitation (continued)// Accept the invitation.LinkOperation acceptInviteLinkOp = new LinkOperation();acceptInviteLinkOp.setOperand(activeLink);acceptInviteLinkOp.setOperator(Operator.SET);managedCustomerService.mutateLink( new LinkOperation[]{acceptInviteLinkOp}); Top MCC sub MCC 0 sub MCC 1 Client Account Google Confidential and Proprietary
  28. 28. Java code sample The client is moved to sub MCC 1// The top MCC is the only MCC in this structure that manages// both sub MCCs.mccSession.setClientCustomerId("TOP_MCC_CID");managedCustomerService = adWordsServices.get(mccSession, ManagedCustomerServiceInterface.class);// The MoveAccountLink.ManagedCustomerLink moveAccountLink = new ManagedCustomerLink(); CLIENT_ACCOUNT_CID);moveAccountLink.setClientCustomerId(moveAccountLink.setLinkStatus(LinkStatus.ACTIVE);moveAccountLink.setManagerCustomerId(SUB_MCC1_CID); Top MCC sub MCC 0 sub MCC 1 Client Account Google Confidential and Proprietary
  29. 29. Java code sample The client is moved to sub MCC 1 (continued)MoveOperation moveAccountOp = new MoveOperation();moveAccountOp.setOldManagerCustomerId(SUB_MCC0_CID);moveAccountOp.setOperator(Operator.SET);moveAccountOp.setOperand(moveAccountLink);managedCustomerService.mutateManager( new MoveOperation[]{moveAccountOp}); Top MCC sub MCC 0 sub MCC 1 Client Account Google Confidential and Proprietary
  30. 30. Java code sample The client is moved to sub MCC 1: mutateManagerResponse<ns2:mutateManagerResponse xmlns="https://adwords.google.com/api/adwords/cm/v201302" xmlns:ns2="https://adwords.google.com/api/adwords/mcm/v201302"> <ns2:rval> <ns2:links> <ns2:managerCustomerId>SUB_MCC1_CID</ns2:managerCustomerId> <ns2:clientCustomerId>CLIENT_ACCOUNT_CID</ns2:clientCustomerId> <ns2:linkStatus>ACTIVE</ns2:linkStatus> </ns2:links> </ns2:rval></ns2:mutateManagerResponse> Top MCC sub MCC 0 sub MCC 1 Client Account Google Confidential and Proprietary
  31. 31. Java code sample The MCC terminates its link to the client account// Link can be terminated by either the client or the manager.ManagedCustomerLink linkToTerminate = new ManagedCustomerLink(); CLIENT_ACCOUNT_CID);linkToTerminate.setClientCustomerId(linkToTerminate.setLinkStatus(LinkStatus.INACTIVE);linkToTerminate.setManagerCustomerId(SUB_MCC1_CID); Top MCC sub MCC 0 sub MCC 1 Client Account Google Confidential and Proprietary
  32. 32. Mind your budgets Google Confidential and Proprietary
  33. 33. Account Level BudgetsManaged Defined Order (MDO) users beware: Breaking the linkbetween an account and the MDO on which its account budget relies,will end the budget MCC 0 MCC 1 MCC 2 MDO MDO - Budget Budget linked link broken to MDO Account 1 Budget BudgetBudget Active Ended Google Confidential and Proprietary
  34. 34. Q&A

×